--- a/.hgignore Wed Jun 30 15:44:32 2021 +0200
+++ b/.hgignore Thu Sep 02 21:36:29 2021 +0200
@@ -1,5 +1,7 @@
.project
+.svghmithumbs
+
.directory
.pytest_cache
.cache
--- a/Beremiz_service.py Wed Jun 30 15:44:32 2021 +0200
+++ b/Beremiz_service.py Thu Sep 02 21:36:29 2021 +0200
@@ -31,6 +31,7 @@
import getopt
import threading
import shlex
+import traceback
from threading import Thread, Semaphore, Lock, currentThread
from builtins import str as text
from past.builtins import execfile
@@ -614,8 +615,11 @@
pyro_thread.join()
plcobj = runtime.GetPLCObjectSingleton()
-plcobj.StopPLC()
-plcobj.UnLoadPLC()
+try:
+ plcobj.StopPLC()
+ plcobj.UnLoadPLC()
+except:
+ print(traceback.format_exc())
if havetwisted:
reactor.stop()
--- a/ProjectController.py Wed Jun 30 15:44:32 2021 +0200
+++ b/ProjectController.py Thu Sep 02 21:36:29 2021 +0200
@@ -36,7 +36,6 @@
import shutil
import re
import tempfile
-from threading import Timer
from datetime import datetime
from weakref import WeakKeyDictionary
from functools import reduce
--- a/XSLTransform.py Wed Jun 30 15:44:32 2021 +0200
+++ b/XSLTransform.py Thu Sep 02 21:36:29 2021 +0200
@@ -17,8 +17,8 @@
etree.XMLParser()),
extensions={("beremiz", name): call for name, call in xsltext})
- def transform(self, root, **kwargs):
- res = self.xslt(root, **{k: etree.XSLT.strparam(v) for k, v in kwargs.iteritems()})
+ def transform(self, root, profile_run=False, **kwargs):
+ res = self.xslt(root, profile_run=profile_run, **{k: etree.XSLT.strparam(v) for k, v in kwargs.iteritems()})
# print(self.xslt.error_log)
return res
--- a/controls/DebugVariablePanel/DebugVariableItem.py Wed Jun 30 15:44:32 2021 +0200
+++ b/controls/DebugVariablePanel/DebugVariableItem.py Thu Sep 02 21:36:29 2021 +0200
@@ -152,7 +152,7 @@
else 0)
end_idx = (self.GetNearestData(end_tick, 1)
if end_tick is not None
- else len(self.Data))
+ else self.Data.count)
# Return data between indexes
return self.Data.view[start_idx:end_idx]
--- a/controls/VariablePanel.py Wed Jun 30 15:44:32 2021 +0200
+++ b/controls/VariablePanel.py Thu Sep 02 21:36:29 2021 +0200
@@ -956,7 +956,8 @@
var_name = self.Table.GetValueByName(row, "Name")
var_class = self.Table.GetValueByName(row, "Class")
var_type = self.Table.GetValueByName(row, "Type")
- data = wx.TextDataObject(str((var_name, var_class, var_type, self.TagName)))
+ var_doc = self.Table.GetValueByName(row, "Documentation")
+ data = wx.TextDataObject(str((var_name, var_class, var_type, self.TagName, var_doc)))
dragSource = wx.DropSource(self.VariablesGrid)
dragSource.SetData(data)
dragSource.DoDragDrop()
--- a/docutil/docsvg.py Wed Jun 30 15:44:32 2021 +0200
+++ b/docutil/docsvg.py Thu Sep 02 21:36:29 2021 +0200
@@ -24,61 +24,38 @@
from __future__ import absolute_import
-import os
+import wx
import subprocess
-import wx
-
def get_inkscape_path():
- """ Return the Inkscape path """
+ """ Return the Inkscape binary path """
+
if wx.Platform == '__WXMSW__':
from six.moves import winreg
+ inkcmd = None
try:
- svgexepath = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE,
- 'Software\\Classes\\svgfile\\shell\\Inkscape\\command')
+ inkcmd = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE,
+ 'Software\\Classes\\svgfile\\shell\\Inkscape\\command')
except OSError:
try:
- svgexepath = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE,
+ inkcmd = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE,
'Software\\Classes\\inkscape.svg\\shell\\open\\command')
- except Exception:
+ except OSError:
return None
- svgexepath = svgexepath.replace('"%1"', '').strip()
- return svgexepath.replace('"', '')
+ return inkcmd.replace('"%1"', '').strip().replace('"', '')
+
else:
- # TODO: search for inkscape in $PATH
- svgexepath = os.path.join("/usr/bin", "inkscape")
- if os.path.exists(svgexepath):
- return svgexepath
- return None
-
-
-def open_win_svg(svgexepath, svgfile):
- """ Open Inkscape on Windows platform """
- popenargs = [svgexepath]
- if svgfile is not None:
- popenargs.append(svgfile)
- subprocess.Popen(popenargs)
-
-
-def open_lin_svg(svgexepath, svgfile):
- """ Open Inkscape on Linux platform """
- if os.path.isfile("/usr/bin/inkscape"):
- os.system("%s %s &" % (svgexepath, svgfile))
-
+ try:
+ return subprocess.check_output("command -v inkscape", shell=True).strip()
+ except subprocess.CalledProcessError:
+ return None
def open_svg(svgfile):
""" Generic function to open SVG file """
- if wx.Platform == '__WXMSW__':
- try:
- open_win_svg(get_inkscape_path(), svgfile)
- except Exception:
- wx.MessageBox("Inkscape is not found or installed !")
- return None
+
+ inkpath = get_inkscape_path()
+ if inkpath is None:
+ wx.MessageBox("Inkscape is not found or installed !")
else:
- svgexepath=get_inkscape_path()
- if os.path.isfile(svgexepath):
- open_lin_svg(svgexepath, svgfile)
- else:
- wx.MessageBox("Inkscape is not found or installed !")
- return None
+ subprocess.Popen([inkpath,svgfile])
--- a/editors/ConfTreeNodeEditor.py Wed Jun 30 15:44:32 2021 +0200
+++ b/editors/ConfTreeNodeEditor.py Thu Sep 02 21:36:29 2021 +0200
@@ -385,7 +385,7 @@
element_infos["children"],
element_path)
else:
- boxsizer = wx.FlexGridSizer(cols=3, rows=1)
+ boxsizer = wx.FlexGridSizer(cols=4, rows=1)
boxsizer.AddGrowableCol(1)
flags = (wx.GROW | wx.BOTTOM | wx.LEFT | wx.RIGHT)
if first:
@@ -472,8 +472,8 @@
else:
if element_infos["type"] == "boolean":
- checkbox = wx.CheckBox(self.ParamsEditor, size=wx.Size(17, 25))
- boxsizer.AddWindow(checkbox)
+ checkbox = wx.CheckBox(self.ParamsEditor)
+ boxsizer.AddWindow(checkbox, flag=wx.ALIGN_CENTER_VERTICAL | wx.RIGHT)
if element_infos["value"] is not None:
checkbox.SetValue(element_infos["value"])
checkbox.Bind(wx.EVT_CHECKBOX,
@@ -526,6 +526,16 @@
textctrl.Bind(wx.EVT_TEXT_ENTER, callback)
textctrl.Bind(wx.EVT_TEXT, callback)
textctrl.Bind(wx.EVT_KILL_FOCUS, callback)
+
+ if not isinstance(element_infos["type"], list) and element_infos["use"] == "optional":
+ bt = wx.BitmapButton(self.ParamsEditor,
+ bitmap=wx.ArtProvider.GetBitmap(wx.ART_UNDO, wx.ART_TOOLBAR, (16,16)),
+ style=wx.BORDER_NONE)
+ self.Bind(wx.EVT_BUTTON,
+ self.GetResetFunction(element_path),
+ bt)
+
+ boxsizer.AddWindow(bt, border=5, flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT)
first = False
sizer.Layout()
self.RefreshScrollbars()
@@ -590,6 +600,13 @@
event.Skip()
return OnTextCtrlChanged
+ def GetResetFunction(self, path):
+ def OnResetBt(event):
+ res = self.SetConfNodeParamsAttribute(path, None)
+ wx.CallAfter(self.RefreshView)
+ event.Skip()
+ return OnResetBt
+
def GetCheckBoxCallBackFunction(self, chkbx, path):
def OnCheckBoxChanged(event):
res = self.SetConfNodeParamsAttribute(path, chkbx.IsChecked())
--- a/editors/Viewer.py Wed Jun 30 15:44:32 2021 +0200
+++ b/editors/Viewer.py Thu Sep 02 21:36:29 2021 +0200
@@ -389,8 +389,8 @@
elif var_name.upper() in [name.upper() for name in self.ParentWindow.Controler.GetProjectPouNames(self.ParentWindow.Debug)]:
message = _("\"%s\" pou already exists!") % var_name
elif not var_name.upper() in [name.upper() for name in self.ParentWindow.Controler.GetEditedElementVariables(tagname, self.ParentWindow.Debug)]:
- print(values)
- self.ParentWindow.Controler.AddEditedElementPouExternalVar(tagname, values[2], var_name, description=values[4])
+ kwargs = dict(description=values[4]) if len(values)>4 else {}
+ self.ParentWindow.Controler.AddEditedElementPouExternalVar(tagname, values[2], var_name, **kwargs)
self.ParentWindow.RefreshVariablePanel()
self.ParentWindow.ParentWindow.RefreshPouInstanceVariablesPanel()
self.ParentWindow.AddVariableBlock(x, y, scaling, INPUT, var_name, values[2])
--- a/features.py Wed Jun 30 15:44:32 2021 +0200
+++ b/features.py Thu Sep 02 21:36:29 2021 +0200
@@ -12,7 +12,8 @@
('Native', 'NativeLib.NativeLibrary', True),
('Python', 'py_ext.PythonLibrary', True),
('Etherlab', 'etherlab.EthercatMaster.EtherlabLibrary', False),
- ('SVGUI', 'svgui.SVGUILibrary', False)]
+ ('SVGUI', 'svgui.SVGUILibrary', False),
+ ('SVGHMI', 'svghmi.SVGHMILibrary', False)]
catalog = [
('canfestival', _('CANopen support'), _('Map located variables over CANopen'), 'canfestival.canfestival.RootClass'),
@@ -22,6 +23,7 @@
('c_ext', _('C extension'), _('Add C code accessing located variables synchronously'), 'c_ext.CFile'),
('py_ext', _('Python file'), _('Add Python code executed asynchronously'), 'py_ext.PythonFile'),
('wxglade_hmi', _('WxGlade GUI'), _('Add a simple WxGlade based GUI.'), 'wxglade_hmi.WxGladeHMI'),
- ('svgui', _('SVGUI'), _('Experimental web based HMI'), 'svgui.SVGUI')]
+ ('svgui', _('SVGUI'), _('Experimental web based HMI'), 'svgui.SVGUI'),
+ ('svghmi', _('SVGHMI'), _('SVG based HMI'), 'svghmi.SVGHMI')]
file_editors = []
Binary file images/AddFont.png has changed
Binary file images/DelFont.png has changed
Binary file images/EditPO.png has changed
Binary file images/EditSVG.png has changed
Binary file images/ImportSVG.png has changed
Binary file images/OpenPOT.png has changed
Binary file images/SVGHMI.png has changed
--- a/images/icons.svg Wed Jun 30 15:44:32 2021 +0200
+++ b/images/icons.svg Thu Sep 02 21:36:29 2021 +0200
@@ -15,7 +15,7 @@
height="1052.3622"
id="svg2"
sodipodi:version="0.32"
- inkscape:version="0.91 r13725"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
sodipodi:docname="icons.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
@@ -31,8 +31,8 @@
</rdf:RDF>
</metadata>
<sodipodi:namedview
- inkscape:window-height="874"
- inkscape:window-width="1600"
+ inkscape:window-height="2096"
+ inkscape:window-width="3840"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
@@ -42,13 +42,13 @@
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
- showgrid="false"
- inkscape:zoom="5.6568543"
- inkscape:cx="766.02087"
- inkscape:cy="916.07252"
- inkscape:window-x="0"
- inkscape:window-y="24"
- inkscape:current-layer="g10453"
+ showgrid="true"
+ inkscape:zoom="32"
+ inkscape:cx="1126.6889"
+ inkscape:cy="857.99192"
+ inkscape:window-x="1600"
+ inkscape:window-y="27"
+ inkscape:current-layer="svg2"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-maximized="1"
@@ -79570,26 +79570,6 @@
y2="140.96875" />
<linearGradient
inkscape:collect="always"
- xlink:href="#linearGradient1513"
- id="linearGradient16526"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.07859244,0,0,0.07859244,-648.89236,261.66181)"
- x1="131.52188"
- y1="198.01724"
- x2="131.52188"
- y2="41.586746" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient1291"
- id="linearGradient16528"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)"
- x1="75.847473"
- y1="79.6325"
- x2="109.0923"
- y2="124.12687" />
- <linearGradient
- inkscape:collect="always"
xlink:href="#linearGradient40830"
id="linearGradient16530"
gradientUnits="userSpaceOnUse"
@@ -79600,26 +79580,6 @@
y2="361.11316" />
<linearGradient
inkscape:collect="always"
- xlink:href="#linearGradient1291"
- id="linearGradient16532"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)"
- x1="75.847473"
- y1="79.6325"
- x2="109.0923"
- y2="124.12687" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient1513"
- id="linearGradient16534"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.54799142,0,0,0.54799142,-31.948506,-0.05487363)"
- x1="131.52188"
- y1="198.01724"
- x2="131.52188"
- y2="41.586746" />
- <linearGradient
- inkscape:collect="always"
xlink:href="#linearGradient9136"
id="linearGradient16604"
gradientUnits="userSpaceOnUse"
@@ -87463,6 +87423,894 @@
style="stop-color:#a6a3a3"
offset="1" />
</linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5785">
+ <stop
+ id="stop5787"
+ offset="0"
+ style="stop-color:#c0cdf9;stop-opacity:1" />
+ <stop
+ id="stop5789"
+ offset="1"
+ style="stop-color:#07092d;stop-opacity:0.28804347" />
+ </linearGradient>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath9086">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 54.100001,12.5 -41.2,42.2 c -15.6,15.6 10.1,14.3 19.4,20.2 4.3,2.8 -13.8,6.4 -10.1,10.1 3.6,3.7 21.7,7.1 25.3,10.7 3.6,3.7 -7.3,7.6 -3.7,11.3 3.5,3.7 11.9,0.2 13.4,8.6 1.1,6.2 15.4,3.1 21.8,-2.2 4,-3.4 -6.9,-3.4 -3.3,-7.1 9,-9.1 17,-4.1 20.3,-12.5 1.8,-4.5 -13.6,-7.7 -9.5,-10.6 C 96.300001,76.3 132.3,72.8 115.7,56.2 L 73.000001,12.5 c -5.3,-5 -14,-5 -18.9,0 z m -9.9,64.7 c 0.9,0 30.8,4 19.3,7.1 -4.4,1.2 -24.6,-7.1 -19.3,-7.1 z M 101.4,93.8 c 0,2.1 16.3,3.3 15.4,-0.5 -1.3,-6.4 -13.6,-5.9 -15.4,0.5 z m -69.499999,11.1 c 3.7,3.2 9.3,-0.7 11.1,-5.2 -3.6,-4.7 -16.9,0.3 -11.1,5.2 z m 67.5,-6.7 c -4.6,4.2 0.799999,8.6 5.299999,5.7 1.2,-0.8 -0.1,-4.7 -5.299999,-5.7 z"
+ id="use9088"
+ style="fill:#ffffff;fill-opacity:1" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5785"
+ id="linearGradient34847"
+ gradientUnits="userSpaceOnUse"
+ x1="82.118591"
+ y1="20"
+ x2="60"
+ y2="40" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="60"
+ x2="58"
+ y1="35"
+ x1="33"
+ xlink:href="#linearGradient5177"
+ id="shinySpecular-4"
+ gradientTransform="matrix(5.7784872,0,0,5.7784872,-5980.4438,-1116.0341)" />
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-5978.2159,-1110.2479)"
+ gradientUnits="userSpaceOnUse"
+ y2="50"
+ x2="90"
+ y1="20"
+ x1="60"
+ xlink:href="#linearGradient5177"
+ id="IcecapTip-6" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient9177"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.9899616,0,0,6.0175208,-11824.041,-2353.2052)"
+ cx="116.3104"
+ cy="250.8974"
+ fx="116.3104"
+ fy="250.8974"
+ r="30.599581" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient8574"
+ cx="132.44431"
+ cy="251.994"
+ fx="132.44431"
+ fy="251.994"
+ r="30.599581"
+ gradientTransform="matrix(11.470427,0,0,7.6778487,-12152.565,-2771.5974)"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter8732"
+ x="-0.078079157"
+ width="1.156158"
+ y="-0.1142206"
+ height="1.228441">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.9579068"
+ id="feGaussianBlur8734" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient8744"
+ cx="210.25"
+ cy="168.5"
+ fx="210.25"
+ fy="168.5"
+ r="34.25"
+ gradientTransform="matrix(5.7259005,0,0,2.4241042,-11391.735,-1670.3333)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient8768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.7259005,0,0,2.4241042,-11391.735,-1678.6038)"
+ cx="217.5"
+ cy="182.08189"
+ fx="217.5"
+ fy="182.08189"
+ r="34.25" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter8764"
+ x="-0.074262142"
+ width="1.148524"
+ y="-0.1754123"
+ height="1.350825">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.1195652"
+ id="feGaussianBlur8766" />
+ </filter>
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-11397.642,-2234.9563)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient8912"
+ x1="231.625"
+ y1="195.1875"
+ x2="231.75"
+ y2="201.5"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-8744.5247,-1535.4606)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient8910"
+ x1="231.3765"
+ y1="195.62131"
+ x2="231.3765"
+ y2="200.0714"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter8906"
+ x="-0.085441329"
+ width="1.1708831"
+ y="-0.27823201"
+ height="1.556464">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.56515877"
+ id="feGaussianBlur8908" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient8922"
+ cx="228.2188"
+ cy="204.83231"
+ fx="228.2188"
+ fy="204.83231"
+ r="14.09375"
+ gradientTransform="matrix(5.7259005,0,0,0.84597605,-11391.735,-1230.4619)"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter8980"
+ x="-0.069862768"
+ width="1.139725"
+ y="-0.47285891"
+ height="1.9457181">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.82052366"
+ id="feGaussianBlur8982" />
+ </filter>
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-21260.56,-6715.6693)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient8990"
+ gradientUnits="userSpaceOnUse"
+ x1="231.625"
+ y1="195.1875"
+ x2="231.75"
+ y2="201.5" />
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-16071.815,-3619.1669)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient8992-5"
+ gradientUnits="userSpaceOnUse"
+ x1="231.3765"
+ y1="195.62131"
+ x2="231.3765"
+ y2="200.0714" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient8994"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.7259005,0,0,0.84597605,-21254.65,-5711.1746)"
+ cx="228.2188"
+ cy="204.83231"
+ fx="228.2188"
+ fy="204.83231"
+ r="14.09375" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8998-3"
+ id="radialGradient9004"
+ cx="89.875"
+ cy="187.8694"
+ fx="89.875"
+ fy="187.8694"
+ r="22.75"
+ gradientTransform="matrix(5.7259005,0,0,2.3309247,-11391.735,-1563.8552)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8998-3">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.33004926"
+ offset="0"
+ id="stop9000-5" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop9002" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-12270.758,-5787.1996)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient9023"
+ gradientUnits="userSpaceOnUse"
+ x1="231.625"
+ y1="195.1875"
+ x2="231.75"
+ y2="201.5" />
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-9392.9811,-3184.716)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient9025"
+ gradientUnits="userSpaceOnUse"
+ x1="231.3765"
+ y1="195.62131"
+ x2="231.3765"
+ y2="200.0714" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient9046"
+ cx="90.28125"
+ cy="230.8363"
+ fx="90.28125"
+ fy="230.8363"
+ r="10.46875"
+ gradientTransform="matrix(6.7856216,-1.8801464,0.70345953,2.5388489,-11648.905,-1356.0934)"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter9068"
+ x="-0.076179281"
+ width="1.152359"
+ y="-0.1655701"
+ height="1.33114">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.66458488"
+ id="feGaussianBlur9070" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient11553"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.8608767,0,0,9.70527,-6261.0486,-1194.4496)"
+ cx="68.39994"
+ cy="21.22575"
+ fx="68.39994"
+ fy="21.22575"
+ r="54.783401" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter9298">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.32610678"
+ id="feGaussianBlur9300" />
+ </filter>
+ <linearGradient
+ gradientTransform="matrix(5.7259005,0,0,5.7259005,-12298.981,-2355.5883)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient5905"
+ x1="95.5"
+ y1="208.1644"
+ x2="153.5"
+ y2="223.5"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter5983-5"
+ x="-0.082508981"
+ width="1.165018"
+ y="-0.1223357"
+ height="1.244671">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.6868363"
+ id="feGaussianBlur5985-9" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5793-6"
+ id="linearGradient5801"
+ x1="57.225201"
+ y1="76.246338"
+ x2="53.63158"
+ y2="84.480324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0688965,0,0,5.0688965,-5948.5717,-1060.9937)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5793-6">
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1;"
+ offset="0"
+ id="stop5795-2" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:0;"
+ offset="1"
+ id="stop5797-1" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="radialGradient5811"
+ cx="181.22729"
+ cy="214.55119"
+ fx="181.22729"
+ fy="214.55119"
+ r="22.4664"
+ gradientTransform="matrix(7.7386864,0,0,9.8346406,-12663.753,-3237.1234)"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ style="color-interpolation-filters:sRGB"
+ inkscape:collect="always"
+ id="filter5845">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.2409356"
+ id="feGaussianBlur5847" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5177"
+ id="linearGradient5822"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.8216739,0,0,2.8216739,-6012.5735,-1169.5102)"
+ x1="73.712097"
+ y1="180.47569"
+ x2="82.754066"
+ y2="187.6597" />
+ <linearGradient
+ id="SVGID_1_"
+ gradientUnits="userSpaceOnUse"
+ x1="-181.87601"
+ y1="-131.1924"
+ x2="-180.46919"
+ y2="-106.7261"
+ gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)">
+ <stop
+ offset="0"
+ style="stop-color:#F6B884"
+ id="stop36526" />
+ <stop
+ offset="0.618"
+ style="stop-color:#C28555"
+ id="stop36528" />
+ <stop
+ offset="1"
+ style="stop-color:#64441F"
+ id="stop36530" />
+ </linearGradient>
+ <linearGradient
+ id="SVGID_2_"
+ gradientUnits="userSpaceOnUse"
+ x1="-219.83501"
+ y1="-129.60741"
+ x2="-164.7644"
+ y2="-71.945099"
+ gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)">
+ <stop
+ offset="0"
+ style="stop-color:#F4E06F"
+ id="stop36535" />
+ <stop
+ offset="0.618"
+ style="stop-color:#E5BD87"
+ id="stop36537" />
+ <stop
+ offset="1"
+ style="stop-color:#C48E30"
+ id="stop36539" />
+ </linearGradient>
+ <linearGradient
+ id="SVGID_3_"
+ gradientUnits="userSpaceOnUse"
+ x1="-195.72749"
+ y1="-102.4658"
+ x2="-143.77361"
+ y2="-57.727699"
+ gradientTransform="matrix(3.8484,-0.7896,0.786,3.8312,-3512.5761,-433.21719)">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop36544" />
+ <stop
+ offset="0.1433"
+ style="stop-color:#F1F7FA"
+ id="stop36546" />
+ <stop
+ offset="0.4148"
+ style="stop-color:#CCE1EE"
+ id="stop36548" />
+ <stop
+ offset="0.7826"
+ style="stop-color:#90BEDB"
+ id="stop36550" />
+ <stop
+ offset="1"
+ style="stop-color:#6AA7CE"
+ id="stop36552" />
+ </linearGradient>
+ <radialGradient
+ id="SVGID_4_"
+ cx="-193.9976"
+ cy="-116.5547"
+ r="6.9024"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36559" />
+ <stop
+ offset="1"
+ style="stop-color:#E8E9EB"
+ id="stop36561" />
+ </radialGradient>
+ <radialGradient
+ id="SVGID_5_"
+ cx="-185.3008"
+ cy="-114.6089"
+ r="6.9032001"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36566" />
+ <stop
+ offset="1"
+ style="stop-color:#E8E9EB"
+ id="stop36568" />
+ </radialGradient>
+ <radialGradient
+ id="SVGID_6_"
+ cx="-176.4561"
+ cy="-112.6304"
+ r="6.9050002"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36573" />
+ <stop
+ offset="1"
+ style="stop-color:#E8E9EB"
+ id="stop36575" />
+ </radialGradient>
+ <radialGradient
+ id="SVGID_7_"
+ cx="-167.541"
+ cy="-110.6318"
+ r="6.8985"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36580" />
+ <stop
+ offset="1"
+ style="stop-color:#E8E9EB"
+ id="stop36582" />
+ </radialGradient>
+ <radialGradient
+ id="SVGID_8_"
+ cx="-159.0049"
+ cy="-108.7241"
+ r="6.9022002"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36587" />
+ <stop
+ offset="1"
+ style="stop-color:#E8E9EB"
+ id="stop36589" />
+ </radialGradient>
+ <radialGradient
+ gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)"
+ id="SVGID_9_"
+ cx="29.5098"
+ cy="-2.7704999"
+ r="15.0273"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36594" />
+ <stop
+ offset="0.6236"
+ style="stop-color:#E8E9EB"
+ id="stop36596" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop36598" />
+ </radialGradient>
+ <radialGradient
+ gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)"
+ id="SVGID_10_"
+ cx="38.373001"
+ cy="-4.2505002"
+ r="15.0315"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36603" />
+ <stop
+ offset="0.6236"
+ style="stop-color:#E8E9EB"
+ id="stop36605" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop36607" />
+ </radialGradient>
+ <radialGradient
+ gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)"
+ id="SVGID_11_"
+ cx="47.125999"
+ cy="-5.6122999"
+ r="15.0274"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36612" />
+ <stop
+ offset="0.6236"
+ style="stop-color:#E8E9EB"
+ id="stop36614" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop36616" />
+ </radialGradient>
+ <radialGradient
+ gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)"
+ id="SVGID_12_"
+ cx="20.2139"
+ cy="-1.1957999"
+ r="14.9423"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36621" />
+ <stop
+ offset="0.6236"
+ style="stop-color:#E8E9EB"
+ id="stop36623" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop36625" />
+ </radialGradient>
+ <radialGradient
+ gradientTransform="matrix(4,0,0,4,-4411.3157,-775.59279)"
+ id="SVGID_13_"
+ cx="11.4766"
+ cy="-0.1392"
+ r="15.7954"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop36630" />
+ <stop
+ offset="0.6236"
+ style="stop-color:#E8E9EB"
+ id="stop36632" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop36634" />
+ </radialGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)"
+ y2="-1860.6862"
+ x2="-1547.8977"
+ y1="-1857.6021"
+ x1="-1549.6245"
+ gradientUnits="userSpaceOnUse"
+ id="SVGID_14_">
+ <stop
+ id="stop36653"
+ style="stop-color:#CC772F"
+ offset="0" />
+ <stop
+ id="stop36655"
+ style="stop-color:#E98E38"
+ offset="0.309" />
+ <stop
+ id="stop36657"
+ style="stop-color:#EDCE27"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)"
+ y2="-1843.4415"
+ x2="-1523.4501"
+ y1="-1846.4146"
+ x1="-1521.8286"
+ gradientUnits="userSpaceOnUse"
+ id="SVGID_15_">
+ <stop
+ id="stop36828"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop36830"
+ style="stop-color:#9FA4AB"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)"
+ y2="-1845.8735"
+ x2="-1523.0596"
+ y1="-1845.8735"
+ x1="-1526.4932"
+ gradientUnits="userSpaceOnUse"
+ id="SVGID_16_">
+ <stop
+ id="stop36835"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop36837"
+ style="stop-color:#9FA4AB"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)"
+ y2="-1845.1729"
+ x2="-1521.835"
+ y1="-1845.1729"
+ x1="-1525.1694"
+ gradientUnits="userSpaceOnUse"
+ id="SVGID_17_">
+ <stop
+ id="stop36842"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop36844"
+ style="stop-color:#9FA4AB"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2734.8531,-7322.0528)"
+ y2="-1844.4126"
+ x2="-1520.4072"
+ y1="-1844.4126"
+ x1="-1523.8447"
+ gradientUnits="userSpaceOnUse"
+ id="SVGID_18_">
+ <stop
+ id="stop36849"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop36851"
+ style="stop-color:#9FA4AB"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_1_"
+ id="linearGradient40579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3736.4145,-421.19799)"
+ x1="-181.87601"
+ y1="-131.1924"
+ x2="-180.46919"
+ y2="-106.7261" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_2_"
+ id="linearGradient40581"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3736.4145,-421.19799)"
+ x1="-219.83501"
+ y1="-129.60741"
+ x2="-164.7644"
+ y2="-71.945099" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_4_"
+ id="radialGradient40583"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)"
+ cx="-193.9976"
+ cy="-116.5547"
+ r="6.9024" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_5_"
+ id="radialGradient40585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)"
+ cx="-185.3008"
+ cy="-114.6089"
+ r="6.9032001" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_6_"
+ id="radialGradient40587"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)"
+ cx="-176.4561"
+ cy="-112.6304"
+ r="6.9050002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_7_"
+ id="radialGradient40589"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)"
+ cx="-167.541"
+ cy="-110.6318"
+ r="6.8985" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_8_"
+ id="radialGradient40591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3714.4101,-583.23399)"
+ cx="-159.0049"
+ cy="-108.7241"
+ r="6.9022002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_14_"
+ id="linearGradient40593"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)"
+ x1="-1549.6245"
+ y1="-1857.6021"
+ x2="-1547.8977"
+ y2="-1860.6862" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_15_"
+ id="linearGradient40595"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)"
+ x1="-1521.8286"
+ y1="-1846.4146"
+ x2="-1523.4501"
+ y2="-1843.4415" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_16_"
+ id="linearGradient40597"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)"
+ x1="-1526.4932"
+ y1="-1845.8735"
+ x2="-1523.0596"
+ y2="-1845.8735" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_17_"
+ id="linearGradient40599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)"
+ x1="-1525.1694"
+ y1="-1845.1729"
+ x2="-1521.835"
+ y2="-1845.1729" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_18_"
+ id="linearGradient40601"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3176,-3.9872,3.9872,-0.3176,2494.8531,-7322.0528)"
+ x1="-1523.8447"
+ y1="-1844.4126"
+ x2="-1520.4072"
+ y2="-1844.4126" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_1_"
+ id="linearGradient40971"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)"
+ x1="-181.87601"
+ y1="-131.1924"
+ x2="-180.46919"
+ y2="-106.7261" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_2_"
+ id="linearGradient40973"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.9184,-0.804,0.804,3.9184,-3496.4145,-421.19799)"
+ x1="-219.83501"
+ y1="-129.60741"
+ x2="-164.7644"
+ y2="-71.945099" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_4_"
+ id="radialGradient40975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ cx="-193.9976"
+ cy="-116.5547"
+ r="6.9024" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_5_"
+ id="radialGradient40977"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ cx="-185.3008"
+ cy="-114.6089"
+ r="6.9032001" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_6_"
+ id="radialGradient40979"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ cx="-176.4561"
+ cy="-112.6304"
+ r="6.9050002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_7_"
+ id="radialGradient40981"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ cx="-167.541"
+ cy="-110.6318"
+ r="6.8985" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#SVGID_8_"
+ id="radialGradient40983"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.7092,-1.4972,1.4972,3.7092,-3474.4101,-583.23399)"
+ cx="-159.0049"
+ cy="-108.7241"
+ r="6.9022002" />
</defs>
<g
id="g19063"
@@ -87589,51 +88437,51 @@
style="display:inline"
transform="matrix(0.2172196,0,0,0.2172196,-847.87529,381.18375)"
id="LED4_off">
- <path
- sodipodi:type="arc"
+ <circle
style="fill:url(#radialGradient17762);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25654912;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
id="path10124"
- sodipodi:cx="38.638336"
+ transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)"
+ d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z"
+ sodipodi:type="arc"
+ sodipodi:ry="12.374369"
+ sodipodi:rx="12.374369"
sodipodi:cy="1.7575644"
- sodipodi:rx="12.374369"
- sodipodi:ry="12.374369"
- d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z"
- transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)" />
- <path
- sodipodi:type="arc"
+ sodipodi:cx="38.638336" />
+ <circle
style="fill:url(#radialGradient17764);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
id="path10126"
- sodipodi:cx="38.638336"
+ transform="translate(18.32595,46.778151)"
+ d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z"
+ sodipodi:type="arc"
+ sodipodi:ry="12.374369"
+ sodipodi:rx="12.374369"
sodipodi:cy="1.7575644"
- sodipodi:rx="12.374369"
- sodipodi:ry="12.374369"
- d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z"
- transform="translate(18.32595,46.778151)" />
+ sodipodi:cx="38.638336" />
</g>
<g
style="display:inline"
id="LED4_on"
transform="matrix(0.2172196,0,0,0.2172196,-856.56407,380.74931)">
- <path
+ <circle
transform="translate(58.32595,48.778151)"
+ id="path10096"
+ style="fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z"
+ sodipodi:type="arc"
sodipodi:ry="12.374369"
sodipodi:rx="12.374369"
sodipodi:cy="1.7575644"
- sodipodi:cx="38.638336"
- id="path10096"
- style="fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
- sodipodi:type="arc" />
- <path
+ sodipodi:cx="38.638336" />
+ <circle
transform="matrix(0.9170232,0,0,0.9170232,61.532035,48.923988)"
+ id="path10098"
+ style="fill:url(#radialGradient17766);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible"
d="M 51.012705,1.7575644 A 12.374369,12.374369 0 0 1 38.638336,14.131933 12.374369,12.374369 0 0 1 26.263968,1.7575644 12.374369,12.374369 0 0 1 38.638336,-10.616804 12.374369,12.374369 0 0 1 51.012705,1.7575644 Z"
+ sodipodi:type="arc"
sodipodi:ry="12.374369"
sodipodi:rx="12.374369"
sodipodi:cy="1.7575644"
- sodipodi:cx="38.638336"
- id="path10098"
- style="fill:url(#radialGradient17766);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible"
- sodipodi:type="arc" />
+ sodipodi:cx="38.638336" />
</g>
</g>
<text
@@ -87646,12 +88494,12 @@
x="33.295933"
id="tspan16193"
sodipodi:role="line"
- style="font-size:12.76095104px;line-height:1.25">%% Build Clean editPLC HMIEditor ImportFile ManageFolder ImportDEF ImportSVG NetworkEdit ShowMaster ExportSlave Run ShowIECcode Stop Unknown %%</tspan></text>
+ style="font-size:12.76095104px;line-height:1.25">%% Build Clean editPLC HMIEditor ImportFile ManageFolder ImportSVG NetworkEdit ShowMaster ExportSlave Run ShowIECcode Stop EditSVG OpenPOT EditPO AddFont DelFont %%</tspan></text>
<rect
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
id="Unknown"
y="191.36218"
- x="882"
+ x="808"
height="24"
width="24" />
<g
@@ -87768,12 +88616,12 @@
inkscape:connector-curvature="0" />
</g>
<g
- transform="translate(1869.0897,-400.03854)"
+ transform="translate(1795.0897,-400.03854)"
id="g16620">
<g
id="g16343">
<rect
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
id="Run"
y="591.4007"
x="-1061.0897"
@@ -87787,12 +88635,12 @@
inkscape:connector-curvature="0" />
</g>
<g
- transform="translate(1652.1847,-369.94418)"
+ transform="translate(1578.1847,-369.94418)"
id="g16552">
<g
id="g16340">
<rect
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
id="NetworkEdit"
y="561.30634"
x="-1061.1847"
@@ -87809,10 +88657,10 @@
style="fill:url(#linearGradient16604);fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path10587"
transform="translate(155,579.35335)"
- d="m -512.21875,33.03125 -313.84375,124.40625 0,4.15625 116.15625,-45.9375 36,14.1875 1.34375,-3.46875 -32.28125,-12.75 47.875,-19.03125 27.3125,-10.8125 36,14.21875 1.34375,-3.46875 -32.28125,-12.75 113.78125,-45.25 -1.40625,-3.5 z"
+ d="M -512.21875,33.03125 -826.0625,157.4375 v 4.15625 l 116.15625,-45.9375 36,14.1875 1.34375,-3.46875 -32.28125,-12.75 47.875,-19.03125 27.3125,-10.8125 36,14.21875 1.34375,-3.46875 -32.28125,-12.75 113.78125,-45.25 z"
inkscape:connector-curvature="0" />
<path
- style="fill:none;stroke:url(#linearGradient16606);stroke-width:1.0106318;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ style="fill:none;stroke:url(#linearGradient16606);stroke-width:1.0106318;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path8200"
d="M -660.24451,734.57791 -356.6252,614.08615"
inkscape:connector-curvature="0" />
@@ -87820,7 +88668,7 @@
id="g5077"
transform="matrix(0.09090112,0,0,0.09090112,-708.74866,934.66705)">
<rect
- style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect5079"
transform="matrix(0.926956,0.375171,0,1,0,0)"
y="-2666.4033"
@@ -87828,7 +88676,7 @@
height="419.39819"
width="996.81232" />
<rect
- style="fill:url(#linearGradient16608);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16608);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect5081"
transform="matrix(0.929224,-0.369517,0,1,0,0)"
y="-1753.9264"
@@ -87836,7 +88684,7 @@
height="420.25934"
width="593.28876" />
<rect
- style="fill:url(#linearGradient16610);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16610);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect5083"
transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)"
y="-4162.4521"
@@ -87847,32 +88695,32 @@
id="g5085"
transform="matrix(1,0.428039,0,1,508,-889.8732)">
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path5087"
- d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z"
+ d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z"
inkscape:connector-curvature="0" />
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path5089"
- d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z"
+ d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z"
inkscape:connector-curvature="0" />
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path5091"
- d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z"
+ d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path5093"
- d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
+ d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path5095"
- d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
+ d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path5097"
d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689"
inkscape:connector-curvature="0" />
@@ -87889,7 +88737,7 @@
y="892.03345"
x="633.36249">Master</tspan></text>
<path
- style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path8204"
d="m -424.19823,680.94807 -50.47123,-19.81068"
inkscape:connector-curvature="0" />
@@ -87897,7 +88745,7 @@
id="g8206"
transform="matrix(-0.05230834,0,0,0.05230834,-370.7166,804.48617)">
<rect
- style="fill:url(#linearGradient16612);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16612);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect8208"
transform="matrix(0.926956,0.375171,0,1,0,0)"
y="-2666.4033"
@@ -87905,7 +88753,7 @@
height="419.39819"
width="996.81232" />
<rect
- style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect8210"
transform="matrix(0.929224,-0.369517,0,1,0,0)"
y="-1753.9264"
@@ -87913,7 +88761,7 @@
height="420.25934"
width="593.28876" />
<rect
- style="fill:url(#linearGradient16614);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16614);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect8212"
transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)"
y="-4162.4521"
@@ -87924,32 +88772,32 @@
id="g8214"
transform="matrix(-1,-0.473054,0,1,853.1705,-734.3579)">
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path8216"
- d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z"
+ d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z"
inkscape:connector-curvature="0" />
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path8218"
- d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z"
+ d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z"
inkscape:connector-curvature="0" />
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path8220"
- d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z"
+ d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path8222"
- d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
+ d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path8224"
- d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
+ d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path8226"
d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689"
inkscape:connector-curvature="0" />
@@ -87966,7 +88814,7 @@
y="462.98654"
x="-1088.8175">Slave</tspan></text>
<path
- style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ style="fill:none;stroke:#ffffff;stroke-width:1.18643951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path8299"
d="m -504.19823,712.94807 -50.47123,-19.81068"
inkscape:connector-curvature="0" />
@@ -87974,7 +88822,7 @@
id="g8301"
transform="matrix(-0.05230834,0,0,0.05230834,-450.7166,836.48617)">
<rect
- style="fill:url(#linearGradient16616);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16616);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect8303"
transform="matrix(0.926956,0.375171,0,1,0,0)"
y="-2666.4033"
@@ -87982,7 +88830,7 @@
height="419.39819"
width="996.81232" />
<rect
- style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect8305"
transform="matrix(0.929224,-0.369517,0,1,0,0)"
y="-1753.9264"
@@ -87990,7 +88838,7 @@
height="420.25934"
width="593.28876" />
<rect
- style="fill:url(#linearGradient16618);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16618);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
id="rect8307"
transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)"
y="-4162.4521"
@@ -88001,32 +88849,32 @@
id="g8309"
transform="matrix(-1,-0.473054,0,1,853.1705,-734.3579)">
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path8311"
- d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z"
+ d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z"
inkscape:connector-curvature="0" />
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path8313"
- d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z"
+ d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z"
inkscape:connector-curvature="0" />
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
id="path8315"
- d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z"
+ d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path8317"
- d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
+ d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path8319"
- d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
+ d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
inkscape:connector-curvature="0" />
<path
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
id="path8321"
d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689"
inkscape:connector-curvature="0" />
@@ -88047,31 +88895,31 @@
id="g9184"
transform="matrix(0.7769546,0,0,0.7769546,-2279.9093,796.92596)">
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;enable-background:accumulate"
id="path1352"
- d="m 150.89899,513.89563 -2.86494,0 c -5.11662,0 -8.80535,4.29283 -8.80535,9.50099 0,5.23561 3.69788,9.53759 8.80535,9.53759 l 2.86494,0 0,-4.57659 -1.98624,0 c -2.67272,0 -4.74133,-1.61095 -4.74133,-4.961 0,-3.35006 2.06861,-4.92441 4.74133,-4.92441 l 1.98624,0 0,-4.57658 z m 8.74127,19.03858 0,-12.75036 c 0,-1.41873 0.75056,-2.31575 1.90385,-2.31575 1.17161,0 1.94048,0.91532 1.94048,2.31575 l 0,1.76656 -2.97478,0 0,4.30199 2.97478,0 0,6.68181 4.75964,0 0,-12.53068 c 0,-4.08232 -2.70933,-6.83742 -6.70012,-6.83742 -3.98162,0 -6.6635,2.76426 -6.6635,6.83742 l 0,12.53068 4.75965,0 z m 17.75714,0 0,-11.16686 0,0 4.42097,8.49414 c 1.24483,2.42558 2.15099,3.00224 3.37752,3.00224 1.1899,0 2.54457,-1.03431 2.54457,-2.78257 l 0,-16.58553 -4.75963,0 0,10.05017 -0.0732,0 -4.22876,-8.39345 c -0.7048,-1.39128 -1.65673,-1.98624 -3.26768,-1.98624 -1.60181,0 -2.77342,1.08008 -2.77342,2.59035 l 0,16.77775 4.75966,0 z"
+ d="m 150.89899,513.89563 h -2.86494 c -5.11662,0 -8.80535,4.29283 -8.80535,9.50099 0,5.23561 3.69788,9.53759 8.80535,9.53759 h 2.86494 v -4.57659 h -1.98624 c -2.67272,0 -4.74133,-1.61095 -4.74133,-4.961 0,-3.35006 2.06861,-4.92441 4.74133,-4.92441 h 1.98624 z m 8.74127,19.03858 v -12.75036 c 0,-1.41873 0.75056,-2.31575 1.90385,-2.31575 1.17161,0 1.94048,0.91532 1.94048,2.31575 v 1.76656 h -2.97478 v 4.30199 h 2.97478 v 6.68181 h 4.75964 v -12.53068 c 0,-4.08232 -2.70933,-6.83742 -6.70012,-6.83742 -3.98162,0 -6.6635,2.76426 -6.6635,6.83742 v 12.53068 z m 17.75714,0 v -11.16686 0 l 4.42097,8.49414 c 1.24483,2.42558 2.15099,3.00224 3.37752,3.00224 1.1899,0 2.54457,-1.03431 2.54457,-2.78257 v -16.58553 h -4.75963 v 10.05017 h -0.0732 l -4.22876,-8.39345 c -0.7048,-1.39128 -1.65673,-1.98624 -3.26768,-1.98624 -1.60181,0 -2.77342,1.08008 -2.77342,2.59035 v 16.77775 h 4.75966 z"
inkscape:connector-curvature="0" />
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.33726069px;marker:none;enable-background:accumulate"
id="path9170"
- d="m 140.71151,538.18631 0.2929,0.009 0.2929,0.0275 0.28375,0.0366 0.27459,0.0549 0.26544,0.0641 0.26544,0.0824 0.25629,0.0915 0.25629,0.10985 0.23798,0.11899 0.23799,0.12814 0.22883,0.14645 0.21967,0.15561 0.21052,0.16476 0.20137,0.1739 0.19222,0.18307 0.18306,0.19221 0.17391,0.20138 0.16476,0.21051 0.16476,0.21969 0.1373,0.22882 0.13729,0.22883 0.12815,0.24714 0.11899,0.23798 0.10068,0.25629 0.0915,0.25629 0.0824,0.25629 0.0641,0.26544 0.0641,0.26544 0.0458,0.27459 0.0275,0.2746 0.0183,0.27459 0.009,0.28375 c 0,2.99308 -2.27914,5.72072 -5.42782,5.72072 -3.15785,0 -5.46444,-2.73679 -5.46444,-5.72072 0,-3.00223 2.29744,-5.72073 5.46444,-5.72073 z m 0,-1.00685 -0.33867,0.009 -0.33867,0.0275 -0.33867,0.0458 -0.32951,0.0549 -0.32036,0.0824 -0.31121,0.0915 -0.31121,0.10984 -0.30205,0.119 -0.28375,0.13729 -0.28375,0.14645 -0.27459,0.16476 -0.2746,0.18306 -0.25629,0.18306 -0.24713,0.20137 -0.22883,0.21968 -0.22883,0.21968 -0.21967,0.23797 -0.20137,0.23799 -0.19222,0.25629 -0.18306,0.26544 -0.16476,0.27459 -0.15561,0.28376 -0.14645,0.28374 -0.12814,0.30205 -0.10984,0.30206 -0.10068,0.31121 -0.0915,0.32035 -0.0732,0.32037 -0.0549,0.32036 -0.0366,0.33867 -0.0275,0.33867 -0.009,0.33866 c 0,3.64296 2.84663,6.72758 6.56282,6.72758 3.70703,0 6.5262,-3.08462 6.5262,-6.72758 0,-3.65211 -2.82833,-6.72758 -6.5262,-6.72758 z m 11.01125,19.3681 0,-12.64052 c 0,-3.00223 2.16015,-5.72073 5.27223,-5.72073 2.6178,0 5.16238,2.41644 5.16238,5.72073 0,3.32259 -2.57204,5.72072 -5.16238,5.72072 -1.71165,0 -2.91071,-0.70479 -4.0274,-1.85808 l 0,1.22652 c 0.78718,0.64987 2.04116,1.63842 4.0274,1.63842 3.51481,0 6.26076,-2.83748 6.26076,-6.72758 0,-3.89925 -2.76425,-6.72758 -6.26076,-6.72758 -3.51482,0 -6.27908,2.82833 -6.27908,6.72758 l 0,12.64052 1.00685,0 z m 17.42763,-9.94949 9.23554,-6.26077 c -1.1716,-1.88555 -3.26768,-3.15784 -5.74819,-3.15784 -3.97247,0 -6.72757,3.10292 -6.72757,6.75504 0,3.78026 2.90155,6.70012 6.94725,6.70012 3.65211,0 6.42552,-3.0297 6.5079,-6.46213 l -1.09838,0 c -0.0549,2.94731 -2.51712,5.45527 -5.6292,5.45527 -3.21276,0 -5.62919,-2.60864 -5.62919,-5.63834 0,-3.08461 2.3249,-5.80311 5.62919,-5.80311 1.7208,0 3.22192,0.75056 4.17385,1.93131 l -8.31108,5.6109 0.64988,0.86955 z m 23.67008,3.76195 0,-7.87172 c 0,-3.1853 -2.28829,-5.30884 -5.18069,-5.30884 -2.8924,0 -5.16238,2.12354 -5.16238,5.30884 l 0,7.87172 1.00684,0 0,-7.73442 c 0,-2.70019 1.88556,-4.43929 4.15554,-4.43929 2.26083,0 4.17385,1.7574 4.17385,4.43929 l 0,7.73442 1.00684,0 z"
+ d="m 140.71151,538.18631 0.2929,0.009 0.2929,0.0275 0.28375,0.0366 0.27459,0.0549 0.26544,0.0641 0.26544,0.0824 0.25629,0.0915 0.25629,0.10985 0.23798,0.11899 0.23799,0.12814 0.22883,0.14645 0.21967,0.15561 0.21052,0.16476 0.20137,0.1739 0.19222,0.18307 0.18306,0.19221 0.17391,0.20138 0.16476,0.21051 0.16476,0.21969 0.1373,0.22882 0.13729,0.22883 0.12815,0.24714 0.11899,0.23798 0.10068,0.25629 0.0915,0.25629 0.0824,0.25629 0.0641,0.26544 0.0641,0.26544 0.0458,0.27459 0.0275,0.2746 0.0183,0.27459 0.009,0.28375 c 0,2.99308 -2.27914,5.72072 -5.42782,5.72072 -3.15785,0 -5.46444,-2.73679 -5.46444,-5.72072 0,-3.00223 2.29744,-5.72073 5.46444,-5.72073 z m 0,-1.00685 -0.33867,0.009 -0.33867,0.0275 -0.33867,0.0458 -0.32951,0.0549 -0.32036,0.0824 -0.31121,0.0915 -0.31121,0.10984 -0.30205,0.119 -0.28375,0.13729 -0.28375,0.14645 -0.27459,0.16476 -0.2746,0.18306 -0.25629,0.18306 -0.24713,0.20137 -0.22883,0.21968 -0.22883,0.21968 -0.21967,0.23797 -0.20137,0.23799 -0.19222,0.25629 -0.18306,0.26544 -0.16476,0.27459 -0.15561,0.28376 -0.14645,0.28374 -0.12814,0.30205 -0.10984,0.30206 -0.10068,0.31121 -0.0915,0.32035 -0.0732,0.32037 -0.0549,0.32036 -0.0366,0.33867 -0.0275,0.33867 -0.009,0.33866 c 0,3.64296 2.84663,6.72758 6.56282,6.72758 3.70703,0 6.5262,-3.08462 6.5262,-6.72758 0,-3.65211 -2.82833,-6.72758 -6.5262,-6.72758 z m 11.01125,19.3681 v -12.64052 c 0,-3.00223 2.16015,-5.72073 5.27223,-5.72073 2.6178,0 5.16238,2.41644 5.16238,5.72073 0,3.32259 -2.57204,5.72072 -5.16238,5.72072 -1.71165,0 -2.91071,-0.70479 -4.0274,-1.85808 v 1.22652 c 0.78718,0.64987 2.04116,1.63842 4.0274,1.63842 3.51481,0 6.26076,-2.83748 6.26076,-6.72758 0,-3.89925 -2.76425,-6.72758 -6.26076,-6.72758 -3.51482,0 -6.27908,2.82833 -6.27908,6.72758 v 12.64052 z m 17.42763,-9.94949 9.23554,-6.26077 c -1.1716,-1.88555 -3.26768,-3.15784 -5.74819,-3.15784 -3.97247,0 -6.72757,3.10292 -6.72757,6.75504 0,3.78026 2.90155,6.70012 6.94725,6.70012 3.65211,0 6.42552,-3.0297 6.5079,-6.46213 h -1.09838 c -0.0549,2.94731 -2.51712,5.45527 -5.6292,5.45527 -3.21276,0 -5.62919,-2.60864 -5.62919,-5.63834 0,-3.08461 2.3249,-5.80311 5.62919,-5.80311 1.7208,0 3.22192,0.75056 4.17385,1.93131 l -8.31108,5.6109 z m 23.67008,3.76195 v -7.87172 c 0,-3.1853 -2.28829,-5.30884 -5.18069,-5.30884 -2.8924,0 -5.16238,2.12354 -5.16238,5.30884 v 7.87172 h 1.00684 v -7.73442 c 0,-2.70019 1.88556,-4.43929 4.15554,-4.43929 2.26083,0 4.17385,1.7574 4.17385,4.43929 v 7.73442 z"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
<g
id="g16346"
- transform="translate(1922.9892,-430.1329)">
+ transform="translate(1848.9892,-430.1329)">
<rect
width="24"
height="24"
x="-1060.9891"
y="621.49512"
id="ShowIECcode"
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" />
</g>
<flowRoot
- transform="matrix(1.6473499,0,0,1.6473499,1002.9234,183.57576)"
+ transform="matrix(1.6473499,0,0,1.6473499,928.9234,183.57576)"
id="flowRoot29856"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0.01%;font-family:'Andale Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient19976);fill-opacity:1;stroke:#547c1b;stroke-width:0.1061436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><flowRegion
@@ -88085,20 +88933,20 @@
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:'Andale Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:url(#linearGradient34167);fill-opacity:1;stroke:#547c1b;stroke-width:0.1061436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRegion><flowPara
id="flowPara29862"
style="font-size:12px;line-height:1.25;fill:url(#linearGradient19974);fill-opacity:1;stroke:#547c1b;stroke-width:0.1061436;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">ST</flowPara></flowRoot> <g
- transform="matrix(0.07159976,0,0,0.07159976,865.18029,195.95335)"
+ transform="matrix(0.07159976,0,0,0.07159976,791.18029,195.95335)"
id="g2248">
<path
d="m 144.80549,88.557517 c 0,39.134993 -31.76158,70.896673 -70.896401,70.896673 -39.135167,0 -70.8967476,-31.76168 -70.8967476,-70.896673 0,-39.134957 31.7615806,-70.896643 70.8967476,-70.896643 39.134821,0 70.896401,31.761686 70.896401,70.896643 z"
id="path3190"
- style="fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 L 202.60774,194.21232 z"
+ d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 z"
id="path1329"
style="fill:#373737;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
- d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 L 199.13799,197.60713 z"
+ d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 z"
id="path3180"
style="fill:#483737;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
@@ -88163,10 +89011,10 @@
style="opacity:0.47906979;fill:url(#linearGradient19984);stroke:none"
inkscape:connector-curvature="0" />
<path
- d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 l 0,0 z"
+ d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 z"
transform="matrix(5.8942914,0,0,3.3456793,14.375906,106.05328)"
id="path38874"
- style="opacity:0.20454544;fill:url(#radialGradient19986);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.20454544;fill:url(#radialGradient19986);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
inkscape:connector-curvature="0" />
<path
d="m 33.301821,46.978562 c -9.767402,9.12081 -16.320903,21.668645 -17.675734,35.731277 1.240688,0.703541 2.578943,1.189258 3.973388,1.431588 -1.462001,0.254575 -2.855726,0.7577 -4.148685,1.519237 -0.03682,0.836171 -0.08765,1.667336 -0.08765,2.512584 0,6.713227 1.206722,13.165412 3.35985,19.136532 1.005258,0.25131 2.037067,0.37985 3.126122,0.37981 3.01568,1.2e-4 5.655655,-1.12712 7.91756,-3.38906 1.71152,-1.7115 2.843141,-3.54788 3.389066,-5.492626 0.492018,1.941876 1.470799,3.783386 3.009257,5.492626 2.513023,2.26193 5.410007,3.38917 8.677179,3.38906 3.015652,1.2e-4 5.655627,-1.12712 7.91756,-3.38906 1.942501,-1.9425 3.123298,-4.03851 3.564363,-6.28146 0.396759,2.24323 1.465161,4.33875 3.21377,6.28146 2.513013,2.26193 5.409978,3.38917 8.677178,3.38906 3.015634,1.2e-4 5.655609,-1.12712 7.91756,-3.38906 1.942464,-1.9425 3.12328,-4.03851 3.564363,-6.28146 0.39675,2.24323 1.465143,4.33875 3.21377,6.28146 1.916641,1.72516 4.072171,2.80444 6.42754,3.21377 -2.353966,0.40987 -4.511871,1.46044 -6.42754,3.18455 -2.261952,2.26193 -3.389207,5.1589 -3.389066,8.67718 -1.41e-4,3.01586 1.127105,5.78433 3.389066,8.29737 1.67533,1.50794 3.540523,2.50665 5.551057,3.00925 -2.010534,0.50265 -3.875736,1.50144 -5.551057,3.00926 -2.261952,2.26192 -3.389207,5.15888 -3.389066,8.67718 -2.8e-5,0.55508 0.04026,1.09806 0.116864,1.6361 7.878509,-1.10355 15.224518,-3.84968 21.707544,-7.85913 -0.51442,-0.73242 -1.11897,-1.4248 -1.840607,-2.07434 -1.53121,-1.70116 -3.236263,-2.81021 -5.112812,-3.35985 1.877708,-0.49434 3.580805,-1.5065 5.112812,-3.03847 1.942447,-1.94251 3.123267,-4.03852 3.564357,-6.28146 0.39674,2.24322 1.46513,4.33873 3.21377,6.28146 1.0539,0.94861 2.17329,1.69888 3.35985,2.24964 5.68063,-5.16305 10.29844,-11.49418 13.49784,-18.58144 -0.0907,-0.0862 -0.16871,-0.17812 -0.26295,-0.26294 -1.74982,-1.94402 -3.73007,-3.12412 -5.93086,-3.56436 2.20111,-0.39601 4.18081,-1.46377 5.93086,-3.21377 1.94245,-1.9425 3.12327,-4.03851 3.56437,-6.28146 0.10619,0.600471 0.26438,1.174027 0.46745,1.752962 0.70975,-3.394258 1.09955,-6.900044 1.16865,-10.488573 -0.8459,1.328779 -1.38142,2.84217 -1.6361,4.499278 -0.4509,-2.32135 -1.64011,-4.344882 -3.56437,-6.076947 -1.74982,-1.943995 -3.73007,-3.124115 -5.93086,-3.564363 2.20111,-0.395993 4.18081,-1.463755 5.93086,-3.21377 1.96791,-1.967943 3.16664,-4.092748 3.59358,-6.369107 -0.89039,-3.587266 -2.14063,-7.034293 -3.68123,-10.31328 -2.24302,-2.450543 -4.85202,-3.681068 -7.82991,-3.681227 -3.26724,1.61e-4 -6.16421,1.127407 -8.67718,3.389067 -1.76367,1.763651 -2.82533,3.929393 -3.21377,6.456755 -0.45088,-2.32134 -1.64008,-4.344863 -3.564357,-6.076946 -2.261979,-2.512974 -4.901951,-3.768715 -7.917556,-3.768876 -3.267238,1.61e-4 -6.164193,1.127407 -8.677179,3.389067 -2.261952,2.261975 -3.389207,5.158944 -3.389066,8.677178 -1.41e-4,-3.266922 -1.127386,-6.035395 -3.389067,-8.297369 -2.26197,-2.512974 -4.901926,-3.768715 -7.91756,-3.768876 -3.267191,1.61e-4 -6.164165,1.127407 -8.677178,3.389067 -2.261933,2.261975 -3.389179,5.158944 -3.389067,8.677178 -1.31e-4,-3.266922 -1.127357,-6.035395 -3.389066,-8.297369 -2.261924,-2.512974 -4.901908,-3.768715 -7.91756,-3.768876 -3.267172,1.61e-4 -6.164146,1.127407 -8.677179,3.389067 -1.561728,1.56176 -2.555075,3.448859 -3.038473,5.609489 -0.554554,-1.971366 -1.672824,-3.711198 -3.35985,-5.22968 -1.74975,-1.943977 -3.730039,-3.124105 -5.930866,-3.564363 2.201154,-0.395984 4.180892,-1.463737 5.930866,-3.21377 2.513051,-2.512966 3.768782,-5.281441 3.768875,-8.297369 -1.8e-5,-0.786771 -0.08796,-1.550369 -0.233728,-2.278855 z m 23.022278,27.667636 c 0.396759,2.243243 1.465161,4.338767 3.21377,6.281459 1.91665,1.725178 4.07218,2.804452 6.427539,3.21377 -2.353956,0.409885 -4.511852,1.460455 -6.427539,3.184554 -2.261933,2.261952 -3.389179,5.158921 -3.389067,8.677178 -1.31e-4,-3.266944 -1.127357,-6.035418 -3.389066,-8.297369 -1.749768,-1.943995 -3.730049,-3.124115 -5.930866,-3.564363 2.201145,-0.395993 4.180874,-1.463755 5.930866,-3.21377 1.942501,-1.942473 3.123298,-4.038501 3.564363,-6.281459 z m 23.372871,0 c 0.39675,2.243243 1.465143,4.338767 3.21377,6.281459 1.916641,1.725178 4.072171,2.804452 6.42754,3.21377 -2.353966,0.409885 -4.511871,1.460455 -6.42754,3.184554 -1.763633,1.763633 -2.825313,3.929384 -3.21377,6.456756 -0.450862,-2.32135 -1.640065,-4.344882 -3.564363,-6.076947 -1.749805,-1.943995 -3.730057,-3.124115 -5.930866,-3.564363 2.201136,-0.395993 4.180855,-1.463755 5.930866,-3.21377 1.942464,-1.942473 3.12328,-4.038501 3.564363,-6.281459 z m 23.37286,0 c 0.39674,2.243243 1.46513,4.338767 3.21377,6.281459 1.91662,1.725178 4.07216,2.804452 6.42754,3.21377 -2.35397,0.409885 -4.51189,1.460455 -6.42754,3.184554 -1.76367,1.763633 -2.82533,3.929384 -3.21377,6.456756 -0.45088,-2.32135 -1.64008,-4.344882 -3.564355,-6.076947 -1.749814,-1.943995 -3.730063,-3.124115 -5.930862,-3.564363 2.201126,-0.395993 4.180833,-1.463755 5.930862,-3.21377 1.942445,-1.942473 3.123265,-4.038501 3.564355,-6.281459 z m -69.91409,0.788835 c 0.492018,1.941883 1.470799,3.783394 3.009257,5.492624 1.916669,1.725178 4.072181,2.804452 6.42754,3.21377 -2.353947,0.409885 -4.511834,1.460455 -6.42754,3.184554 -1.561728,1.561744 -2.555075,3.448853 -3.038473,5.609489 -0.554554,-1.97137 -1.672824,-3.711214 -3.35985,-5.22968 -1.74975,-1.943995 -3.730039,-3.124115 -5.930866,-3.564363 2.201154,-0.395993 4.180892,-1.463755 5.930866,-3.21377 1.71152,-1.71148 2.843141,-3.547877 3.389066,-5.492624 z m 69.91409,22.584037 c 0.39674,2.24323 1.46513,4.33875 3.21377,6.28146 1.91662,1.72516 4.07216,2.80444 6.42754,3.21377 -2.35397,0.40987 -4.51189,1.46044 -6.42754,3.18455 -1.76367,1.76361 -2.82533,3.92937 -3.21377,6.45676 -0.45088,-2.32136 -1.64008,-4.3449 -3.564355,-6.07695 -1.749814,-1.94402 -3.730063,-3.12412 -5.930862,-3.56436 2.201126,-0.39601 4.180833,-1.46377 5.930862,-3.21377 1.942445,-1.9425 3.123265,-4.03851 3.564355,-6.28146 z"
@@ -88175,12 +89023,12 @@
inkscape:connector-curvature="0" />
</g>
<g
- transform="translate(1990.8886,-460.22727)"
+ transform="translate(1916.8886,-460.22727)"
id="g16694">
<g
id="g16349">
<rect
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
id="Stop"
y="651.58948"
x="-1060.8887"
@@ -88194,10 +89042,10 @@
transform="matrix(0.06159947,0,0,0.06159947,104.19067,516.14489)"
id="g3172">
<path
- d="M 305.7143,160.59776 443.33253,217.6011 500.33586,355.21934 443.33252,492.83756 305.71429,549.8409 168.09606,492.83756 111.09273,355.21932 168.09607,217.6011 305.7143,160.59776 z"
- transform="matrix(0.9238795,-0.3826834,0.3826834,0.9238795,-112.54277,144.03126)"
+ d="M 305.7143,160.59776 443.33253,217.6011 500.33586,355.21934 443.33252,492.83756 305.71429,549.8409 168.09606,492.83756 111.09273,355.21932 168.09607,217.6011 Z"
+ transform="rotate(-22.499999,305.77562,354.91104)"
id="path2388"
- style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:30.00000191;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="display:inline;overflow:visible;visibility:visible;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:30.00000191;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
inkscape:connector-curvature="0" />
<text
x="160.73796"
@@ -88270,83 +89118,7 @@
id="g1161"
transform="matrix(0.5724346,-0.3079575,0.3079575,0.5724346,131.42904,887.47867)" />
<g
- transform="translate(1494.788,-309.831)"
- id="g16313">
- <rect
- width="24"
- height="24"
- x="-1060.788"
- y="501.19318"
- id="ImportDEF"
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <g
- transform="matrix(0.08604141,0,0,0.08604141,-1059.9338,502.14288)"
- id="g74019">
- <text
- x="-13.388169"
- y="239.68744"
- transform="scale(0.9460798,1.0569933)"
- id="text10478"
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:184.97383118px;line-height:0%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"><tspan
- x="-13.388169"
- y="239.68744"
- id="tspan10480">D</tspan></text>
- <text
- x="80.957664"
- y="239.68744"
- transform="scale(0.9460798,1.0569933)"
- id="text10482"
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:184.97383118px;line-height:0%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"><tspan
- x="80.957664"
- y="239.68744"
- id="tspan10484">E</tspan></text>
- <text
- x="170.1553"
- y="239.68744"
- transform="scale(0.9460798,1.0569933)"
- id="text10486"
- xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:184.97383118px;line-height:0%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"><tspan
- x="170.1553"
- y="239.68744"
- id="tspan10488">F</tspan></text>
- <path
- d="m -648.96875,271.71875 0,3.09375 c 0.57664,0.33689 1.24432,0.6608 1.96875,0.9375 l 0,-2.03125 0.5625,0 c 0.77903,0 1.32495,0.26729 1.65625,0.8125 0.2599,0.42768 0.41193,1.10309 0.46875,2 0.6621,0.15089 1.34221,0.30361 2.0625,0.40625 -0.0474,-1.77538 -0.39095,-3.09535 -1.0625,-3.90625 -0.7208,-0.87535 -1.89263,-1.3125 -3.53125,-1.3125 l -2.125,0 z m 7.21875,0 0,5.28125 c 1.19369,0.14822 2.4474,0.21875 3.75,0.21875 0.71331,0 1.40981,-0.0479 2.09375,-0.0937 l 0,-1.03125 -3.84375,0 0,-2.4375 4.25,0 0,-1.9375 -6.25,0 z m 6.71875,0 0,5.34375 c 1.85549,-0.17944 3.57507,-0.49786 5.0625,-0.96875 l -3.0625,0 0,-2.4375 4.25,0 0,-1.9375 -6.25,0 z"
- transform="matrix(12.723869,0,0,12.723869,8256.4217,-3346.4426)"
- id="path40832"
- style="opacity:0.31627909;fill:url(#linearGradient16526);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- inkscape:connector-curvature="0" />
- <g
- transform="matrix(5.0027792,0,0,5.0027792,-215.17835,-168.84627)"
- id="g39828">
- <circle
- sodipodi:ry="34.144001"
- sodipodi:rx="34.144001"
- sodipodi:cy="110.081"
- sodipodi:cx="100.287"
- cx="100.287"
- cy="110.081"
- r="34.144001"
- transform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)"
- id="circle29"
- style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" />
- <path
- d="m 84.515333,38.943636 0,3.981494 3.981494,0 0,4.799639 -3.981494,0 0,3.981494 -4.782372,0 0,-3.981494 -3.981494,0 0,-4.799639 3.981494,0 0,-3.981494 4.782372,0"
- id="text1332"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
- inkscape:connector-curvature="0" />
- <path
- d="m 82.190677,35.644078 c 5.025924,0 9.194867,3.673581 9.969229,8.481465 -6.921917,-5.82623 -17.958314,0.09291 -16.467662,9.346307 -2.201037,-1.852678 -3.600446,-4.62745 -3.600446,-7.728889 0,-5.576508 4.522377,-10.098883 10.098879,-10.098883 z"
- id="path33"
- style="fill:url(#linearGradient16528);fill-opacity:1;fill-rule:evenodd"
- inkscape:connector-curvature="0" />
- </g>
- </g>
- </g>
- <g
- transform="translate(1566.788,-339.84989)"
+ transform="translate(1492.788,-339.84989)"
id="g16328">
<rect
width="24"
@@ -88354,7 +89126,7 @@
x="-1060.788"
y="531.2121"
id="ImportSVG"
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" />
<g
transform="matrix(0.08604141,0,0,0.08604141,-1060.0447,532.23602)"
id="g99155">
@@ -88362,23 +89134,19 @@
transform="matrix(1.824846,0,0,1.824846,58.301023,-6.9917586)"
id="g2837">
<g
- transform="matrix(0.980201,0,0,0.980201,-311.29806,-163.38411)"
+ transform="matrix(0.980201,0,0,0.980201,-311.29806,-227.07336)"
id="g7207"
style="fill:url(#linearGradient16530);fill-opacity:1">
<path
- d="m 379.91222,232.49347 -16.5206,79.7519 -13.686,0 -16.5206,-79.7519 13.6894,0 9.67437,46.711 9.67408,-46.711 13.6894,0 -5e-5,0 z m -86.6104,39.8753 c -4.22844,-4.22731 -6.84397,-10.067 -6.84397,-16.5164 0,-12.8985 10.4624,-23.3589 23.3637,-23.3586 12.901,-2.9e-4 23.3634,10.4601 23.3634,23.3586 l -13.686,0 c 0,-5.34274 -4.33361,-9.6755 -9.67748,-9.6755 -5.34388,0 -9.67777,4.33276 -9.67777,9.6755 0,2.66882 1.08142,5.08564 2.83011,6.83632 l 0.005,0 c 1.75096,1.7521 4.17062,2.83578 6.84312,2.83606 l 0,0.003 c 6.45052,0 12.291,2.61581 16.5192,6.84312 l 5.6e-4,-5.6e-4 c 4.22816,4.22731 6.84369,10.067 6.84369,16.5164 0,12.8985 -10.4624,23.3586 -23.3634,23.3586 -12.9013,0 -23.3637,-10.4601 -23.3637,-23.3586 l 13.686,0 c 0,5.34274 4.33389,9.6755 9.67777,9.6755 5.34388,0 9.67748,-4.33276 9.67748,-9.6755 0,-2.66882 -1.08142,-5.08564 -2.82983,-6.83632 l -0.005,0 c -1.75124,-1.7521 -4.1709,-2.83606 -6.84312,-2.83606 l 0,-0.003 c -6.45052,0 -12.291,-2.61581 -16.5192,-6.84312 l -5.7e-4,5.7e-4 0,0 z m 109.977,-6.83915 23.3637,0 0,23.3555 0.003,0 c 0,12.8993 -10.4632,23.3603 -23.3654,23.3603 -12.9013,0 -23.3643,-10.4598 -23.3651,-23.3586 l 0,-0.002 0,-33.031 -0.003,0 c 0,-12.8993 10.4632,-23.3606 23.3651,-23.3606 12.9022,0 23.3654,10.4613 23.3654,23.3606 l -13.6894,0 c 0,-5.34104 -4.33219,-9.67238 -9.67437,-9.67238 -5.34189,0 -9.67408,4.33134 -9.67408,9.67238 l 0,33.0327 0,0 c 8.5e-4,5.34019 4.33276,9.6704 9.67437,9.67068 5.34076,-2.9e-4 9.67238,-4.32964 9.67408,-9.66898 l 0,-0.003 0,-9.66898 -9.67437,0 0,-13.6865 7e-5,-1e-5 z"
+ d="m 379.91222,232.49347 -16.5206,79.7519 h -13.686 l -16.5206,-79.7519 h 13.6894 l 9.67437,46.711 9.67408,-46.711 h 13.6894 z m -86.6104,39.8753 c -4.22844,-4.22731 -6.84397,-10.067 -6.84397,-16.5164 0,-12.8985 10.4624,-23.3589 23.3637,-23.3586 12.901,-2.9e-4 23.3634,10.4601 23.3634,23.3586 h -13.686 c 0,-5.34274 -4.33361,-9.6755 -9.67748,-9.6755 -5.34388,0 -9.67777,4.33276 -9.67777,9.6755 0,2.66882 1.08142,5.08564 2.83011,6.83632 h 0.005 c 1.75096,1.7521 4.17062,2.83578 6.84312,2.83606 v 0.003 c 6.45052,0 12.291,2.61581 16.5192,6.84312 l 5.6e-4,-5.6e-4 c 4.22816,4.22731 6.84369,10.067 6.84369,16.5164 0,12.8985 -10.4624,23.3586 -23.3634,23.3586 -12.9013,0 -23.3637,-10.4601 -23.3637,-23.3586 h 13.686 c 0,5.34274 4.33389,9.6755 9.67777,9.6755 5.34388,0 9.67748,-4.33276 9.67748,-9.6755 0,-2.66882 -1.08142,-5.08564 -2.82983,-6.83632 h -0.005 c -1.75124,-1.7521 -4.1709,-2.83606 -6.84312,-2.83606 v -0.003 c -6.45052,0 -12.291,-2.61581 -16.5192,-6.84312 l -5.7e-4,5.7e-4 v 0 z m 109.977,-6.83915 h 23.3637 v 23.3555 h 0.003 c 0,12.8993 -10.4632,23.3603 -23.3654,23.3603 -12.9013,0 -23.3643,-10.4598 -23.3651,-23.3586 v -0.002 -33.031 h -0.003 c 0,-12.8993 10.4632,-23.3606 23.3651,-23.3606 12.9022,0 23.3654,10.4613 23.3654,23.3606 h -13.6894 c 0,-5.34104 -4.33219,-9.67238 -9.67437,-9.67238 -5.34189,0 -9.67408,4.33134 -9.67408,9.67238 v 33.0327 0 c 8.5e-4,5.34019 4.33276,9.6704 9.67437,9.67068 5.34076,-2.9e-4 9.67238,-4.32964 9.67408,-9.66898 v -0.003 -9.66898 h -9.67437 v -13.6865 l 7e-5,-1e-5 z"
id="SVG"
- style="font-size:103.41152191px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.55906028px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans Mono;-inkscape-font-specification:Bitstream Vera Sans"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:103.41152191px;line-height:125%;font-family:'Bitstream Vera Sans Mono';-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.55906028px;marker:none;enable-background:accumulate"
inkscape:connector-curvature="0" />
</g>
<g
- transform="matrix(2.7414802,0,0,2.7414802,-149.86436,-88.69471)"
+ transform="matrix(2.7414802,0,0,2.7414802,-149.86436,-12.267588)"
id="g99162">
<circle
- sodipodi:ry="34.144001"
- sodipodi:rx="34.144001"
- sodipodi:cy="110.081"
- sodipodi:cx="100.287"
cx="100.287"
cy="110.081"
r="34.144001"
@@ -88386,21 +89154,11 @@
id="circle99164"
style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" />
<path
- d="m 84.515333,38.943636 0,3.981494 3.981494,0 0,4.799639 -3.981494,0 0,3.981494 -4.782372,0 0,-3.981494 -3.981494,0 0,-4.799639 3.981494,0 0,-3.981494 4.782372,0"
+ d="m 84.515333,38.943636 v 3.981494 h 3.981494 v 4.799639 h -3.981494 v 3.981494 H 79.732961 V 47.724769 H 75.751467 V 42.92513 h 3.981494 v -3.981494 h 4.782372"
id="path99166"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
- inkscape:connector-curvature="0" />
- <path
- d="m 82.190677,35.644078 c 5.025924,0 9.194867,3.673581 9.969229,8.481465 -6.921917,-5.82623 -17.958314,0.09291 -16.467662,9.346307 -2.201037,-1.852678 -3.600446,-4.62745 -3.600446,-7.728889 0,-5.576508 4.522377,-10.098883 10.098879,-10.098883 z"
- id="path99168"
- style="fill:url(#linearGradient16532);fill-opacity:1;fill-rule:evenodd"
+ style="font-style:normal;font-weight:normal;font-size:12px;font-family:'Bitstream Vera Sans';display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none"
inkscape:connector-curvature="0" />
</g>
- <path
- d="m -7.6413571,64.595718 c -12.6458699,-2.79e-4 -22.8785379,10.235735 -22.8787479,22.87875 0,2.058931 0.361877,3.984965 0.871572,5.883108 10.447356,5.505542 24.2667759,9.838644 39.874396,12.419894 -0.5633901,-0.71601 -1.0995101,-1.53543 -1.7431401,-2.17893 -4.1445,-4.14359 -9.80135,-6.754748 -16.12408,-6.754678 -2.6195899,-2.79e-4 -5.0382399,-1.115193 -6.7546799,-2.832608 -1.71406,-1.716019 -2.6145,-3.920677 -2.61471,-6.536786 0,-5.236959 4.13125,-9.587286 9.3693899,-9.587286 5.23808,0 9.58708,4.350397 9.58729,9.587286 l 13.2914601,0 c 0,-12.643155 -10.2331501,-22.879099 -22.8787501,-22.87875 z m 22.8787501,0 8.93361,42.924892 c 4.41245,0.4072 8.89519,0.52225 13.50936,0.65333 l -8.93361,-43.578571 -13.50936,0 z m 32.46604,0 -9.1515,43.578572 c 1.80241,0.0418 3.6196,0.21754 5.44732,0.21754 2.70424,0 5.41462,-0.12132 8.06204,-0.21754 l 8.93361,-43.578572 -13.29147,0 z m 36.38811,0 c -12.64643,0 -23.0965,10.234759 -23.09664,22.87875 l 0,20.264042 c 4.64045,-0.36467 9.12793,-0.87973 13.50935,-1.52526 l 0,-18.738782 c 0,-5.235285 4.3511,-9.587355 9.58729,-9.587286 5.2364,0 9.36953,4.351861 9.36939,9.587286 l 13.509357,0 c 0,-12.643922 -10.231967,-22.87882 -22.878747,-22.87875 z m 0,32.248144 0,7.626248 c 8.34582,-1.69308 16.057407,-3.69748 22.878747,-6.318891 l 0,-1.307357 -22.878747,0 z"
- id="path99160"
- style="opacity:0.31627909;fill:url(#linearGradient16534);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- inkscape:connector-curvature="0" />
</g>
</g>
</g>
@@ -89273,60 +90031,60 @@
id="g19199"
transform="matrix(5.3097304e-2,0,0,5.3097304e-2,247.38564,260.36282)">
<circle
- sodipodi:ry="226"
- sodipodi:rx="226"
- sodipodi:cy="0"
- sodipodi:cx="0"
style="fill:#000000"
id="circle15691"
transform="matrix(1,0,0,-1,1028.5714,378.07647)"
r="226"
cy="0"
- cx="0" />
+ cx="0"
+ sodipodi:ry="226"
+ sodipodi:rx="226"
+ sodipodi:cy="0"
+ sodipodi:cx="0" />
<circle
- sodipodi:ry="169.5"
- sodipodi:rx="169.5"
- sodipodi:cy="0"
- sodipodi:cx="0"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1"
id="circle15939"
transform="matrix(1,0,0,-1,1028.5714,378.07647)"
r="169.5"
cy="0"
- cx="0" />
+ cx="0"
+ sodipodi:ry="169.5"
+ sodipodi:rx="169.5"
+ sodipodi:cy="0"
+ sodipodi:cx="0" />
<circle
- sodipodi:ry="106.5"
- sodipodi:rx="106.5"
- sodipodi:cy="0"
- sodipodi:cx="0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1"
id="circle15943"
transform="matrix(1.0610323,0,0,-1.0610323,1028.5714,378.07647)"
r="106.5"
cy="0"
- cx="0" />
- <circle
+ cx="0"
sodipodi:ry="106.5"
sodipodi:rx="106.5"
sodipodi:cy="0"
- sodipodi:cx="0"
+ sodipodi:cx="0" />
+ <circle
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1"
id="circle18349"
transform="matrix(0.5305159,0,0,-0.5305159,1028.5714,378.07647)"
r="106.5"
cy="0"
- cx="0" />
- <circle
+ cx="0"
sodipodi:ry="106.5"
sodipodi:rx="106.5"
sodipodi:cy="0"
- sodipodi:cx="0"
+ sodipodi:cx="0" />
+ <circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1;stroke-opacity:1"
id="circle18347"
transform="matrix(0.1768394,0,0,-0.1768394,1028.5714,378.07647)"
r="106.5"
cy="0"
- cx="0" />
+ cx="0"
+ sodipodi:ry="106.5"
+ sodipodi:rx="106.5"
+ sodipodi:cy="0"
+ sodipodi:cx="0" />
</g>
<text
style="font-style:normal;font-weight:normal;font-size:20px;line-height:0%;font-family:'Bitstream Vera Sans';fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@@ -89947,24 +90705,23 @@
d="m -890.18653,431.39368 -3.78125,2.25 -3.625,2.15625 3.78125,2.28125 3.59375,2.15625 0,-3.40625 48.3125,0 1,0 0,-2 -1,0 -48.3125,0 0.0312,-3.4375 z"
id="counter2_rotating"
inkscape:connector-curvature="0" />
- <path
- sodipodi:type="arc"
+ <ellipse
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible"
id="counter2_center"
- sodipodi:cx="91.923882"
+ transform="matrix(0.5324675,0,0,0.5324675,-889.75288,329.57107)"
+ d="m 96.848375,199.42668 a 4.9244938,4.8613591 0 0 1 -4.924493,4.86136 4.9244938,4.8613591 0 0 1 -4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924493,4.86136 z"
+ sodipodi:type="arc"
+ sodipodi:ry="4.8613591"
+ sodipodi:rx="4.9244938"
sodipodi:cy="199.42668"
- sodipodi:rx="4.9244938"
- sodipodi:ry="4.8613591"
- d="m 96.848375,199.42668 a 4.9244938,4.8613591 0 0 1 -4.924493,4.86136 4.9244938,4.8613591 0 0 1 -4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924494,-4.86136 4.9244938,4.8613591 0 0 1 4.924493,4.86136 z"
- transform="matrix(0.5324675,0,0,0.5324675,-889.75288,329.57107)" />
+ sodipodi:cx="91.923882" />
</g>
<text
x="73.295929"
y="121.52582"
id="text16266"
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:linespacing="0%"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><tspan
sodipodi:role="line"
id="tspan16268"
x="73.295929"
@@ -90963,7 +91720,7 @@
</g>
<g
id="g16550"
- transform="translate(1727.0897,-400.03854)">
+ transform="translate(1653.0897,-400.03854)">
<g
id="g16553">
<rect
@@ -90972,7 +91729,7 @@
x="-1061.0897"
y="591.4007"
id="ShowMaster"
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" />
</g>
<g
id="g16589"
@@ -90987,7 +91744,7 @@
y="-2666.4033"
transform="matrix(0.926956,0.375171,0,1,0,0)"
id="rect16561"
- style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
<rect
width="593.28876"
height="420.25934"
@@ -90995,7 +91752,7 @@
y="-1753.9264"
transform="matrix(0.929224,-0.369517,0,1,0,0)"
id="rect16563"
- style="fill:url(#linearGradient16607);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16607);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
<rect
width="995.74323"
height="593.25934"
@@ -91003,39 +91760,39 @@
y="-4162.4521"
transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)"
id="rect16565"
- style="fill:url(#linearGradient16609);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16609);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
<g
transform="matrix(1,0.428039,0,1,508,-889.8732)"
id="g16567">
<path
- d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z"
+ d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z"
id="path16569"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z"
+ d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z"
id="path16571"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z"
+ d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z"
id="path16573"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
+ d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
id="path16575"
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
- d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
+ d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
id="path16577"
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689"
id="path16579"
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
</g>
</g>
@@ -91056,15 +91813,15 @@
<path
d="m 144.80549,88.557517 c 0,39.134993 -31.76158,70.896673 -70.896401,70.896673 -39.135167,0 -70.8967476,-31.76168 -70.8967476,-70.896673 0,-39.134957 31.7615806,-70.896643 70.8967476,-70.896643 39.134821,0 70.896401,31.761686 70.896401,70.896643 z"
id="path16613"
- style="fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;fill:#373737;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.61199999;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 L 202.60774,194.21232 z"
+ d="m 202.60774,194.21232 c 3.92622,3.92538 3.92622,10.29011 0,14.21632 l -9.21619,9.21617 c -3.92622,3.92705 -10.29105,3.92537 -14.21657,0 L 28.710589,67.179433 c -3.925514,-3.926213 -3.925514,-10.290947 0,-14.216321 l 9.216896,-9.217 c 3.925514,-3.925409 10.291051,-3.926213 14.216565,0 z"
id="path16615"
style="fill:#373737;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
- d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 L 199.13799,197.60713 z"
+ d="m 199.13799,197.60713 c 2.77615,2.77542 2.77615,7.27558 0,10.05159 l -6.51629,6.51626 c -2.77581,2.77661 -7.276,2.77542 -10.05146,0 L 76.185068,107.78914 c -2.775456,-2.77598 -2.775456,-7.27614 0,-10.051559 l 6.51664,-6.51685 c 2.775457,-2.775422 7.27635,-2.776016 10.051806,0 z"
id="path16617"
style="fill:#483737;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
@@ -91089,8 +91846,8 @@
style="fill:url(#linearGradient16647)"
inkscape:connector-curvature="0" />
<path
- style="fill:url(#linearGradient16669);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
- d="M 85.93064,79.962195 23.081268,104.84007 c 7.287315,20.5463 28.181658,35.78923 53.247384,35.78923 27.692408,0 50.300168,-18.4368 54.993198,-42.336038 L 85.93064,79.962195 z"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16669);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ d="M 85.93064,79.962195 23.081268,104.84007 c 7.287315,20.5463 28.181658,35.78923 53.247384,35.78923 27.692408,0 50.300168,-18.4368 54.993198,-42.336038 z"
id="rect16657"
inkscape:connector-curvature="0" />
<path
@@ -91134,10 +91891,10 @@
style="opacity:0.47906979;fill:url(#linearGradient16653);stroke:none"
inkscape:connector-curvature="0" />
<path
- d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 l 0,0 z"
+ d="m 40.481863,36.421127 c 0,4.637476 -7.004387,8.396894 -15.644737,8.396894 -8.64035,0 -15.6447375,-3.759418 -15.6447375,-8.396894 0,-4.637476 7.0043875,-8.396894 15.6447375,-8.396894 8.64035,0 15.644737,3.759418 15.644737,8.396894 z"
transform="matrix(5.8942914,0,0,3.3456793,14.375906,106.05328)"
id="path16643"
- style="opacity:0.20454544;fill:url(#radialGradient16655);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.20454544;fill:url(#radialGradient16655);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
inkscape:connector-curvature="0" />
</g>
</g>
@@ -91262,7 +92019,7 @@
x="166.52481"
id="tspan16195-0"
sodipodi:role="line"
- style="font-size:12.76000023px;line-height:1.25">%% Extension Cfile Pyfile wxGlade SVGUI FOLDER FILE %%</tspan></text>
+ style="font-size:12.76000023px;line-height:1.25">%% Extension Cfile Pyfile wxGlade SVGHMI FOLDER FILE %%</tspan></text>
<use
style="display:inline"
inkscape:label="#use3839"
@@ -92075,13 +92832,14 @@
<g
transform="translate(444.93931,321.78746)"
style="display:inline"
- id="SVGUI"
+ id="svghmi"
inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
+ inkscape:export-ydpi="90"
+ inkscape:label="svghmi">
<path
inkscape:connector-curvature="0"
- style="fill:url(#linearGradient18010);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
- d="m -40,0 0,16 16,0 0,-16 -16,0 z m 1,1 14,0 0,14 -14,0 0,-14 z"
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient18010);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none"
+ d="m -40,0 v 16 h 16 V 0 Z m 1,1 h 14 v 14 h -14 z"
id="path3806-1-6-1"
sodipodi:nodetypes="cccccccccc"
inkscape:label="#rect2160" />
@@ -92205,16 +92963,16 @@
transform="matrix(5.0027792,0,0,5.0027792,-215.17835,-168.84627)"
id="g39828-7">
<circle
- sodipodi:ry="34.144001"
- sodipodi:rx="34.144001"
- sodipodi:cy="110.081"
- sodipodi:cx="100.287"
cx="100.287"
cy="110.081"
r="34.144001"
transform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)"
id="circle29-8"
- style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" />
+ style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006"
+ sodipodi:ry="34.144001"
+ sodipodi:rx="34.144001"
+ sodipodi:cy="110.081"
+ sodipodi:cx="100.287" />
<path
d="m 84.515333,38.943636 0,3.981494 3.981494,0 0,4.799639 -3.981494,0 0,3.981494 -4.782372,0 0,-3.981494 -3.981494,0 0,-4.799639 3.981494,0 0,-3.981494 4.782372,0"
id="text1332-4"
@@ -92230,7 +92988,7 @@
</g>
<g
id="g16550-5"
- transform="translate(1807.0897,-400.03854)">
+ transform="translate(1733.0897,-400.03854)">
<g
id="g16553-9">
<rect
@@ -92239,7 +92997,7 @@
x="-1061.0897"
y="591.4007"
id="ExportSlave"
- style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" />
</g>
<g
id="g16589-7"
@@ -92254,7 +93012,7 @@
y="-2666.4033"
transform="matrix(0.926956,0.375171,0,1,0,0)"
id="rect16561-6"
- style="fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ style="display:inline;overflow:visible;visibility:visible;fill:#3d993d;fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
<rect
width="593.28876"
height="420.25934"
@@ -92262,7 +93020,7 @@
y="-1753.9264"
transform="matrix(0.929224,-0.369517,0,1,0,0)"
id="rect16563-9"
- style="fill:url(#linearGradient16607-0);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16607-0);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
<rect
width="995.74323"
height="593.25934"
@@ -92270,39 +93028,39 @@
y="-4162.4521"
transform="matrix(0.926288,0.376817,-0.92919,0.369603,0,0)"
id="rect16565-9"
- style="fill:url(#linearGradient16609-7);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient16609-7);fill-opacity:1;fill-rule:nonzero;stroke:#3d993d;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
<g
transform="matrix(1,0.428039,0,1,508,-889.8732)"
id="g16567-9">
<path
- d="m -171.2884,-1442.3646 -22.25763,0 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 l 22.25763,0 0,-35.5554 -15.43101,0 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 l 15.43101,0 0,-35.5553 z"
+ d="m -171.2884,-1442.3646 h -22.25763 c -39.75086,0 -68.40846,33.3509 -68.40846,73.8129 0,40.6753 28.72871,74.0973 68.40846,74.0973 h 22.25763 v -35.5554 h -15.43101 c -20.76431,0 -36.83532,-12.5154 -36.83532,-38.5419 0,-26.0265 16.07101,-38.2576 36.83532,-38.2576 h 15.43101 z"
id="path16569-8"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m -103.37772,-1294.4544 0,-99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 l 0,13.7244 -23.110964,0 0,33.422 23.110964,0 0,51.9108 36.977543,0 0,-97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 l 0,97.3505 36.97754,0 z"
+ d="m -103.37772,-1294.4544 v -99.0572 c 0,-11.0221 5.831076,-17.991 14.791019,-17.991 9.102165,0 15.07546,7.1111 15.07546,17.991 v 13.7244 h -23.110964 v 33.422 h 23.110964 v 51.9108 h 36.977543 v -97.3505 c 0,-31.7154 -21.048755,-53.1197 -52.053003,-53.1197 -30.933139,0 -51.768559,21.4754 -51.768559,53.1197 v 97.3505 z"
id="path16571-3"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m 34.576962,-1294.4544 0,-86.755 0,0 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 l 0,-128.8525 -36.977545,0 0,78.0795 -0.568885,0 -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 l 0,130.3459 36.9775428,0 z"
+ d="m 34.576962,-1294.4544 v -86.755 0 l 34.346449,65.9907 c 9.67105,18.8443 16.711005,23.3243 26.239834,23.3243 9.244385,0 19.768765,-8.0355 19.768765,-21.6177 v -128.8525 H 77.954465 v 78.0795 H 77.38558 l -32.853125,-65.2085 c -5.475521,-10.8088 -12.87103,-15.431 -25.386506,-15.431 -12.4443653,0 -21.5465298,8.3911 -21.5465298,20.1243 v 130.3459 z"
id="path16573-0"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none"
inkscape:connector-curvature="0" />
<path
- d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 l -0.59315,0 -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
+ d="m 252.34055,-1353.787 9.40576,-1.1015 c 6.66579,-8.0217 12.00419,-12.0325 16.0152,-12.0326 2.71141,10e-5 4.0672,1.1016 4.06735,3.3047 -1.5e-4,2.5422 -2.14681,4.9713 -6.43997,7.2873 -3.33312,1.8643 -6.6096,3.1071 -9.82944,3.7285 -1.46891,3.3895 -2.93767,6.8072 -4.4063,10.2531 -2.25977,4.5193 -4.60415,6.7789 -7.03313,6.7789 -0.56504,0 -1.35591,-0.028 -2.37262,-0.085 -1.01697,-0.057 -1.75135,-0.113 -2.20315,-0.1695 l -1.01684,-0.5084 c 0.11286,-1.2993 1.75109,-4.0108 4.91472,-8.1347 2.59845,-3.333 4.8016,-5.9315 6.60945,-7.7958 l -8.98207,1.1016 c -11.01587,18.9245 -22.28582,32.9625 -33.80988,42.114 -14.3488,11.4677 -31.01363,17.2015 -49.99455,17.2015 -7.45685,0 -13.72735,-0.9885 -18.81151,-2.9657 -7.23087,-2.8246 -10.84629,-7.3721 -10.84627,-13.6426 -2e-5,-2.1467 0.67787,-3.9261 2.03367,-5.3384 1.41226,-1.4688 3.16348,-2.2031 5.25367,-2.2032 1.41225,10e-5 2.62681,0.6215 3.64367,1.8642 1.0733,1.1864 1.60997,2.5139 1.60999,3.9827 -2e-5,1.2428 -0.42371,2.4573 -1.27104,3.6436 -0.90389,1.3558 -1.94897,2.0337 -3.13526,2.0337 -1.86422,0 -3.58719,-0.5649 -5.16892,-1.6947 1.69471,8.1912 10.42256,12.2868 26.18358,12.2868 11.75008,0 22.20091,-2.8811 31.35252,-8.6432 7.23077,-4.5757 14.57459,-11.6371 22.03149,-21.1841 6.38339,-8.9255 12.76686,-17.8229 19.15046,-26.692 -10.90287,0.6215 -21.32545,2.6551 -31.26778,6.101 -6.83549,2.3162 -9.94249,3.4743 -9.32102,3.4742 h -0.59315 l -0.6779,-1.0168 0.76263,-1.0168 c 10.39427,-5.3101 24.5735,-8.5584 42.53774,-9.7447 5.47951,-7.2873 13.95315,-16.7213 25.42096,-28.302 12.37138,-12.5409 21.69238,-20.7604 27.96305,-24.6584 l 1.10158,-0.2542 0.67789,0.7626 -0.33895,0.9321 c -1.63841,1.9209 -4.03927,4.1805 -7.2026,6.779 -3.95453,3.2765 -6.46838,5.4232 -7.54155,6.4399 -11.80677,11.1854 -21.29725,23.5569 -28.47148,37.1146 m 27.11569,-9.321 c -1.5e-4,-1.0167 -0.50857,-1.5252 -1.52526,-1.5252 -1.86435,0 -4.0675,1.1581 -6.60944,3.4742 -2.14681,1.9207 -3.81329,3.8979 -4.99946,5.9315 1.97704,-0.3954 4.49089,-1.3839 7.54155,-2.9658 3.72825,-1.8641 5.59246,-3.5023 5.59261,-4.9147 m -34.31829,-48.3845 c -13.67094,10e-5 -26.57912,2.6269 -38.72459,7.8805 -15.59159,6.7225 -23.38734,16.0435 -23.38728,27.963 -6e-5,4.5759 2.4008,8.0501 7.2026,10.4226 3.72834,1.9208 8.13463,2.8811 13.2189,2.8811 7.68269,0 16.43879,-2.3161 26.26832,-6.9484 11.46756,-5.4231 17.20139,-11.5241 17.20152,-18.3031 -1.3e-4,-3.0504 -1.24293,-5.4231 -3.72841,-7.1179 -2.14678,-1.4687 -4.77361,-2.203 -7.8805,-2.2031 -13.1625,1e-4 -26.04244,5.6209 -38.63985,16.8625 -1.80779,1.9773 -4.60409,4.7736 -8.38892,8.3889 l -0.76263,0.085 -0.59315,-0.6779 0.25421,-0.9321 c 2.88097,-5.8185 9.9141,-11.6371 21.09939,-17.4557 10.67671,-5.5926 19.51754,-8.3889 26.52253,-8.389 3.61531,10e-5 6.75056,0.8193 9.40576,2.4574 3.16337,1.9208 4.74512,4.6041 4.74524,8.05 -1.2e-4,7.9653 -5.79045,14.8854 -17.37099,20.7604 -9.94251,5.0843 -19.32001,7.6264 -28.13252,7.6263 -5.81865,10e-5 -10.78986,-1.158 -14.91363,-3.4742 -5.08425,-2.8245 -7.62635,-6.9483 -7.62629,-12.3715 -6e-5,-4.8582 1.27099,-9.095 3.81315,-12.7105 8.86902,-12.6539 23.58491,-20.7321 44.14773,-24.2347 9.20792,-1.5251 26.69187,-2.2877 52.45191,-2.2878 6.43981,10e-5 16.07152,0.057 28.89515,0.1694 12.87975,0.057 22.51146,0.085 28.89516,0.085 5.19695,10e-5 9.12307,-0.5648 11.77837,-1.6948 1.86398,-0.7342 5.08396,-2.8526 9.65997,-6.3552 l 0.84736,-0.3389 0.9321,1.1863 -0.25421,0.8473 c -9.32124,10.0556 -24.77152,15.0832 -46.35087,15.0831 -7.90893,10e-5 -19.6873,-0.8755 -35.33514,-2.6268 -15.64815,-1.7511 -27.39827,-2.6267 -35.25039,-2.6268"
id="path16575-5"
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
- d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 l -9.75,0 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 l -9.5625,0 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 -10.65625,0 14.90625,-16.5312 -9.90625,0 -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 4.40625,0 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
+ d="m 600.625,-1391.1562 c -5.95832,0.301 -14.35188,5.2745 -25.1875,14.9062 -8.02176,7.2309 -17.34845,17.0349 -27.96875,29.4062 -5.64912,6.779 -11.28844,13.5649 -16.9375,20.3438 -2.59859,2.9941 -6.21148,6.0865 -10.84375,9.25 -4.06735,2.5986 -34.41191,25.3656 -39.3125,23.5312 -0.53337,-0.1997 -1.26798,-0.5781 -1.375,-1.0937 -0.23834,-1.1483 4.197,-6.4241 12.21875,-15.4063 4.97118,-5.4231 9.935,-10.858 14.90625,-16.2812 h -9.75 c -4.5193,5.2537 -7.46274,8.5878 -8.875,10 0.39541,-1.2993 0.56247,-2.4518 0.5625,-3.4688 -3e-5,-4.3497 -2.82569,-6.5312 -8.53125,-6.5312 -6.89191,0 -14.34728,2.7391 -22.3125,8.2188 -4.33149,2.9726 -7.43298,5.34 -9.59375,8.4687 10e-6,10e-5 -2.70434,0.8207 -4.625,1.7813 -1.92072,0.9603 -3.63101,1.4377 -5.15625,1.4374 -1.07335,0 -2.05892,-0.3593 -2.90625,-1.0937 8.24766,-6.6659 12.37496,-12.2618 12.375,-16.7813 -3e-5,-1.4687 -0.71877,-2.1874 -2.1875,-2.1874 -2.82458,10e-5 -5.96032,2.1444 -9.40625,6.4374 -3.33299,4.0675 -5.00002,7.5627 -5,10.5 -2e-5,2e-4 0.12376,0.5577 0.40625,1.6876 -11.01576,9.6599 -19.74753,14.5 -26.1875,14.5 -2.14665,0 -3.21874,-0.5145 -3.21875,-1.5313 10e-6,-1.1299 3.17303,-4.7428 9.5,-10.8437 6.32699,-6.1575 9.49998,-10.9976 9.5,-14.5 -10e-6,-4.0673 -1.62377,-6.0938 -4.84375,-6.0938 -2.37262,0 -6.9771,2.5779 -13.8125,7.7188 -5.81503,4.3374 -15.57478,13.2562 -21.6875,17.375 -7.68278,5.1972 -13.32205,7.7006 -16.9375,7.5312 L 362,-1294.8125 c 0.113,-1.1863 4.16577,-6.3056 12.1875,-15.3437 4.91471,-5.4798 9.83528,-10.9206 14.75,-16.3438 h -9.5625 c -5.93156,5.0842 -28.68563,25.426 -52.46875,32.625 -0.003,-10e-5 -0.0285,0 -0.0312,0 -0.007,0 -0.024,-9e-4 -0.0312,0 -0.0231,0 -0.0692,10e-4 -0.0937,0 -0.0162,0 -0.0475,0 -0.0625,0 -0.25291,-0.045 -0.55309,-0.2262 -0.75,-0.375 -0.0709,-0.056 -0.14178,-0.1228 -0.1875,-0.1875 -0.0137,-0.021 -0.0479,-0.068 -0.0625,-0.094 -0.0102,-0.025 -0.0259,-0.068 -0.0312,-0.094 1.1e-4,0 -5e-5,-0.028 0,-0.031 -2.7e-4,0 9e-5,-0.027 0,-0.031 10e-5,0 -2.9e-4,-0.026 0,-0.031 0.11886,-1.3111 6.11893,-8.3387 17,-20.5937 6.77891,-7.5132 13.5648,-15.0179 20.34375,-22.5313 7.66156,0.1978 12.06535,-0.09 13.15625,-0.8437 0.005,-0.01 0.0259,-0.026 0.0312,-0.031 0.0286,-0.026 0.0701,-0.067 0.0937,-0.094 0.003,0 0.028,-0.028 0.0312,-0.031 0.0301,-0.041 0.0768,-0.1117 0.0937,-0.1562 -10e-6,0 1.9e-4,-0.028 0,-0.031 l -1.125,-1.1876 H 364.625 l 14.90625,-16.5312 H 369.625 l -14.75,16.5312 c -4.01396,-0.1416 -6.52566,0.1253 -7.5,0.8126 -0.10498,0.077 -0.20936,0.1857 -0.28125,0.2812 -0.0339,0.048 -0.0712,0.1095 -0.0937,0.1562 l 1.4375,1.125 h 4.40625 c -7.23085,8.0784 -28.18662,24.3812 -35.03125,28.5626 -6.79906,4.1534 -9.98436,4.8857 -12.1875,5.2812 2.03366,-3.333 3.06249,-6.989 3.0625,-11 -10e-6,-1.0168 -0.16106,-2.5228 -0.5,-4.5 -0.28246,-1.9772 -0.43751,-3.4832 -0.4375,-4.5 -10e-6,-1.5253 0.0805,-2.7582 0.25,-3.7188 3.50243,-2.8244 6.15502,-4.9314 7.90625,-6.3437 l -1.2813,-1.4383 c -0.003,10e-5 -0.0246,0 -0.0312,0 -0.003,-2e-4 -0.0285,0 -0.0312,0 -1.22688,0.4067 -7.82546,4.867 -19.78125,13.375 -10.91202,7.7653 -23.07076,16.4159 -30.75,21.5 -8.13471,5.4231 -14.88335,8.125 -20.25,8.125 -1.42992,0 -2.46833,-0.3306 -3.09375,-0.9688 -0.46922,-0.4943 -0.71875,-1.1889 -0.71875,-2.0624 1e-5,-4.0674 2.70189,-7.5192 8.125,-10.3438 5.02771,-2.2031 10.06604,-4.3845 15.09375,-6.5312 5.42312,-2.5987 8.12499,-5.5793 8.125,-8.9688 -10e-6,-2.9375 -1.78482,-4.4062 -5.34375,-4.4062 -6.21401,0 -13.00593,2.9431 -20.40625,8.875 -7.73925,6.2139 -11.62496,12.3677 -11.625,18.4687 3e-5,5.7056 3.72469,8.5625 11.125,8.5625 5.87507,0 16.51546,-5.5586 31.9375,-16.6875 0,0 25.61056,-17.7692 27.53125,-19.125 -7.00488,22.088 -15.34604,33.1251 -25.0625,33.125 -1.65102,0 -2.79395,-0.3633 -3.375,-1.0937 -0.0392,-0.051 -0.0909,-0.1329 -0.125,-0.1876 -0.18308,-0.3026 -0.28337,-0.6549 -0.3125,-1.0624 4.18035,0.1129 6.25001,-1.6284 6.25,-5.1876 1e-5,-2.0901 -1.19587,-3.125 -3.625,-3.125 -3.72839,1e-4 -5.59372,2.2247 -5.59375,6.6876 2e-5,4.2932 2.70187,6.4377 8.125,6.4374 6.77893,0 14.3641,-3.7306 22.78125,-11.1874 1.92069,-0.113 7.43056,-1.8252 11.3125,-3.7813 3.93186,-1.9813 16.21387,-10.4086 21.75,-14.25 -3.44595,3.446 -6.8978,6.8978 -10.34375,10.3437 -3.89786,4.5193 -5.84373,8.8017 -5.84375,12.8126 2e-5,3.5588 1.74779,5.3052 5.25,5.3437 11.23201,0.125 37.90549,-20.5574 40.15625,-22.2187 -3.89787,4.8583 -5.92427,7.3988 -6.09375,7.625 -2.20313,3.22 -3.3125,6.2382 -3.3125,9.0624 1e-5,3.672 1.74156,5.5314 5.1875,5.5313 2.76807,0 8.64294,-2.3797 17.625,-7.125 8.30152,-4.3268 18.00607,-13.323 22.78125,-17.875 6.04454,-5.762 10.3329,-8.613 12.875,-8.5 l 1.1875,0.875 c 3.8e-4,0.011 -10e-6,0.051 0,0.062 -0.002,0 -0.0242,0.024 -0.0312,0.031 -0.37172,0.832 -3.50081,4.2378 -9.375,10.2188 -6.214,6.327 -9.31248,11.2476 -9.3125,14.75 10e-6,4.8583 2.69585,7.2815 8.0625,7.2812 6.21401,0 15.38566,-4.9637 27.53125,-14.9062 1.41225,1.2993 2.9615,1.9688 4.65625,1.9688 2.70944,0 5.45731,-0.8337 8.25,-2.4376 -1.10458,2.2633 -1.625,4.5637 -1.625,6.9063 2e-5,5.8751 2.98073,8.8125 8.96875,8.8125 5.76209,0 12.82682,-3.2967 21.1875,-9.9062 -0.50842,1.4123 -0.75,2.881 -0.75,4.4062 -1e-5,3.6155 1.67303,5.4375 5.0625,5.4375 10.11059,0 35.97718,-20.524 38.40625,-22.2187 -3.84137,4.7453 -5.90503,7.286 -6.1875,7.625 -2.20314,3.22 -3.31249,6.2379 -3.3125,9.0624 2e-5,3.672 1.78481,5.5314 5.34375,5.5313 3.27649,0 9.23187,-2.256 17.875,-6.7187 7.40754,-4.4699 11.50601,-7.8449 14.34375,-10.375 L 544,-1309.375 c -0.005,0 -0.0248,0 -0.0312,0 -0.50984,0.2448 -4.56438,2.9961 -12.15625,8.2188 -7.28734,5.0276 -13.19428,6.6274 -17.3125,7.2812 -0.86863,0.1379 -1.68286,-0.1505 -1.4375,-0.9375 0.4599,-1.4752 1.3101,-2.4411 1.875,-3.0625 5.36665,-6.4964 10.76435,-12.935 16.1875,-19.375 6.55294,-7.8522 12.31001,-13.9999 17.28125,-18.4062 2.20312,-1.8643 8.98905,-6.1153 20.34375,-12.7813 11.75007,-6.8918 20.32678,-12.6057 25.75,-17.125 8.41708,-7.0048 12.6249,-13.4373 12.625,-19.3125 -8e-5,-1.6381 -0.59502,-3.1009 -1.78125,-4.3438 -1.1299,-1.2991 -2.51808,-1.9374 -4.15625,-1.9374 -0.18713,0 -0.3703,-0.01 -0.5625,0 z m -0.625,2.2187 c 0.23304,-0.017 0.46109,0 0.6875,0 2.82447,10e-5 4.24994,1.3511 4.25,4.0625 -8e-5,5.9882 -7.61646,14.4098 -22.8125,25.3125 -3.78495,2.7116 -14.34482,9.4603 -31.6875,20.25 11.80658,-15.648 19.42899,-25.4146 22.875,-29.3125 11.39149,-13.0811 20.29184,-19.8525 26.6875,-20.3125 z m -120.0625,64.9063 c 0.0321,0 0.0619,0 0.0937,0 0.20046,-0.016 0.40309,0 0.59375,0 3.27646,-1e-4 4.90622,1.4316 4.90625,4.3124 -2e-5,4.8583 -4.28837,10.578 -12.875,17.1876 -8.30418,6.327 -15.00955,9.4999 -20.09375,9.5 -1.29046,0 -2.23885,-0.3011 -2.84375,-0.875 -0.0161,-0.016 -0.0469,-0.046 -0.0625,-0.063 -0.46945,-0.5029 -0.71874,-1.2314 -0.71875,-2.125 2e-5,-3.9543 4.25111,-9.5937 12.78125,-16.9374 8.06676,-6.9449 14.14303,-10.6227 18.21875,-11 z m -213.90625,0.7812 c 0.0333,0 0.0606,0 0.0937,0 0.012,-6e-4 0.0512,-7e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-5e-4 0.0512,-6e-4 0.0625,0 0.004,10e-5 0.0273,10e-5 0.0312,0 0.012,-4e-4 0.0512,-5e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.012,-4e-4 0.0512,-4e-4 0.0625,0 0.004,10e-5 0.0272,10e-5 0.0312,0 0.13863,-0.01 0.27032,0 0.40625,0 1.24279,10e-5 1.87497,0.6382 1.875,1.9375 -2e-5,3.3895 -6.35202,7.1945 -19.0625,11.375 6.63026,-8.2614 12.08362,-12.7437 16.3125,-13.3125 z"
id="path16577-3"
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
d="m 406.81523,-1346.1607 c -0.7909,1.9773 -2.62686,3.898 -5.50787,5.7621 -2.09019,-1.4122 -3.75668,-3.2199 -4.99946,-5.4231 1.07331,-2.3726 2.79628,-4.2085 5.16893,-5.5079 1.75119,0.8474 3.53066,2.5704 5.3384,5.1689"
id="path16579-2"
- style="font-size:173.54040527px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Exmouth"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:173.54040527px;line-height:125%;font-family:Exmouth;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
</g>
</g>
@@ -92323,36 +93081,36 @@
transform="matrix(0.70713063,0,0,0.70713063,-1523.2675,436.54273)">
<g
id="text10482-1-9"
- style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans Mono"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
transform="scale(0.9460798,1.0569933)">
<path
inkscape:connector-curvature="0"
id="path62827"
- d="m 701.87431,209.89048 0,7.46812 0.62169,0 c 0.90146,0 1.54388,-0.28235 1.92726,-0.84706 0.38337,-0.56989 0.57506,-1.5361 0.57507,-2.89866 -10e-6,-1.35218 -0.1917,-2.31063 -0.57507,-2.87534 -0.38338,-0.5647 -1.0258,-0.84705 -1.92726,-0.84706 l -0.62169,0 m -2.29251,-2.06714 2.4557,0 c 1.89617,1e-5 3.26131,0.45333 4.09542,1.35996 0.8341,0.90147 1.25116,2.37799 1.25117,4.42958 -10e-6,2.05678 -0.41707,3.54108 -1.25117,4.4529 -0.83411,0.90664 -2.19925,1.35996 -4.09542,1.35996 l -2.4557,0 0,-11.6024" />
+ d="m 701.87431,209.89048 v 7.46812 h 0.62169 c 0.90146,0 1.54388,-0.28235 1.92726,-0.84706 0.38337,-0.56989 0.57506,-1.5361 0.57507,-2.89866 -10e-6,-1.35218 -0.1917,-2.31063 -0.57507,-2.87534 -0.38338,-0.5647 -1.0258,-0.84705 -1.92726,-0.84706 h -0.62169 m -2.29251,-2.06714 h 2.4557 c 1.89617,1e-5 3.26131,0.45333 4.09542,1.35996 0.8341,0.90147 1.25116,2.37799 1.25117,4.42958 -10e-6,2.05678 -0.41707,3.54108 -1.25117,4.4529 -0.83411,0.90664 -2.19925,1.35996 -4.09542,1.35996 h -2.4557 v -11.6024" />
</g>
<g
id="text10478-7-6"
- style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans Mono"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
transform="scale(0.9460798,1.0569933)">
<path
inkscape:connector-curvature="0"
id="path62824"
- d="m 698.82892,219.42574 -7.22722,0 0,-11.6024 7.22722,0 0,2.02051 -4.93471,0 0,2.50233 4.46843,0 0,2.02051 -4.46843,0 0,3.03853 4.93471,0 0,2.02052" />
+ d="m 698.82892,219.42574 h -7.22722 v -11.6024 h 7.22722 v 2.02051 h -4.93471 v 2.50233 h 4.46843 v 2.02051 h -4.46843 v 3.03853 h 4.93471 v 2.02052" />
</g>
<g
id="text10486-2-4"
- style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans Mono"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
transform="scale(0.9460798,1.0569933)">
<path
inkscape:connector-curvature="0"
id="path62830"
- d="m 710.72295,214.3356 c -1.15532,-0.44036 -1.93762,-0.90145 -2.3469,-1.38327 -0.40928,-0.48699 -0.61392,-1.13977 -0.61392,-1.95834 0,-1.05169 0.33675,-1.87803 1.01025,-2.47901 0.6735,-0.60096 1.59828,-0.90145 2.77432,-0.90146 0.53362,1e-5 1.06724,0.0622 1.60087,0.18651 0.53361,0.11917 1.06205,0.2979 1.58532,0.53621 l 0,2.2381 c -0.49218,-0.3471 -0.99213,-0.61132 -1.49984,-0.79266 -0.50772,-0.18132 -1.01026,-0.27198 -1.50761,-0.27199 -0.55435,1e-5 -0.97918,0.1114 -1.27448,0.33416 -0.29531,0.22278 -0.44296,0.5414 -0.44296,0.95586 0,0.32122 0.10621,0.58803 0.31862,0.80043 0.21759,0.20724 0.66832,0.43779 1.35219,0.69164 l 0.98694,0.37302 c 0.93254,0.34193 1.61899,0.79525 2.05937,1.35995 0.44036,0.56472 0.66054,1.27708 0.66055,2.13708 -10e-6,1.17087 -0.34712,2.04642 -1.04134,2.62667 -0.68905,0.57507 -1.73298,0.8626 -3.13179,0.8626 -0.57507,0 -1.15273,-0.0699 -1.73298,-0.20982 -0.57507,-0.1347 -1.132,-0.33675 -1.67081,-0.60616 l 0,-2.37021 c 0.61134,0.43519 1.20195,0.75899 1.77184,0.9714 0.57506,0.21241 1.14236,0.31862 1.70189,0.31862 0.5647,0 1.00248,-0.12693 1.31333,-0.38079 0.31084,-0.25904 0.46627,-0.6191 0.46627,-1.0802 0,-0.34711 -0.10362,-0.65018 -0.31084,-0.90923 -0.20724,-0.26421 -0.50773,-0.47144 -0.90146,-0.62169 l -1.12683,-0.42742" />
+ d="m 710.72295,214.3356 c -1.15532,-0.44036 -1.93762,-0.90145 -2.3469,-1.38327 -0.40928,-0.48699 -0.61392,-1.13977 -0.61392,-1.95834 0,-1.05169 0.33675,-1.87803 1.01025,-2.47901 0.6735,-0.60096 1.59828,-0.90145 2.77432,-0.90146 0.53362,1e-5 1.06724,0.0622 1.60087,0.18651 0.53361,0.11917 1.06205,0.2979 1.58532,0.53621 v 2.2381 c -0.49218,-0.3471 -0.99213,-0.61132 -1.49984,-0.79266 -0.50772,-0.18132 -1.01026,-0.27198 -1.50761,-0.27199 -0.55435,1e-5 -0.97918,0.1114 -1.27448,0.33416 -0.29531,0.22278 -0.44296,0.5414 -0.44296,0.95586 0,0.32122 0.10621,0.58803 0.31862,0.80043 0.21759,0.20724 0.66832,0.43779 1.35219,0.69164 l 0.98694,0.37302 c 0.93254,0.34193 1.61899,0.79525 2.05937,1.35995 0.44036,0.56472 0.66054,1.27708 0.66055,2.13708 -10e-6,1.17087 -0.34712,2.04642 -1.04134,2.62667 -0.68905,0.57507 -1.73298,0.8626 -3.13179,0.8626 -0.57507,0 -1.15273,-0.0699 -1.73298,-0.20982 -0.57507,-0.1347 -1.132,-0.33675 -1.67081,-0.60616 v -2.37021 c 0.61134,0.43519 1.20195,0.75899 1.77184,0.9714 0.57506,0.21241 1.14236,0.31862 1.70189,0.31862 0.5647,0 1.00248,-0.12693 1.31333,-0.38079 0.31084,-0.25904 0.46627,-0.6191 0.46627,-1.0802 0,-0.34711 -0.10362,-0.65018 -0.31084,-0.90923 -0.20724,-0.26421 -0.50773,-0.47144 -0.90146,-0.62169 l -1.12683,-0.42742" />
</g>
<path
inkscape:connector-curvature="0"
id="text10478-7"
- d="m 673.1875,219.4375 c -1.11263,1e-5 -1.98781,0.33354 -2.625,0.96875 -0.63719,0.63523 -0.96875,1.51337 -0.96875,2.625 0,0.86523 0.20653,1.54776 0.59375,2.0625 0.0504,0.0663 0.12517,0.12174 0.1875,0.1875 1.15377,-0.13682 2.29363,-0.30772 3.40625,-0.6875 l -0.46875,-0.1875 c -0.647,-0.26832 -1.07539,-0.53095 -1.28125,-0.75 -0.20096,-0.22451 -0.3125,-0.50423 -0.3125,-0.84375 0,-0.43808 0.15811,-0.76452 0.4375,-1 0.27938,-0.23546 0.66304,-0.37499 1.1875,-0.375 0.47053,1e-5 0.95715,0.12085 1.4375,0.3125 0.48034,0.19167 0.94061,0.44561 1.40625,0.8125 l 0,-2.34375 c -0.49505,-0.25189 -0.99516,-0.43654 -1.5,-0.5625 -0.50485,-0.13141 -0.99516,-0.21874 -1.5,-0.21875 z m -18.875,0.21875 0,3.40625 c 0.72471,0.36031 1.42932,0.69241 2.15625,0.96875 l 0,-2.21875 4.6875,0 0,-2.15625 -6.84375,0 z m 7.5625,0 0,5.75 c 0.71635,0.10104 1.43195,0.17048 2.15625,0.21875 l 0,-3.78125 0.59375,0 c 0.85285,1e-5 1.44979,0.30937 1.8125,0.90625 0.34855,0.57361 0.54756,1.53331 0.5625,2.875 0.74095,-0.0726 1.48307,-0.15174 2.21875,-0.21875 -0.0467,-1.962 -0.41653,-3.41931 -1.15625,-4.3125 -0.78914,-0.9583 -2.08108,-1.43749 -3.875,-1.4375 l -2.3125,0 z m -4.21875,4.78125 c 1.01035,0.32447 2.0418,0.56004 3.0625,0.75 l 0,-0.75 -3.0625,0 z"
- style="font-size:15.91540909px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.31627909;color:#000000;fill:url(#linearGradient62885);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.04116011;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans Mono" />
+ d="m 673.1875,219.4375 c -1.11263,1e-5 -1.98781,0.33354 -2.625,0.96875 -0.63719,0.63523 -0.96875,1.51337 -0.96875,2.625 0,0.86523 0.20653,1.54776 0.59375,2.0625 0.0504,0.0663 0.12517,0.12174 0.1875,0.1875 1.15377,-0.13682 2.29363,-0.30772 3.40625,-0.6875 l -0.46875,-0.1875 c -0.647,-0.26832 -1.07539,-0.53095 -1.28125,-0.75 -0.20096,-0.22451 -0.3125,-0.50423 -0.3125,-0.84375 0,-0.43808 0.15811,-0.76452 0.4375,-1 0.27938,-0.23546 0.66304,-0.37499 1.1875,-0.375 0.47053,1e-5 0.95715,0.12085 1.4375,0.3125 0.48034,0.19167 0.94061,0.44561 1.40625,0.8125 v -2.34375 c -0.49505,-0.25189 -0.99516,-0.43654 -1.5,-0.5625 -0.50485,-0.13141 -0.99516,-0.21874 -1.5,-0.21875 z m -18.875,0.21875 v 3.40625 c 0.72471,0.36031 1.42932,0.69241 2.15625,0.96875 v -2.21875 h 4.6875 v -2.15625 z m 7.5625,0 v 5.75 c 0.71635,0.10104 1.43195,0.17048 2.15625,0.21875 v -3.78125 h 0.59375 c 0.85285,1e-5 1.44979,0.30937 1.8125,0.90625 0.34855,0.57361 0.54756,1.53331 0.5625,2.875 0.74095,-0.0726 1.48307,-0.15174 2.21875,-0.21875 -0.0467,-1.962 -0.41653,-3.41931 -1.15625,-4.3125 -0.78914,-0.9583 -2.08108,-1.43749 -3.875,-1.4375 z m -4.21875,4.78125 c 1.01035,0.32447 2.0418,0.56004 3.0625,0.75 v -0.75 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15.91540909px;line-height:125%;font-family:'Bitstream Vera Sans Mono';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;overflow:visible;visibility:visible;opacity:0.31627909;fill:url(#linearGradient62885);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.04116011;marker:none;enable-background:accumulate" />
</g>
<g
style="display:inline"
@@ -92370,12 +93128,12 @@
<path
inkscape:connector-curvature="0"
id="path1432"
- style="fill:url(#linearGradient62692);stroke:url(#linearGradient62694);stroke-linecap:round;stroke-linejoin:round;display:block"
- d="m 17.5,7.4997 6,5.3693 -6,5.631 V 15.4994 H 7.5004 v -4.999 H 17.5 V 7.4998 z" />
+ style="display:block;fill:url(#linearGradient62692);stroke:url(#linearGradient62694);stroke-linecap:round;stroke-linejoin:round"
+ d="m 17.5,7.4997 6,5.3693 -6,5.631 V 15.4994 H 7.5004 v -4.999 H 17.5 V 7.4998 Z" />
<path
inkscape:connector-curvature="0"
id="path3777"
- style="opacity:0.4;fill:none;stroke:url(#linearGradient62696);display:block"
+ style="display:block;opacity:0.4;fill:none;stroke:url(#linearGradient62696)"
d="M 18.531,8.7812 V 10 A 0.51754,0.51754 0 0 1 18,10.531 H 9.4375 l 0.03125,2.9375 h 8.5312 a 0.51754,0.51754 0 0 1 0.531,0.532 v 1.1562 l 3.469,-3.281 -3.469,-3.0938 z"
transform="translate(0,0.99987)" />
</g>
@@ -93020,28 +93778,28 @@
inkscape:radius="1"
inkscape:original="M 108 192.36133 L 108 214.36133 L 110 214.36133 L 110 203.36133 L 111 203.36133 L 111 213.36133 L 113 213.36133 L 113 201.36133 L 114 201.36133 L 114 214.36133 L 117 214.36133 L 117 202.36133 L 118 202.36133 L 118 215.36133 L 120 215.36133 L 120 201.36133 L 121 201.36133 L 121 212.36133 L 123 212.36133 L 123 202.36133 L 124 202.36133 L 124 214.36133 L 125 214.36133 L 125 197.36133 L 120 192.36133 L 108 192.36133 z "
xlink:href="#path18406"
- style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate"
id="path18446"
inkscape:href="#path18406"
- d="m 127.90625,191.375 a 1.0001,1.0001 0 0 0 -0.90625,1 l 0,22 a 1.0001,1.0001 0 0 0 1,1 l 2,0 a 1.0001,1.0001 0 0 0 1,-1 l 2,0 a 1.0001,1.0001 0 0 0 1,1 l 1,0 a 1.0001,1.0001 0 0 0 1,-1 l 0,-5 1,0 0,5 a 1.0001,1.0001 0 0 0 1,1 l 2,0 a 1.0001,1.0001 0 0 0 0.46875,-0.125 1.0001,1.0001 0 0 0 0.0312,0 1.0001,1.0001 0 0 0 0.5,0.125 l 2,0 a 1.0001,1.0001 0 0 0 0.46875,-0.125 1.0001,1.0001 0 0 0 0.0312,0 1.0001,1.0001 0 0 0 0.5,0.125 l 1,0 a 1.0001,1.0001 0 0 0 1,-1 l 0,-17 a 1.0001,1.0001 0 0 0 -0.28125,-0.71875 l -5,-5 A 1.0001,1.0001 0 0 0 140,191.375 l -12,0 a 1.0001,1.0001 0 0 0 -0.0937,0 z" />
+ d="m 108,191.36133 a 1.0001,1.0001 0 0 0 -1,1 v 22 a 1.0001,1.0001 0 0 0 1,1 h 2 a 1.0001,1.0001 0 0 0 1,-1 h 2 a 1.0001,1.0001 0 0 0 1,1 h 3 a 1.0001,1.0001 0 0 0 1,1 h 2 a 1.0001,1.0001 0 0 0 1,-1 v -2 h 2 v 1 a 1.0001,1.0001 0 0 0 1,1 h 1 a 1.0001,1.0001 0 0 0 1,-1 v -17 a 1.0001,1.0001 0 0 0 -0.29297,-0.70703 l -5,-5 A 1.0001,1.0001 0 0 0 120,191.36133 Z" />
<path
sodipodi:nodetypes="cccccccccccccccccccccccccc"
inkscape:connector-curvature="0"
id="path18406"
- d="m 108,192.36218 0,22 2,0 0,-11 1,0 0,10 2,0 0,-12 1,0 0,13 3,0 0,-12 1,0 0,13 2,0 0,-14 1,0 0,11 2,0 0,-10 1,0 0,12 1,0 0,-17 -5,-5 z"
- style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ d="m 108,192.36218 v 22 h 2 v -11 h 1 v 10 h 2 v -12 h 1 v 13 h 3 v -12 h 1 v 13 h 2 v -14 h 1 v 11 h 2 v -10 h 1 v 12 h 1 v -17 l -5,-5 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate" />
<g
id="g18450"
clip-path="url(#clipPath18454)">
<path
inkscape:connector-curvature="0"
id="path18408"
- style="color:#000000;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 118.43116,207.75778 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -11,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m 9,-9 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m -5,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -7,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1" />
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate"
+ d="m 118.43116,207.75778 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -11,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m 9,-9 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m -5,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -7,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1" />
<path
inkscape:connector-curvature="0"
- d="m 118,207.36218 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -11,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m 9,-9 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m -5,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1 m -7,-1 0,1 1,0 0,-1 -1,0 z m 1,1 0,4 1,0 0,-4 -1,0 z m 0,4 -1,0 0,1 1,0 0,-1 z m -1,0 0,-4 -1,0 0,4 1,0 z m 3,-4 1,0 0,-1 1,0 0,5 1,0 0,1 -3,0 0,-1 1,0 0,-3 -1,0 0,-1"
- style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 118,207.36218 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -11,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m 9,-9 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m -5,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1 m -7,-1 v 1 h 1 v -1 z m 1,1 v 4 h 1 v -4 z m 0,4 h -1 v 1 h 1 z m -1,0 v -4 h -1 v 4 z m 3,-4 h 1 v -1 h 1 v 5 h 1 v 1 h -3 v -1 h 1 v -3 h -1 v -1"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate"
id="path18412" />
</g>
</g>
@@ -93367,9 +94125,9 @@
transform="matrix(0.27063582,0.04354624,-0.04354624,0.27063582,790.21268,127.46614)">
<path
id="path1683"
- style="fill:url(#linearGradient10435);stroke:#606060;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;fill-opacity:1.0"
+ style="fill:url(#linearGradient10435);fill-opacity:1;stroke:#606060;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0"
- d="m 64.661,6.0611 c -4.831,1.9764 -8.619,6.2529 -9.679,11.757 -0.673,3.493 -0.092,6.917 1.339,9.901 -3.895,8.12 -19.113,29.069 -26.331,36.587 -6.581,0.93 -12.171,5.856 -13.497,12.74 -1.006,5.227 0.712,10.321 4.096,13.932 l 2.098,-10.894 c 0.523,-2.72 3.135,-4.488 5.855,-3.964 l 7.917,1.525 c 2.72,0.523 4.488,3.135 3.964,5.855 l -2.186,11.354 c 4.83,-1.977 8.619,-6.253 9.679,-11.757 0.842,-4.372 -0.202,-8.667 -2.544,-12.074 5.389,-9.026 18.947,-28.336 26.036,-34.225 7.218,-0.328 13.571,-5.527 14.996,-12.929 1.007,-5.228 -0.711,-10.321 -4.095,-13.932 l -2.098,10.894 c -0.524,2.72 -3.135,4.488 -5.855,3.964 l -7.917,-1.525 c -2.721,-0.524 -4.489,-3.135 -3.965,-5.855 l 2.187,-11.354 z" />
+ d="m 64.661,6.0611 c -4.831,1.9764 -8.619,6.2529 -9.679,11.757 -0.673,3.493 -0.092,6.917 1.339,9.901 -3.895,8.12 -19.113,29.069 -26.331,36.587 -6.581,0.93 -12.171,5.856 -13.497,12.74 -1.006,5.227 0.712,10.321 4.096,13.932 l 2.098,-10.894 c 0.523,-2.72 3.135,-4.488 5.855,-3.964 l 7.917,1.525 c 2.72,0.523 4.488,3.135 3.964,5.855 l -2.186,11.354 c 4.83,-1.977 8.619,-6.253 9.679,-11.757 0.842,-4.372 -0.202,-8.667 -2.544,-12.074 5.389,-9.026 18.947,-28.336 26.036,-34.225 7.218,-0.328 13.571,-5.527 14.996,-12.929 1.007,-5.228 -0.711,-10.321 -4.095,-13.932 l -2.098,10.894 c -0.524,2.72 -3.135,4.488 -5.855,3.964 l -7.917,-1.525 c -2.721,-0.524 -4.489,-3.135 -3.965,-5.855 z" />
</g>
<rect
inkscape:label="#rect16270"
@@ -93379,4 +94137,1107 @@
x="790"
height="24"
width="24" />
+ <rect
+ inkscape:label="EditSVG"
+ width="24"
+ height="24"
+ x="903.99988"
+ y="191.36221"
+ id="EditSVG"
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+ id="OpenPOT"
+ y="191.36221"
+ x="963.99988"
+ height="24"
+ width="24"
+ inkscape:label="OpenPOT" />
+ <rect
+ inkscape:label="EditPO"
+ width="24"
+ height="24"
+ x="1023.9999"
+ y="191.36221"
+ id="EditPO"
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" />
+ <g
+ style="display:inline;stroke-width:5.72590113;enable-background:new"
+ transform="matrix(0.17404745,0,0,0.173993,904.7137,192.20214)"
+ id="g9139">
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccccccc"
+ style="fill:#000000;fill-opacity:1;stroke-width:5.72590113"
+ d="M 54.1,12.5 12.9,54.7 C -2.7,70.3 23,69 32.3,74.9 36.6,77.7 18.5,81.3 22.2,85 c 3.6,3.7 21.7,7.1 25.3,10.7 3.6,3.7 -7.3,7.6 -3.7,11.3 3.5,3.7 11.9,0.2 13.4,8.6 1.1,6.2 15.4,3.1 21.8,-2.2 4,-3.4 -6.9,-3.4 -3.3,-7.1 9,-9.1 17,-4.1 20.3,-12.5 1.8,-4.5 -13.6,-7.7 -9.5,-10.6 9.8,-6.9 45.8,-10.4 29.2,-27 L 73,12.5 c -5.3,-5 -14,-5 -18.9,0 z m 47.3,81.3 c 0,2.1 16.3,3.3 15.4,-0.5 -1.3,-6.4 -13.6,-5.9 -15.4,0.5 z m -69.5,11.1 c 3.7,3.2 9.3,-0.7 11.1,-5.2 -3.6,-4.7 -16.9,0.3 -11.1,5.2 z m 67.5,-6.7 c -4.6,4.2 0.8,8.6 5.3,5.7 1.2,-0.8 -0.1,-4.7 -5.3,-5.7 z"
+ id="use7631" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccccccc"
+ style="fill:none;stroke-width:5.72590113"
+ d="M 54.1,12.5 12.9,54.7 C -2.7,70.3 23,69 32.3,74.9 36.6,77.7 18.5,81.3 22.2,85 c 3.6,3.7 21.7,7.1 25.3,10.7 3.6,3.7 -7.3,7.6 -3.7,11.3 3.5,3.7 11.9,0.2 13.4,8.6 1.1,6.2 15.4,3.1 21.8,-2.2 4,-3.4 -6.9,-3.4 -3.3,-7.1 9,-9.1 17,-4.1 20.3,-12.5 1.8,-4.5 -13.6,-7.7 -9.5,-10.6 9.8,-6.9 45.8,-10.4 29.2,-27 L 73,12.5 c -5.3,-5 -14,-5 -18.9,0 z m 47.3,81.3 c 0,2.1 16.3,3.3 15.4,-0.5 -1.3,-6.4 -13.6,-5.9 -15.4,0.5 z m -69.5,11.1 c 3.7,3.2 9.3,-0.7 11.1,-5.2 -3.6,-4.7 -16.9,0.3 -11.1,5.2 z m 67.5,-6.7 c -4.6,4.2 0.8,8.6 5.3,5.7 1.2,-0.8 -0.1,-4.7 -5.3,-5.7 z"
+ id="use7639" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path7643"
+ d="m 16.56522,57.03937 c -11.201945,11.10103 8.47714,7.97256 23.6149,13.92674 l 31.2847,-55.00052 c -4.74316,-4.84409 -10.79826,-4.44041 -15.13776,0 z"
+ style="opacity:0.50526309;fill:url(#shinySpecular-4);stroke:none;stroke-width:5.72590113"
+ class="specularity" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 70.5,15.5 16.3,16.6 c 1.5,1.5 1.5,4.6 0.6,5.5 L 79.3,31 77.7,40.7 71,37.1 60.1,44 56.5,29.5 50.7,42.1 36.2,42 c -2.8,0 -2.4,-2.9 0.5,-5.8 5.7,-6.3 16.8,-17 20.3,-20.7 3.6,-3.7 9.9,-3.6 13.5,0 z"
+ style="opacity:1;fill:#ffffff;stroke-width:5.72590113"
+ class="full-specularity"
+ id="icecap-7" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.21674882;fill:url(#radialGradient9177);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113"
+ d="m 113,203.5 c 0,0 3.3405,5.1007 3,7.5 -0.6682,4.7087 -10.8094,7.0584 -8.5625,11.25 2.2199,4.1411 10.2214,1.794 16.9375,6.125 6.6875,4.3125 4.8895,13.1015 9.75,15.3125 9.4792,4.312 34.375,-7.4375 33.125,-7.1875 -1.25,0.25 -24.5701,5.0954 -29.8201,0.8454 -5.986,-4.8457 -7.7022,-8.2302 -12.1174,-11.0954 -4.1375,-2.685 -9.9497,-3.7804 -11.3025,-5.9787 -1.3528,-2.1982 2.7092,-5.0346 2.99,-9.2713 0.1686,-2.5444 -4,-7.5 -4,-7.5 z"
+ id="path8566"
+ transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)"
+ sodipodi:nodetypes="csszsszszsc" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csszscssc"
+ transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)"
+ id="path8718"
+ d="m 113,203.5 c 0,0 3.3405,5.1007 3,7.5 -0.6682,4.7087 -10.8094,7.0584 -8.5625,11.25 2.2199,4.1411 10.2214,1.794 16.9375,6.125 6.6875,4.3125 4.8895,13.1015 9.75,15.3125 9.4792,4.312 34.375,-7.4375 33.125,-7.1875 -41.3396,0.1574 -33.6249,-10.4946 -49.5625,-17.5 -2.303,-1.0123 -0.9683,-3.7633 -0.6875,-8 0.1686,-2.5444 -4,-7.5 -4,-7.5 z"
+ style="opacity:0.27586209;fill:url(#radialGradient8574);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8732)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.45320201;fill:url(#radialGradient8744);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113"
+ d="M 183.25,181.75 C 220.3537,168.0954 232.2736,166.2194 244.5,154 230.3393,165.9537 200.4015,172.3658 176,183 Z"
+ id="path8736"
+ transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-14.79104)"
+ id="path8746"
+ d="m 183.25,181.75 c 61.1037,-21.6546 50.7736,-21.5306 61.25,-27.75 -19.4277,7.4367 -55.7345,8.2298 -68.5,29 z"
+ style="opacity:0.51231528;fill:url(#radialGradient8768);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8764)" />
+ <ellipse
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.2857143;fill:url(#linearGradient8912);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate"
+ id="path8864"
+ transform="matrix(0.5296484,0,0,0.5296484,-12.38432,-14.79104)"
+ cx="229.9375"
+ cy="199.0625"
+ rx="7.9375"
+ ry="2.4375" />
+ <ellipse
+ transform="matrix(0.7131486,0,0,1.140781,-54.5779,-134.955)"
+ id="path8874"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.62068936;fill:url(#linearGradient8910);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;filter:url(#filter8906);enable-background:accumulate"
+ cx="229.9375"
+ cy="199.0625"
+ rx="7.9375"
+ ry="2.4375" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient8922);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8980)"
+ d="m 214.125,203.75 c 3.7695,3.4842 24.7558,5.2722 28.1875,-1 -6.7366,4.7839 -21.7168,3.1026 -28.1875,1 z"
+ id="path8914"
+ transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-14.23868)"
+ sodipodi:nodetypes="ccc" />
+ <ellipse
+ transform="matrix(0.2042516,-0.1035605,0.2395168,0.4723972,5.754795,30.28656)"
+ id="path8984"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.2857143;fill:url(#linearGradient8990);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate"
+ cx="229.9375"
+ cy="199.0625"
+ rx="6.5084429"
+ ry="3.082082" />
+ <ellipse
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.62068936;fill:url(#linearGradient8992-5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;filter:url(#filter8906);enable-background:accumulate"
+ id="path8986"
+ transform="matrix(0.2750159,-0.1394397,0.5158824,1.017471,-65.3535,-69.30064)"
+ cx="229.9375"
+ cy="199.0625"
+ rx="7.055552"
+ ry="2.140048" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc"
+ transform="matrix(0.2042516,-0.1035605,0.2395168,0.4723972,6.259901,30.64976)"
+ id="path8988"
+ d="m 217.0575,201.9403 c 3.7695,3.4842 26.9713,8.9112 25.255,0.8097 -3.3174,5.3233 -18.7842,1.2929 -25.255,-0.8097 z"
+ style="fill:url(#radialGradient8994);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter8980)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient9004);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113"
+ d="m 68.25,186 c 0,-0.6206 38.8462,11.8385 45.5,18.5 -5.4712,-5.3385 -33.15971,-17.6161 -37.375,-17.75 -4.21529,-0.1339 -7.625,-0.5 -8.125,-0.75 z"
+ id="path8996"
+ transform="matrix(0.5296484,0,0,0.5296484,-11.72226,-13.86416)"
+ sodipodi:nodetypes="cczc" />
+ <g
+ id="g9018"
+ transform="matrix(0.8790148,-0.1929959,0.2338341,0.6959295,-20.20953,36.72556)"
+ style="stroke-width:5.72590113">
+ <ellipse
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.2857143;fill:url(#linearGradient9023);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate"
+ id="path9006"
+ transform="matrix(0.5296484,0,0,0.5296484,-84.4165,-4.727724)"
+ cx="229.9375"
+ cy="199.0625"
+ rx="7.9375"
+ ry="2.4375" />
+ <ellipse
+ transform="matrix(0.7131486,0,0,1.140781,-126.6101,-124.8917)"
+ id="path9008"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.62068936;fill:url(#linearGradient9025);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;filter:url(#filter8906);enable-background:accumulate"
+ cx="229.9375"
+ cy="199.0625"
+ rx="7.9375"
+ ry="2.4375" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:0.61576347;fill:url(#radialGradient9046);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter9068)"
+ d="m 80.5,220.0625 c 0,0 2.10339,5.6508 7.875,5.9375 5.83887,0.2901 12.5032,-7.007 13.0625,-9.625 -1,2.25 -6.59033,9.0333 -13.8125,8.9375 -4.09986,-0.054 -7.125,-5.25 -7.125,-5.25 z"
+ id="path9038"
+ transform="matrix(0.5296484,0,0,0.5296484,-11.62295,-14.42691)"
+ sodipodi:nodetypes="czczc" />
+ <path
+ inkscape:label="top_inner_highlight"
+ d="m 63.400391,10.207031 c -3.097253,0 -6.109664,1.119729 -8.257813,3.310547 L 13.943359,55.716797 a 1.4566767,1.4566767 0 0 1 -0.01367,0.01172 c -3.76575,3.765749 -4.6833689,6.246568 -4.4511724,7.638672 0.1160983,0.696051 0.4806181,1.290406 1.2089844,1.923828 0.728366,0.633421 1.814295,1.24767 3.138672,1.802734 2.648753,1.110128 6.210573,1.990179 9.710937,2.949219 3.500365,0.95904 6.941314,1.97644 9.542969,3.626953 a 1.4566767,1.4566767 0 0 1 0.01563,0.0098 c 0.396545,0.258215 0.759265,0.573102 1.021485,1.027343 0.262219,0.454242 0.363058,1.063946 0.259765,1.570313 -0.206586,1.012733 -0.840862,1.534685 -1.476562,2.019531 -1.2714,0.969692 -3.033992,1.772502 -4.789063,2.625 -1.755071,0.852498 -3.491971,1.748572 -4.371094,2.462891 -0.439561,0.357159 -0.599989,0.660243 -0.59375,0.638672 0.0062,-0.02157 -0.128773,-0.26354 0.08203,-0.05273 a 1.4566767,1.4566767 0 0 1 0.01367,0.01367 c 0.552307,0.567649 2.265324,1.519499 4.458984,2.388672 2.19366,0.869173 4.886021,1.748066 7.597656,2.628906 2.711635,0.88084 5.443057,1.762523 7.765625,2.669922 2.322568,0.907399 4.214347,1.74755 5.464844,2.998047 a 1.4566767,1.4566767 0 0 1 0.01367,0.01367 c 0.622684,0.639981 1.037708,1.431817 1.130859,2.246094 0.09315,0.814276 -0.118131,1.57267 -0.429687,2.21289 -0.623114,1.280442 -1.630567,2.266702 -2.542969,3.216802 -0.912402,0.95009 -1.729901,1.86349 -2.025391,2.4707 -0.147745,0.3036 -0.168219,0.48572 -0.154297,0.60742 0.01392,0.1217 0.04495,0.26186 0.322266,0.54688 A 1.4566767,1.4566767 0 0 1 44.859375,106 c 1.192742,1.2609 3.785509,1.43202 6.722656,2.11914 1.468574,0.34356 3.020143,0.87346 4.335938,2.01172 1.315794,1.13825 2.295418,2.86411 2.714843,5.21289 a 1.4566767,1.4566767 0 0 1 0,0.002 c 0.176524,0.99495 0.706144,1.48573 1.970704,1.88086 1.264559,0.39514 3.180187,0.45519 5.296875,0.14453 4.231067,-0.62097 9.266349,-2.69051 12.164062,-5.08789 0.164413,-0.1422 0.12384,-0.11325 0.179688,-0.18554 -0.19616,-0.14054 -0.645286,-0.45652 -1.396485,-0.83204 -0.890045,-0.44492 -1.928918,-0.85252 -2.732422,-1.86914 -0.401751,-0.5083 -0.701915,-1.30018 -0.583984,-2.08398 0.117931,-0.7838 0.546903,-1.43319 1.125,-2.02734 a 1.4566767,1.4566767 0 0 1 0.0078,-0.008 c 4.745529,-4.79825 9.436641,-5.965637 12.949219,-6.896481 1.756289,-0.465422 3.197168,-0.893298 4.310547,-1.595703 1.113379,-0.702405 1.986926,-1.649783 2.720703,-3.517578 a 1.4566767,1.4566767 0 0 1 0.0039,-0.0078 c 0.08095,-0.202377 0.07823,-0.240359 -0.03125,-0.478516 -0.10948,-0.238157 -0.40273,-0.618935 -0.873047,-1.027344 -0.940635,-0.816817 -2.51049,-1.719733 -4.0625,-2.580078 -1.552011,-0.860345 -3.067708,-1.643234 -4.164063,-2.660156 -0.548177,-0.508461 -1.100392,-1.139497 -1.166016,-2.113281 -0.06562,-0.973784 0.567086,-1.867526 1.306641,-2.390625 a 1.4566767,1.4566767 0 0 1 0.0039,-0.002 c 2.74583,-1.933288 6.881493,-3.416621 11.392579,-4.980468 4.511082,-1.563848 9.375252,-3.1606 13.328122,-5.009766 3.95288,-1.849166 6.87202,-3.996138 7.79688,-6.142578 0.46243,-1.07322 0.54046,-2.154833 0.0566,-3.558594 -0.48382,-1.403761 -1.59352,-3.115002 -3.56641,-5.08789 a 1.4566767,1.4566767 0 0 1 -0.0117,-0.01172 L 72,13.558594 l -0.002,-0.002 c -2.360461,-2.225808 -5.500354,-3.34961 -8.597656,-3.34961 z m 45.939449,79.998047 c -2.64033,0.09532 -5.06585,1.304857 -6.09961,3.189453 0.29289,0.10957 0.55221,0.22058 1.01954,0.328125 1.37503,0.316434 3.31963,0.542222 5.21093,0.583985 1.89131,0.04176 3.76134,-0.113616 4.91407,-0.433594 0.51958,-0.14423 0.8073,-0.316107 0.93164,-0.40625 -0.25999,-1.079658 -0.8934,-1.846192 -1.92188,-2.414063 -1.07322,-0.59257 -2.54715,-0.90208 -4.05469,-0.847656 z m -70.509762,9.087891 c -2.090061,-0.145362 -4.72053,0.673313 -6.003906,1.705081 -0.641688,0.51588 -0.887896,0.99276 -0.91211,1.31054 -0.02421,0.31779 0.06549,0.75172 0.925782,1.47852 a 1.4566767,1.4566767 0 0 1 0.01367,0.0117 c 1.35352,1.17061 2.867771,1.05974 4.611328,0.10937 1.464512,-0.79827 2.765689,-2.29912 3.632812,-3.875 -0.588706,-0.381638 -1.308952,-0.67356 -2.267578,-0.740231 z m 61.033203,0.611328 c -0.461503,0.578513 -0.728387,1.098963 -0.755859,1.472653 -0.03738,0.5085 0.134422,0.90445 0.529297,1.27735 0.739641,0.69848 2.327091,0.98567 3.957031,0.10937 -0.0359,-0.18943 -0.0984,-0.45737 -0.34375,-0.81445 -0.50163,-0.73008 -1.65445,-1.53832 -3.386719,-2.044923 z"
+ inkscape:href="#use7639"
+ id="87235"
+ style="fill:none;stroke:url(#radialGradient11553);stroke-width:5.74646091;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter9298)"
+ xlink:href="#use7639"
+ inkscape:original="M 63.400391 8.75 C 59.950391 8.75 56.549609 10 54.099609 12.5 L 12.900391 54.699219 C -2.6996094 70.299219 23.000781 69.000391 32.300781 74.900391 C 36.600781 77.700391 18.499219 81.3 22.199219 85 C 25.799219 88.7 43.9 92.099219 47.5 95.699219 C 51.1 99.399219 40.200781 103.3 43.800781 107 C 47.300781 110.7 55.699219 107.19961 57.199219 115.59961 C 58.299219 121.79961 72.6 118.70039 79 113.40039 C 83 110.00039 72.099219 110.00078 75.699219 106.30078 C 84.699219 97.200781 92.7 102.20078 96 93.800781 C 97.8 89.300781 82.4 86.099219 86.5 83.199219 C 96.3 76.299219 132.29922 72.799219 115.69922 56.199219 L 73 12.5 C 70.35 10 66.850391 8.75 63.400391 8.75 z M 109.28711 88.75 C 105.82461 88.875 102.30039 90.600781 101.40039 93.800781 C 101.40039 95.900781 117.70078 97.100781 116.80078 93.300781 C 116.15078 90.100781 112.74961 88.625 109.28711 88.75 z M 38.931641 97.839844 C 33.944141 97.492969 27.550391 101.22539 31.900391 104.90039 C 35.600391 108.10039 41.2 104.19922 43 99.699219 C 42.1 98.524219 40.594141 97.955469 38.931641 97.839844 z M 99.400391 98.199219 C 94.800391 102.39922 100.19922 106.80039 104.69922 103.90039 C 105.89922 103.10039 104.60039 99.199219 99.400391 98.199219 z "
+ inkscape:radius="-1.456531"
+ sodipodi:type="inkscape:offset" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssssscs"
+ transform="matrix(0.4883067,0,0,0.4883067,-5.810401,-7.704252)"
+ id="path5897"
+ d="m 95.5,172 c -5.09061,1.5019 -21.59202,7.7371 -19.25,12.5 2.2436,4.5627 40.6114,6.4013 46.5,20 2.5679,5.9301 -5.8924,10.4033 -3.75,16.5 1.6497,4.6948 14.412,16.4908 22.486,22.0678 6.333,4.3744 14.651,-3.5224 11.264,-10.0678 -5.3959,-10.4276 18.4427,-23.1991 29.25,-29 6.3052,-3.3844 -13,-20 -13,-20 0,0 -73.5,-12 -73.5,-12 z"
+ style="opacity:0.32512309;fill:url(#linearGradient5905);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter5983-5)" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssssssss"
+ id="path5783"
+ d="m 41.74217,78.53304 c 2.23193,1.63922 6.63675,0.65053 9.28212,1.84176 6.34952,2.85921 14.15494,6.04542 12.71857,0.40455 0,0 -1.61577,1.34204 -1.61577,1.34204 0,0 -0.0315,-2.55754 -0.0315,-2.55754 0,0 -3.75198,0.91629 -3.75198,0.91629 0,0 -2.90617,-2.33276 -4.23852,-3.10199 -0.27829,-0.16067 -1.7077,1.29281 -1.7077,1.29281 0,0 -0.25697,-1.5438 -0.25697,-1.5438 -1.85737,-0.19764 -3.69616,-0.28481 -5.31515,-0.27182 -3.88094,0.0311 -6.49906,0.63774 -5.08307,1.6777 z"
+ style="fill:url(#linearGradient5801);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssssc"
+ transform="matrix(0.4883067,0,0,0.4883067,-5.810401,-7.704252)"
+ id="path5803"
+ d="m 182.75,187.25 c -1.7598,6.4783 21.6278,15.2799 19.875,19.75 -3.859,9.8416 -24.976,3.1375 -41.125,23.75 -2.3132,2.9525 3.25,13.5 2.5,12.25 -0.75,-1.25 -6.4649,-9.9629 -5,-14.25 4.5942,-13.4452 49.0128,-18.4575 40.875,-24.875 -4.6799,-3.6906 -21.5055,-13.8872 -17.125,-16.625 z"
+ style="opacity:0.47783251;fill:url(#radialGradient5811);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.72590113;filter:url(#filter5845)" />
+ <ellipse
+ transform="matrix(0.4883067,0,0,0.4883067,-6.359746,-8.009444)"
+ id="path6041"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.58620689;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate"
+ cx="233.9375"
+ cy="201.1875"
+ rx="2.5625"
+ ry="1.0625" />
+ <ellipse
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.58620689;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate"
+ id="path6043"
+ transform="matrix(0.3096579,0,0,0.4883067,27.52844,1.573576)"
+ cx="233.9375"
+ cy="201.1875"
+ rx="2.5625"
+ ry="1.0625" />
+ <ellipse
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.58620689;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.72590113;marker:none;enable-background:accumulate"
+ id="path6045"
+ transform="matrix(0.5478563,0,0,0.4883067,-92.10223,1.115795)"
+ cx="233.9375"
+ cy="201.1875"
+ rx="2.5625"
+ ry="1.0625" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc"
+ id="path5049"
+ d="m 36.67228,76.52865 c -7.15299,4.42411 -18.27403,6.03423 -6.10383,8.97264 -1.44971,-3.2281 3.13858,-2.87202 6.10383,-8.97264 z"
+ style="display:inline;overflow:visible;visibility:visible;opacity:0.25123153;fill:url(#linearGradient5822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11.72603416;marker:none;enable-background:accumulate" />
+ </g>
+ <g
+ transform="matrix(0.25,0,0,0.25,966.8289,192.2732)"
+ id="g37023"
+ style="stroke-width:4">
+ <g
+ id="g36520"
+ style="opacity:0.17000002;stroke-width:4" />
+ <path
+ id="path36522"
+ d="m 57.799,16.177 c -0.379,0.606 -1.203,0.826 -2.164,0.669 -0.535,-0.044 -1.145,-0.252 -1.721,-0.617 -0.201,-0.124 -0.379,-0.266 -0.545,-0.409 -1,-0.777 -1.578,-1.785 -1.535,-2.612 -0.477,0.984 0.305,2.498 1.832,3.463 1.584,1.014 3.375,1.034 3.998,0.06 0.131,-0.208 0.193,-0.438 0.213,-0.683 -0.029,0.043 -0.053,0.095 -0.078,0.129 z"
+ style="fill:#0077ac;stroke-width:4"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36524"
+ d="M 56.334,12.189 C 54.74,11.176 52.955,11.15 52.33,12.128 c -0.621,0.979 0.172,2.588 1.752,3.597 1.596,1.014 3.387,1.036 4.01,0.06 0.621,-0.978 -0.168,-2.588 -1.758,-3.596 z m 1.262,3.145 c -0.502,0.795 -1.965,0.774 -3.252,-0.048 -1.295,-0.814 -1.936,-2.129 -1.428,-2.924 0.5,-0.792 1.961,-0.769 3.254,0.052 1.285,0.821 1.93,2.123 1.426,2.92 z"
+ style="fill:#0073ac;stroke-width:4"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36533"
+ d="m 5.564,8.523 c -2.396,0.49 -3.953,2.851 -3.466,5.245 l 9.564,58.035 c 0.491,2.396 2.859,3.957 5.251,3.467 l 50.768,-8.803 c 2.404,-0.492 3.953,-2.855 3.461,-5.252 L 59.549,4.128 C 59.057,1.734 56.701,0.177 54.299,0.668 Z m 62.239,50.16 c 0.49,2.395 -1.074,4.758 -3.463,5.25 L 18.995,71.62 c -2.4,0.492 -4.765,1.352 -4.048,-1.043 L 6.655,16.307 C 4.954,13.912 6.515,11.548 8.911,11.057 L 52.224,4.314 c 2.391,-0.491 4.762,1.066 5.25,3.461 z"
+ style="fill:url(#linearGradient40971);stroke-width:4"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36542"
+ d="M 6.09,8.688 C 3.74,9.173 2.206,11.492 2.692,13.843 l 9.335,56.94 c 0.487,2.359 2.804,3.883 5.151,3.4 l 49.834,-8.611 c 2.35,-0.482 3.881,-2.797 3.4,-5.15 L 59.037,4.426 C 58.555,2.073 56.238,0.542 53.889,1.03 Z"
+ style="fill:url(#linearGradient40973);stroke:#6b5735;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36555"
+ d="m 9.815,11.62 c -2.056,0.423 -3.399,2.446 -2.979,4.494 l 8.13,49.646 c 0.423,2.055 2.45,3.381 4.509,2.961 l 43.64,-7.547 c 2.059,-0.422 3.398,-2.443 2.98,-4.494 L 56.182,7.86 C 55.762,5.809 53.733,4.477 51.674,4.902 Z"
+ style="fill:#c5ddec;fill-opacity:1;stroke:#ffffff;stroke-width:4"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36557"
+ d="M 55.586,8.812 C 55.186,6.761 53.234,5.436 51.248,5.863 l -40.365,6.81 C 8.899,13.1 7.598,15.131 8.002,17.178 l 0.571,3.664 47.78,-8.077 z"
+ style="fill:#6aa7ce;stroke-width:4"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36564"
+ d="m 14.49,14.562 c 0.451,1.118 -0.086,2.386 -1.204,2.839 -1.112,0.449 -2.382,-0.094 -2.829,-1.21 -0.449,-1.112 0.084,-2.382 1.196,-2.833 1.122,-0.452 2.39,0.091 2.837,1.204 z"
+ style="fill:url(#radialGradient40975);stroke:#ffffff;stroke-width:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36571"
+ d="m 23.288,13.111 c 0.449,1.118 -0.098,2.387 -1.21,2.838 -1.11,0.447 -2.38,-0.09 -2.833,-1.208 -0.449,-1.112 0.092,-2.385 1.199,-2.834 1.119,-0.449 2.393,0.088 2.844,1.204 z"
+ style="fill:url(#radialGradient40977);stroke:#ffffff;stroke-width:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36578"
+ d="m 32.229,11.634 c 0.451,1.118 -0.092,2.386 -1.204,2.84 -1.12,0.449 -2.39,-0.092 -2.837,-1.206 -0.451,-1.112 0.088,-2.389 1.198,-2.836 1.123,-0.452 2.394,0.089 2.843,1.202 z"
+ style="fill:url(#radialGradient40979);stroke:#ffffff;stroke-width:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36585"
+ d="m 41.244,10.148 c 0.453,1.116 -0.09,2.386 -1.207,2.835 -1.114,0.449 -2.384,-0.086 -2.836,-1.206 -0.451,-1.116 0.092,-2.384 1.202,-2.833 1.122,-0.453 2.392,0.088 2.841,1.204 z"
+ style="fill:url(#radialGradient40981);stroke:#ffffff;stroke-width:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36592"
+ d="m 49.873,8.723 c 0.447,1.118 -0.092,2.384 -1.207,2.84 -1.117,0.449 -2.385,-0.093 -2.834,-1.209 -0.451,-1.113 0.09,-2.384 1.201,-2.833 1.117,-0.452 2.387,0.089 2.84,1.202 z"
+ style="fill:url(#radialGradient40983);stroke:#ffffff;stroke-width:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36601"
+ d="m 27.43,3.371 1.769,9.261 c 0.038,0.156 0.226,0.25 0.416,0.208 l 1.681,-0.375 c 0.19,-0.042 0.326,-0.206 0.288,-0.365 L 29.835,2.985 Z"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36610"
+ d="m 36.293,1.894 1.771,9.263 c 0.036,0.156 0.224,0.25 0.415,0.208 l 1.682,-0.377 c 0.189,-0.042 0.323,-0.206 0.286,-0.364 l -1.75,-9.117 z"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36619"
+ d="m 45.045,0.53 1.77,9.261 c 0.037,0.159 0.223,0.249 0.414,0.207 L 48.911,9.623 C 49.104,9.581 49.235,9.418 49.202,9.258 L 47.45,0.143 Z"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36628"
+ d="m 17.973,4.902 2.089,9.186 c 0.04,0.162 0.228,0.258 0.423,0.214 l 1.674,-0.372 c 0.195,-0.043 0.325,-0.213 0.291,-0.377 L 20.355,4.518 Z"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36637"
+ d="m 9.239,6.316 2.082,9.752 c 0.038,0.152 0.226,0.234 0.422,0.194 l 1.677,-0.378 c 0.192,-0.044 0.324,-0.199 0.288,-0.352 L 11.753,5.906 Z"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path36639"
+ d="m 37.306,44.509 c -1.23,-0.9 -2.976,-1.12 -5.233,-0.663 -2.379,0.485 -3.992,1.392 -4.843,2.72 -0.706,1.098 -0.922,2.602 -0.698,4.475 l -4.088,0.83 -0.705,-3.484 c -0.096,-0.459 -0.092,-0.797 0.009,-1.027 0.094,-0.219 0.297,-0.379 0.603,-0.457 l 0.627,-0.168 c 0.231,-0.066 0.327,-0.207 0.281,-0.42 C 23.23,46.161 23.19,46.066 23.146,46.034 23.102,46.006 23,46.006 22.84,46.04 c -0.04,0.004 -0.146,0.034 -0.325,0.084 -0.701,0.174 -1.382,0.33 -2.037,0.461 -0.687,0.139 -1.401,0.268 -2.133,0.385 -0.175,0.02 -0.279,0.039 -0.311,0.045 -0.152,0.033 -0.252,0.072 -0.28,0.113 -0.034,0.049 -0.034,0.15 -0.004,0.307 0.044,0.215 0.191,0.305 0.447,0.27 l 0.602,-0.082 c 0.329,-0.047 0.581,0.014 0.757,0.184 0.178,0.164 0.312,0.477 0.407,0.941 l 1.896,9.35 c 0.096,0.457 0.096,0.795 0,1.021 -0.096,0.223 -0.296,0.379 -0.611,0.461 l -0.606,0.164 c -0.014,0.008 -0.032,0.016 -0.056,0.02 -0.208,0.057 -0.292,0.184 -0.252,0.387 0.032,0.164 0.076,0.258 0.128,0.293 0.056,0.031 0.155,0.031 0.3,0 0.039,-0.008 0.14,-0.027 0.295,-0.063 0.725,-0.191 1.438,-0.355 2.125,-0.492 0.654,-0.133 1.342,-0.258 2.057,-0.367 0.176,-0.027 0.281,-0.043 0.327,-0.053 0.153,-0.033 0.244,-0.068 0.279,-0.119 0.032,-0.051 0.032,-0.156 -0.004,-0.32 -0.038,-0.199 -0.157,-0.287 -0.359,-0.258 -0.027,0 -0.042,0 -0.056,0 l -0.623,0.086 c -0.329,0.049 -0.583,-0.008 -0.757,-0.176 -0.182,-0.168 -0.317,-0.48 -0.409,-0.943 l -0.787,-3.861 4.058,-0.824 c 0.518,2.008 1.298,3.451 2.372,4.246 1.22,0.904 2.936,1.133 5.14,0.688 2.402,-0.49 4.042,-1.404 4.92,-2.744 0.875,-1.34 1.064,-3.232 0.569,-5.674 -0.507,-2.481 -1.374,-4.163 -2.603,-5.061 z m 0.522,10.51 c -0.526,1.139 -1.615,1.871 -3.254,2.205 -1.646,0.332 -2.936,0.082 -3.866,-0.76 -0.931,-0.836 -1.625,-2.387 -2.085,-4.645 -0.447,-2.207 -0.403,-3.893 0.132,-5.043 0.535,-1.151 1.618,-1.891 3.243,-2.22 1.649,-0.336 2.938,-0.084 3.865,0.757 0.927,0.838 1.62,2.389 2.077,4.645 0.456,2.236 0.419,3.924 -0.112,5.061 z"
+ style="fill:#1b6a9e;stroke:#1b6a9e;stroke-width:2"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g36643"
+ style="stroke-width:4">
+ <path
+ inkscape:connector-curvature="0"
+ id="path36641"
+ d="m 51.076,35.627 8.537,12.767 1.287,-0.262 0.18,0.895 -5.152,1.045 -0.184,-0.891 2.795,-0.568 -2.516,-3.772 -7.096,1.44 -0.809,4.445 2.621,-0.527 0.18,0.891 -5.055,1.027 -0.182,-0.893 1.309,-0.266 2.74,-14.129 -4.02,0.818 -0.184,-0.893 z m -0.32,1.248 -1.693,8.45 6.412,-1.302 z m -4.406,-6.064 2.285,-0.465 4.635,3.813 -1.049,0.21 z"
+ style="fill:#e24c49;stroke:#db3c72;stroke-width:2" />
+ </g>
+ <g
+ id="g36647"
+ style="stroke-width:4">
+ <path
+ inkscape:connector-curvature="0"
+ id="path36645"
+ d="m 27.973,27.345 0.843,-1.6 2.372,0.986 c -0.104,0.268 -0.363,0.417 -0.944,0.535 l -3.014,0.611 0.411,2.032 c 2.903,0.06 4.018,0.919 4.18,1.709 0.122,0.585 -0.289,1.106 -0.868,1.225 -0.282,0.056 -0.605,0.008 -0.935,-0.172 -0.336,-0.887 -1.351,-1.901 -2.316,-2.468 l 1.573,7.729 c 0.004,0.131 -0.623,0.698 -1.719,0.922 l -0.41,0.084 -1.394,-6.853 c -0.7,1.725 -1.721,3.324 -3.079,4.804 l -0.308,-0.188 c 1.286,-2.395 1.896,-5.455 2.003,-8.242 l -3.296,0.669 -0.183,-0.344 4.028,-0.818 -0.671,-3.297 C 23,25.15 21.656,25.615 20.393,26.005 l -0.134,-0.224 c 2.552,-1.336 5.556,-3.415 6.989,-4.755 l 2.939,1.232 c -0.108,0.136 -0.308,0.237 -0.571,0.285 -0.212,0.048 -0.46,0.059 -0.751,0.04 -0.687,0.369 -1.546,0.773 -2.472,1.19 l 0.759,3.735 z m 9.715,-5.785 2.813,1.047 c -0.094,0.189 -0.409,0.409 -0.845,0.591 l 2.325,11.43 c 0.004,0.035 -0.496,0.652 -2.197,1 l -0.359,-1.759 -4.065,0.826 0.271,1.336 c 0.009,0.036 -0.104,0.82 -2.126,1.234 l -2.857,-14.067 2.569,0.396 3.744,-0.763 z M 35.287,34.327 39.352,33.5 37.25,23.153 33.185,23.979 Z"
+ style="fill:#6f577d;stroke-width:4" />
+ </g>
+ <g
+ id="g36651"
+ style="opacity:0.17000002;stroke-width:4" />
+ <g
+ transform="matrix(1.7217847,0,0,1.7217847,-78.193568,-9.265088)"
+ id="g99162-9">
+ <circle
+ cx="100.287"
+ cy="110.081"
+ r="34.144001"
+ transform="matrix(0.3316761,0,0,0.3316761,48.927852,9.2318583)"
+ id="circle99164-2"
+ style="fill:#84c225;fill-rule:evenodd;stroke:#5d9d35;stroke-width:2.82220006" />
+ <path
+ d="m 84.515333,38.943636 v 3.981494 h 3.981494 v 4.799639 h -3.981494 v 3.981494 H 79.732961 V 47.724769 H 75.751467 V 42.92513 h 3.981494 v -3.981494 h 4.782372"
+ id="path99166-0"
+ style="font-style:normal;font-weight:normal;font-size:12px;font-family:'Bitstream Vera Sans';display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g40577"
+ transform="matrix(0.25,0,0,0.25,1026.8289,192.2732)">
+ <g
+ style="opacity:0.17000002;stroke-width:4"
+ id="g40301" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#0077ac;stroke-width:4"
+ d="m 57.799,16.177 c -0.379,0.606 -1.203,0.826 -2.164,0.669 -0.535,-0.044 -1.145,-0.252 -1.721,-0.617 -0.201,-0.124 -0.379,-0.266 -0.545,-0.409 -1,-0.777 -1.578,-1.785 -1.535,-2.612 -0.477,0.984 0.305,2.498 1.832,3.463 1.584,1.014 3.375,1.034 3.998,0.06 0.131,-0.208 0.193,-0.438 0.213,-0.683 -0.029,0.043 -0.053,0.095 -0.078,0.129 z"
+ id="path40303" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#0073ac;stroke-width:4"
+ d="M 56.334,12.189 C 54.74,11.176 52.955,11.15 52.33,12.128 c -0.621,0.979 0.172,2.588 1.752,3.597 1.596,1.014 3.387,1.036 4.01,0.06 0.621,-0.978 -0.168,-2.588 -1.758,-3.596 z m 1.262,3.145 c -0.502,0.795 -1.965,0.774 -3.252,-0.048 -1.295,-0.814 -1.936,-2.129 -1.428,-2.924 0.5,-0.792 1.961,-0.769 3.254,0.052 1.285,0.821 1.93,2.123 1.426,2.92 z"
+ id="path40305" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient40579);stroke-width:4"
+ d="m 5.564,8.523 c -2.396,0.49 -3.953,2.851 -3.466,5.245 l 9.564,58.035 c 0.491,2.396 2.859,3.957 5.251,3.467 l 50.768,-8.803 c 2.404,-0.492 3.953,-2.855 3.461,-5.252 L 59.549,4.128 C 59.057,1.734 56.701,0.177 54.299,0.668 Z m 62.239,50.16 c 0.49,2.395 -1.074,4.758 -3.463,5.25 L 18.995,71.62 c -2.4,0.492 -4.765,1.352 -4.048,-1.043 L 6.655,16.307 C 4.954,13.912 6.515,11.548 8.911,11.057 L 52.224,4.314 c 2.391,-0.491 4.762,1.066 5.25,3.461 z"
+ id="path40307" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient40581);stroke:#6b5735;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 6.09,8.688 C 3.74,9.173 2.206,11.492 2.692,13.843 l 9.335,56.94 c 0.487,2.359 2.804,3.883 5.151,3.4 l 49.834,-8.611 c 2.35,-0.482 3.881,-2.797 3.4,-5.15 L 59.037,4.426 C 58.555,2.073 56.238,0.542 53.889,1.03 Z"
+ id="path40309" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#c5ddec;fill-opacity:1;stroke:#ffffff;stroke-width:4"
+ d="m 9.815,11.62 c -2.056,0.423 -3.399,2.446 -2.979,4.494 l 8.13,49.646 c 0.423,2.055 2.45,3.381 4.509,2.961 l 43.64,-7.547 c 2.059,-0.422 3.398,-2.443 2.98,-4.494 L 56.182,7.86 C 55.762,5.809 53.733,4.477 51.674,4.902 Z"
+ id="path40311" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#6aa7ce;stroke-width:4"
+ d="M 55.586,8.812 C 55.186,6.761 53.234,5.436 51.248,5.863 l -40.365,6.81 C 8.899,13.1 7.598,15.131 8.002,17.178 l 0.571,3.664 47.78,-8.077 z"
+ id="path40313" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient40583);stroke:#ffffff;stroke-width:1"
+ d="m 14.49,14.562 c 0.451,1.118 -0.086,2.386 -1.204,2.839 -1.112,0.449 -2.382,-0.094 -2.829,-1.21 -0.449,-1.112 0.084,-2.382 1.196,-2.833 1.122,-0.452 2.39,0.091 2.837,1.204 z"
+ id="path40315" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient40585);stroke:#ffffff;stroke-width:1"
+ d="m 23.288,13.111 c 0.449,1.118 -0.098,2.387 -1.21,2.838 -1.11,0.447 -2.38,-0.09 -2.833,-1.208 -0.449,-1.112 0.092,-2.385 1.199,-2.834 1.119,-0.449 2.393,0.088 2.844,1.204 z"
+ id="path40317" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient40587);stroke:#ffffff;stroke-width:1"
+ d="m 32.229,11.634 c 0.451,1.118 -0.092,2.386 -1.204,2.84 -1.12,0.449 -2.39,-0.092 -2.837,-1.206 -0.451,-1.112 0.088,-2.389 1.198,-2.836 1.123,-0.452 2.394,0.089 2.843,1.202 z"
+ id="path40319" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient40589);stroke:#ffffff;stroke-width:1"
+ d="m 41.244,10.148 c 0.453,1.116 -0.09,2.386 -1.207,2.835 -1.114,0.449 -2.384,-0.086 -2.836,-1.206 -0.451,-1.116 0.092,-2.384 1.202,-2.833 1.122,-0.453 2.392,0.088 2.841,1.204 z"
+ id="path40321" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient40591);stroke:#ffffff;stroke-width:1"
+ d="m 49.873,8.723 c 0.447,1.118 -0.092,2.384 -1.207,2.84 -1.117,0.449 -2.385,-0.093 -2.834,-1.209 -0.451,-1.113 0.09,-2.384 1.201,-2.833 1.117,-0.452 2.387,0.089 2.84,1.202 z"
+ id="path40323" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ d="m 27.43,3.371 1.769,9.261 c 0.038,0.156 0.226,0.25 0.416,0.208 l 1.681,-0.375 c 0.19,-0.042 0.326,-0.206 0.288,-0.365 L 29.835,2.985 Z"
+ id="path40325" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ d="m 36.293,1.894 1.771,9.263 c 0.036,0.156 0.224,0.25 0.415,0.208 l 1.682,-0.377 c 0.189,-0.042 0.323,-0.206 0.286,-0.364 l -1.75,-9.117 z"
+ id="path40327" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ d="m 45.045,0.53 1.77,9.261 c 0.037,0.159 0.223,0.249 0.414,0.207 L 48.911,9.623 C 49.104,9.581 49.235,9.418 49.202,9.258 L 47.45,0.143 Z"
+ id="path40329" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ d="m 17.973,4.902 2.089,9.186 c 0.04,0.162 0.228,0.258 0.423,0.214 l 1.674,-0.372 c 0.195,-0.043 0.325,-0.213 0.291,-0.377 L 20.355,4.518 Z"
+ id="path40331" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#727d7f;stroke-width:1;stroke-opacity:1"
+ d="m 9.239,6.316 2.082,9.752 c 0.038,0.152 0.226,0.234 0.422,0.194 l 1.677,-0.378 c 0.192,-0.044 0.324,-0.199 0.288,-0.352 L 11.753,5.906 Z"
+ id="path40333" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#1b6a9e;stroke:#1b6a9e;stroke-width:2"
+ d="m 37.306,44.509 c -1.23,-0.9 -2.976,-1.12 -5.233,-0.663 -2.379,0.485 -3.992,1.392 -4.843,2.72 -0.706,1.098 -0.922,2.602 -0.698,4.475 l -4.088,0.83 -0.705,-3.484 c -0.096,-0.459 -0.092,-0.797 0.009,-1.027 0.094,-0.219 0.297,-0.379 0.603,-0.457 l 0.627,-0.168 c 0.231,-0.066 0.327,-0.207 0.281,-0.42 C 23.23,46.161 23.19,46.066 23.146,46.034 23.102,46.006 23,46.006 22.84,46.04 c -0.04,0.004 -0.146,0.034 -0.325,0.084 -0.701,0.174 -1.382,0.33 -2.037,0.461 -0.687,0.139 -1.401,0.268 -2.133,0.385 -0.175,0.02 -0.279,0.039 -0.311,0.045 -0.152,0.033 -0.252,0.072 -0.28,0.113 -0.034,0.049 -0.034,0.15 -0.004,0.307 0.044,0.215 0.191,0.305 0.447,0.27 l 0.602,-0.082 c 0.329,-0.047 0.581,0.014 0.757,0.184 0.178,0.164 0.312,0.477 0.407,0.941 l 1.896,9.35 c 0.096,0.457 0.096,0.795 0,1.021 -0.096,0.223 -0.296,0.379 -0.611,0.461 l -0.606,0.164 c -0.014,0.008 -0.032,0.016 -0.056,0.02 -0.208,0.057 -0.292,0.184 -0.252,0.387 0.032,0.164 0.076,0.258 0.128,0.293 0.056,0.031 0.155,0.031 0.3,0 0.039,-0.008 0.14,-0.027 0.295,-0.063 0.725,-0.191 1.438,-0.355 2.125,-0.492 0.654,-0.133 1.342,-0.258 2.057,-0.367 0.176,-0.027 0.281,-0.043 0.327,-0.053 0.153,-0.033 0.244,-0.068 0.279,-0.119 0.032,-0.051 0.032,-0.156 -0.004,-0.32 -0.038,-0.199 -0.157,-0.287 -0.359,-0.258 -0.027,0 -0.042,0 -0.056,0 l -0.623,0.086 c -0.329,0.049 -0.583,-0.008 -0.757,-0.176 -0.182,-0.168 -0.317,-0.48 -0.409,-0.943 l -0.787,-3.861 4.058,-0.824 c 0.518,2.008 1.298,3.451 2.372,4.246 1.22,0.904 2.936,1.133 5.14,0.688 2.402,-0.49 4.042,-1.404 4.92,-2.744 0.875,-1.34 1.064,-3.232 0.569,-5.674 -0.507,-2.481 -1.374,-4.163 -2.603,-5.061 z m 0.522,10.51 c -0.526,1.139 -1.615,1.871 -3.254,2.205 -1.646,0.332 -2.936,0.082 -3.866,-0.76 -0.931,-0.836 -1.625,-2.387 -2.085,-4.645 -0.447,-2.207 -0.403,-3.893 0.132,-5.043 0.535,-1.151 1.618,-1.891 3.243,-2.22 1.649,-0.336 2.938,-0.084 3.865,0.757 0.927,0.838 1.62,2.389 2.077,4.645 0.456,2.236 0.419,3.924 -0.112,5.061 z"
+ id="path40335" />
+ <g
+ style="stroke-width:4"
+ id="g40339">
+ <path
+ style="fill:#e24c49;stroke:#db3c72;stroke-width:2"
+ d="m 51.076,35.627 8.537,12.767 1.287,-0.262 0.18,0.895 -5.152,1.045 -0.184,-0.891 2.795,-0.568 -2.516,-3.772 -7.096,1.44 -0.809,4.445 2.621,-0.527 0.18,0.891 -5.055,1.027 -0.182,-0.893 1.309,-0.266 2.74,-14.129 -4.02,0.818 -0.184,-0.893 z m -0.32,1.248 -1.693,8.45 6.412,-1.302 z m -4.406,-6.064 2.285,-0.465 4.635,3.813 -1.049,0.21 z"
+ id="path40337"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g40343">
+ <path
+ style="fill:#6f577d;stroke-width:4"
+ d="m 27.973,27.345 0.843,-1.6 2.372,0.986 c -0.104,0.268 -0.363,0.417 -0.944,0.535 l -3.014,0.611 0.411,2.032 c 2.903,0.06 4.018,0.919 4.18,1.709 0.122,0.585 -0.289,1.106 -0.868,1.225 -0.282,0.056 -0.605,0.008 -0.935,-0.172 -0.336,-0.887 -1.351,-1.901 -2.316,-2.468 l 1.573,7.729 c 0.004,0.131 -0.623,0.698 -1.719,0.922 l -0.41,0.084 -1.394,-6.853 c -0.7,1.725 -1.721,3.324 -3.079,4.804 l -0.308,-0.188 c 1.286,-2.395 1.896,-5.455 2.003,-8.242 l -3.296,0.669 -0.183,-0.344 4.028,-0.818 -0.671,-3.297 C 23,25.15 21.656,25.615 20.393,26.005 l -0.134,-0.224 c 2.552,-1.336 5.556,-3.415 6.989,-4.755 l 2.939,1.232 c -0.108,0.136 -0.308,0.237 -0.571,0.285 -0.212,0.048 -0.46,0.059 -0.751,0.04 -0.687,0.369 -1.546,0.773 -2.472,1.19 l 0.759,3.735 z m 9.715,-5.785 2.813,1.047 c -0.094,0.189 -0.409,0.409 -0.845,0.591 l 2.325,11.43 c 0.004,0.035 -0.496,0.652 -2.197,1 l -0.359,-1.759 -4.065,0.826 0.271,1.336 c 0.009,0.036 -0.104,0.82 -2.126,1.234 l -2.857,-14.067 2.569,0.396 3.744,-0.763 z M 35.287,34.327 39.352,33.5 37.25,23.153 33.185,23.979 Z"
+ id="path40341"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="opacity:0.17000002;stroke-width:4"
+ id="g40345" />
+ <g
+ style="stroke-width:4"
+ id="g40575">
+ <linearGradient
+ id="linearGradient40353"
+ gradientUnits="userSpaceOnUse"
+ x1="-1549.6245"
+ y1="-1857.6021"
+ x2="-1547.8977"
+ y2="-1860.6862"
+ gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)">
+ <stop
+ offset="0"
+ style="stop-color:#CC772F"
+ id="stop40347" />
+ <stop
+ offset="0.309"
+ style="stop-color:#E98E38"
+ id="stop40349" />
+ <stop
+ offset="1"
+ style="stop-color:#EDCE27"
+ id="stop40351" />
+ </linearGradient>
+ <path
+ style="clip-rule:evenodd;fill:url(#linearGradient40593);fill-rule:evenodd;stroke:#cc772f;stroke-width:4"
+ d="m 43.936,72.554 20.6,-43.974 4.682,2.664 -20.599,43.974 c -2.438,3.145 -1.934,1.434 -1.244,-0.707 -0.453,0.809 -1.594,1.895 -1.098,-0.621 -2.955,5.109 -1.283,0.199 -0.951,-0.547 -2.045,3.101 -1.459,-0.026 -1.39,-0.789 z"
+ id="path40355"
+ inkscape:connector-curvature="0" />
+ <line
+ style="fill:#f3cb83;stroke:#f3b262;stroke-width:4;stroke-linecap:square;stroke-miterlimit:10"
+ x1="45.044998"
+ y1="74.742996"
+ x2="65.939003"
+ y2="29.065001"
+ id="line40357" />
+ <line
+ style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10"
+ x1="45.495998"
+ y1="75.177002"
+ x2="66.390999"
+ y2="29.497"
+ id="line40359" />
+ <line
+ style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10"
+ x1="45.356998"
+ y1="75.186996"
+ x2="66.25"
+ y2="29.509001"
+ id="line40361" />
+ <line
+ style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10"
+ x1="45.216999"
+ y1="75.202003"
+ x2="66.111"
+ y2="29.521"
+ id="line40363" />
+ <line
+ style="fill:none;stroke:#f3cb83;stroke-width:1;stroke-linecap:square;stroke-miterlimit:10"
+ x1="45.076"
+ y1="75.213997"
+ x2="65.971001"
+ y2="29.535"
+ id="line40365" />
+ <path
+ style="fill:#343833;stroke-width:4"
+ d="m 67.986,20.949 0.045,-0.108 v 0 z m 4.731,2.562 0.07,0.042 -0.043,0.104 -0.076,-0.042 z m -3.428,7.777 v 0 l -0.072,-0.044 v 0 z M 64.535,28.58 Z"
+ id="path40367"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e24c49;fill-rule:evenodd;stroke:#aa342e;stroke-width:4"
+ d="m 68.031,20.845 0.67,-1.485 c 1.152,-2.542 6.365,-1.044 4.682,2.668 l -0.666,1.483 z"
+ id="path40369"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#343833;stroke-width:4"
+ d="m 68.701,19.359 z m 4.086,4.194 -0.043,0.104 -0.076,-0.042 0.049,-0.104 z m -4.801,-2.604 v 0 l 0.045,-0.108 v 0 z"
+ id="path40371"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f6ca2a;fill-rule:evenodd;stroke-width:4"
+ d="m 71.9,24.912 c 0.188,-0.427 0.145,-0.319 0.621,-1.38 0,0 0,0 0.074,0.042 -0.191,0.426 -0.145,0.315 -0.627,1.38 10e-4,0 10e-4,0 -0.068,-0.042 z"
+ id="path40373"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4"
+ d="m 71.826,24.868 c 0.191,-0.423 0.143,-0.317 0.625,-1.378 0,0 0,0 0.07,0.042 -0.193,0.426 -0.143,0.319 -0.621,1.38 0,0 0,0 -0.074,-0.044 z"
+ id="path40375"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4"
+ d="m 71.75,24.828 c 0.195,-0.425 0.146,-0.319 0.625,-1.379 0,0 0,0 0.076,0.041 -0.191,0.426 -0.145,0.318 -0.625,1.378 0,0 0,0 -0.076,-0.04 z"
+ id="path40377"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f2c82b;fill-rule:evenodd;stroke-width:4"
+ d="m 71.68,24.789 c 0.189,-0.43 0.146,-0.324 0.625,-1.383 0,0 0,0 0.07,0.043 -0.193,0.423 -0.145,0.317 -0.625,1.379 0,0 0,0 -0.07,-0.039 z"
+ id="path40379"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f0c52d;fill-rule:evenodd;stroke-width:4"
+ d="m 71.605,24.742 c 0.193,-0.423 0.145,-0.315 0.623,-1.373 0,0 0,0 0.076,0.037 -0.195,0.422 -0.146,0.32 -0.625,1.383 0.001,0 0.001,0 -0.074,-0.047 z"
+ id="path40381"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ecc23a;fill-rule:evenodd;stroke-width:4"
+ d="m 71.533,24.705 c 0.191,-0.428 0.145,-0.324 0.625,-1.38 0,0 0,0 0.07,0.044 -0.191,0.423 -0.145,0.313 -0.623,1.373 0,0 0,0 -0.072,-0.037 z"
+ id="path40383"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ecc344;fill-rule:evenodd;stroke-width:4"
+ d="m 71.459,24.661 c 0.195,-0.428 0.143,-0.317 0.625,-1.378 0,0 0,0 0.074,0.042 -0.195,0.419 -0.148,0.319 -0.625,1.38 0,0 0,0 -0.074,-0.044 z"
+ id="path40385"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ebc24f;fill-rule:evenodd;stroke-width:4"
+ d="m 71.385,24.619 c 0.193,-0.424 0.148,-0.318 0.625,-1.378 0,0 0,0 0.074,0.042 -0.195,0.421 -0.146,0.319 -0.625,1.378 0,0 0,0 -0.074,-0.042 z"
+ id="path40387"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e9c158;fill-rule:evenodd;stroke-width:4"
+ d="m 71.314,24.579 c 0.191,-0.426 0.145,-0.319 0.623,-1.38 0,0 0,0 0.072,0.042 -0.191,0.425 -0.141,0.317 -0.625,1.378 0.001,0 0.001,0 -0.07,-0.04 z"
+ id="path40389"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e4be5c;fill-rule:evenodd;stroke-width:4"
+ d="m 71.238,24.535 c 0.193,-0.426 0.143,-0.317 0.625,-1.378 0,0 0,0 0.074,0.042 -0.193,0.421 -0.143,0.317 -0.623,1.38 0,0 0,0 -0.076,-0.044 z"
+ id="path40391"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e4bf61;fill-rule:evenodd;stroke-width:4"
+ d="m 71.166,24.491 c 0.195,-0.422 0.072,-0.355 0.623,-1.378 0,0 0,0 0.074,0.044 -0.193,0.427 -0.146,0.317 -0.625,1.378 0,0 0,0 -0.072,-0.044 z"
+ id="path40393"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e1bb64;fill-rule:evenodd;stroke-width:4"
+ d="m 71.096,24.453 c 0.188,-0.426 0.143,-0.317 0.621,-1.382 0,0 0,0 0.072,0.042 -0.191,0.43 -0.143,0.319 -0.623,1.378 0,0 0,0 -0.07,-0.038 z"
+ id="path40395"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ddb967;fill-rule:evenodd;stroke-width:4"
+ d="m 71.018,24.411 c 0.195,-0.427 0.145,-0.317 0.629,-1.378 0,0 0,0 0.07,0.038 -0.193,0.428 -0.145,0.319 -0.621,1.382 0,0 0,0 -0.078,-0.042 z"
+ id="path40397"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#dab869;fill-rule:evenodd;stroke-width:4"
+ d="m 70.947,24.369 c 0.191,-0.423 0.141,-0.317 0.623,-1.378 0,0 0,0 0.146,0.08 -0.193,0.428 -0.215,0.279 -0.621,1.382 -0.077,-0.042 -0.077,-0.042 -0.148,-0.084 z"
+ id="path40399"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d7b66b;fill-rule:evenodd;stroke-width:4"
+ d="m 70.873,24.327 c 0.193,-0.423 0.145,-0.317 0.625,-1.378 0,0 0,0 0.148,0.084 -0.191,0.424 -0.219,0.275 -0.629,1.378 -0.07,-0.042 -0.07,-0.042 -0.144,-0.084 z"
+ id="path40401"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d7b66e;fill-rule:evenodd;stroke-width:4"
+ d="m 70.801,24.285 c 0.193,-0.425 0.07,-0.361 0.625,-1.378 0,0 0,0 0.145,0.084 -0.189,0.424 -0.217,0.275 -0.623,1.378 -0.075,-0.042 -0.075,-0.042 -0.147,-0.084 z"
+ id="path40403"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d4b470;fill-rule:evenodd;stroke-width:4"
+ d="m 70.729,24.243 c 0.191,-0.423 0.066,-0.357 0.625,-1.378 0,0 0,0 0.145,0.084 -0.191,0.424 -0.219,0.275 -0.625,1.378 -0.073,-0.042 -0.073,-0.042 -0.145,-0.084 z"
+ id="path40405"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d2b270;fill-rule:evenodd;stroke-width:4"
+ d="m 70.654,24.203 c 0.188,-0.427 0.074,-0.361 0.621,-1.377 0,0 0,0 0.15,0.081 -0.191,0.424 -0.217,0.276 -0.625,1.378 -0.071,-0.042 -0.071,-0.042 -0.146,-0.082 z"
+ id="path40407"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d0b373;fill-rule:evenodd;stroke-width:4"
+ d="m 70.58,24.161 c 0.195,-0.427 0.148,-0.319 0.625,-1.38 0,0 0,0 0.148,0.084 -0.195,0.426 -0.221,0.276 -0.625,1.378 -0.074,-0.04 -0.074,-0.04 -0.148,-0.082 z"
+ id="path40409"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d1b374;fill-rule:evenodd;stroke-width:4"
+ d="m 70.508,24.119 c 0.193,-0.423 0.072,-0.359 0.625,-1.379 0,0 0,0 0.143,0.086 -0.188,0.423 -0.213,0.275 -0.621,1.377 -0.075,-0.042 -0.075,-0.042 -0.147,-0.084 z"
+ id="path40411"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#cdb175;fill-rule:evenodd;stroke-width:4"
+ d="m 70.436,24.078 c 0.195,-0.426 0.072,-0.359 0.623,-1.378 0,0 0,0 0.146,0.081 -0.191,0.424 -0.143,0.32 -0.625,1.38 -0.072,-0.042 -0.072,-0.042 -0.144,-0.083 z"
+ id="path40413"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ccae77;fill-rule:evenodd;stroke-width:4"
+ d="m 70.359,24.036 c 0.197,-0.43 0.072,-0.362 0.623,-1.378 0,0 0,0 0.15,0.082 -0.193,0.425 -0.146,0.319 -0.625,1.379 -0.071,-0.041 -0.071,-0.041 -0.148,-0.083 z"
+ id="path40415"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c8ad78;fill-rule:evenodd;stroke-width:4"
+ d="m 70.283,23.992 c 0.195,-0.422 0.076,-0.355 0.629,-1.376 0,0 0,0 0.146,0.084 -0.191,0.423 -0.146,0.317 -0.623,1.378 -0.076,-0.042 -0.076,-0.042 -0.152,-0.086 z"
+ id="path40417"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c8ac7a;fill-rule:evenodd;stroke-width:4"
+ d="m 70.217,23.954 c 0.119,-0.47 0.07,-0.361 0.621,-1.378 0,0 0,0 0.145,0.082 -0.188,0.421 -0.141,0.319 -0.623,1.378 -0.077,-0.044 -0.077,-0.044 -0.143,-0.082 z"
+ id="path40419"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c7ab7b;fill-rule:evenodd;stroke-width:4"
+ d="m 70.145,23.906 c 0.115,-0.46 0.068,-0.355 0.623,-1.374 0,0 0,0 0.145,0.084 -0.193,0.425 -0.141,0.317 -0.629,1.376 -0.067,-0.038 -0.067,-0.038 -0.139,-0.086 z"
+ id="path40421"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#fccd29;fill-rule:evenodd;stroke-width:4"
+ d="m 67.365,22.326 c 0.188,-0.425 0.141,-0.317 0.621,-1.377 0.074,0.041 0,0 0.074,0.041 -0.195,0.426 -0.145,0.32 -0.625,1.38 0.001,0 0.001,0 -0.07,-0.044 z"
+ id="path40423"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f6ca2a;fill-rule:evenodd;stroke-width:4"
+ d="m 67.436,22.37 c 0.191,-0.427 0.145,-0.319 0.625,-1.38 0.074,0.04 0,0 0.074,0.04 -0.195,0.43 -0.145,0.321 -0.625,1.382 0,0 0,0 -0.074,-0.042 z"
+ id="path40425"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f6ca2a;fill-rule:evenodd;stroke-width:4"
+ d="m 67.51,22.412 c 0.191,-0.425 0.143,-0.319 0.625,-1.382 0,0 0,0 0.068,0.046 -0.191,0.424 -0.139,0.316 -0.619,1.376 0,0 0,0 -0.074,-0.04 z"
+ id="path40427"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4"
+ d="m 67.584,22.452 c 0.188,-0.425 0.141,-0.315 0.619,-1.376 0,0 0,0 0.074,0.04 -0.191,0.428 -0.143,0.317 -0.621,1.378 0,0 0,0 -0.072,-0.042 z"
+ id="path40429"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f4c92a;fill-rule:evenodd;stroke-width:4"
+ d="m 67.656,22.494 c 0.189,-0.423 0.143,-0.317 0.621,-1.378 0,0 0,0 0.074,0.042 -0.193,0.428 -0.145,0.317 -0.623,1.378 0.001,0 0.001,0 -0.072,-0.042 z"
+ id="path40431"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f2c82b;fill-rule:evenodd;stroke-width:4"
+ d="m 67.729,22.536 c 0.191,-0.421 0.145,-0.319 0.623,-1.378 0,0 0,0 0.076,0.042 -0.195,0.424 -0.148,0.317 -0.629,1.376 0,0 0,0 -0.07,-0.04 z"
+ id="path40433"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f2c62c;fill-rule:evenodd;stroke-width:4"
+ d="m 67.799,22.576 c 0.191,-0.422 0.145,-0.315 0.629,-1.376 0,0 0,0 0.07,0.04 -0.193,0.426 -0.143,0.319 -0.625,1.376 -0.074,-0.04 0,0 -0.074,-0.04 z"
+ id="path40435"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f0c52d;fill-rule:evenodd;stroke-width:4"
+ d="m 67.873,22.616 c 0.191,-0.419 0.143,-0.313 0.625,-1.376 0,0 0,0 0.072,0.044 -0.191,0.423 -0.143,0.319 -0.623,1.378 -0.074,-0.046 -0.074,-0.046 -0.074,-0.046 z"
+ id="path40437"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#f0c631;fill-rule:evenodd;stroke-width:4"
+ d="m 67.947,22.662 c 0.191,-0.428 0.068,-0.359 0.623,-1.378 0,0 0,0 0.072,0.042 -0.191,0.424 -0.145,0.315 -0.623,1.374 -0.072,-0.038 -0.072,-0.038 -0.072,-0.038 z"
+ id="path40439"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ecc23a;fill-rule:evenodd;stroke-width:4"
+ d="m 67.947,22.662 c 0.191,-0.428 0.145,-0.319 0.623,-1.378 0.072,0.042 0.072,0.042 0.146,0.082 -0.191,0.425 -0.143,0.317 -0.621,1.378 C 68.02,22.7 68.02,22.7 67.947,22.662 Z"
+ id="path40441"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ecc344;fill-rule:evenodd;stroke-width:4"
+ d="m 68.02,22.7 c 0.191,-0.422 0.143,-0.317 0.623,-1.374 0.074,0.04 0.074,0.04 0.148,0.082 -0.195,0.423 -0.145,0.319 -0.625,1.376 -0.07,-0.04 -0.07,-0.04 -0.146,-0.084 z"
+ id="path40443"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ebc24a;fill-rule:evenodd;stroke-width:4"
+ d="m 68.096,22.744 c 0.191,-0.424 0.145,-0.317 0.621,-1.378 0.074,0.042 0.074,0.042 0.145,0.082 -0.191,0.425 -0.143,0.321 -0.621,1.38 -0.075,-0.044 -0.075,-0.044 -0.145,-0.084 z"
+ id="path40445"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ebc24f;fill-rule:evenodd;stroke-width:4"
+ d="m 68.166,22.784 c 0.193,-0.42 0.145,-0.315 0.625,-1.376 0.07,0.04 0,0 0.148,0.084 -0.27,0.381 -0.221,0.277 -0.625,1.377 -0.074,-0.041 -0.074,-0.041 -0.148,-0.085 z"
+ id="path40447"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e9c158;fill-rule:evenodd;stroke-width:4"
+ d="m 68.24,22.828 c 0.191,-0.424 0.145,-0.32 0.621,-1.38 0.078,0.044 0,0 0.078,0.044 -0.195,0.423 -0.148,0.313 -0.625,1.377 0,0 0,0 -0.074,-0.041 z"
+ id="path40449"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e9c15b;fill-rule:evenodd;stroke-width:4"
+ d="m 68.314,22.869 c 0.191,-0.423 0.143,-0.317 0.625,-1.377 0,0 0,0 0.068,0.042 -0.189,0.423 -0.143,0.319 -0.623,1.373 0.001,0 0.001,0 -0.07,-0.038 z"
+ id="path40451"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e4be5c;fill-rule:evenodd;stroke-width:4"
+ d="m 68.385,22.907 c 0.195,-0.423 0.146,-0.317 0.623,-1.373 0,0 0,0 0.074,0.04 -0.191,0.421 -0.143,0.317 -0.625,1.375 0,0 0,0 -0.072,-0.042 z"
+ id="path40453"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e4bf61;fill-rule:evenodd;stroke-width:4"
+ d="m 68.457,22.949 c 0.193,-0.421 0.143,-0.313 0.625,-1.375 0,0 0,0 0.074,0.045 -0.193,0.422 -0.141,0.314 -0.625,1.378 0,0 0,0 -0.074,-0.048 z"
+ id="path40455"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e1bb63;fill-rule:evenodd;stroke-width:4"
+ d="m 68.531,22.997 c 0.195,-0.427 0.146,-0.321 0.625,-1.378 0,0 0,0 0.072,0.038 -0.191,0.428 -0.143,0.317 -0.625,1.376 0.001,0 0.001,0 -0.072,-0.036 z"
+ id="path40457"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e1bb64;fill-rule:evenodd;stroke-width:4"
+ d="m 68.604,23.033 c 0.191,-0.421 0.146,-0.315 0.625,-1.376 0,0 0,0 0.074,0.042 -0.193,0.424 -0.146,0.32 -0.625,1.378 0,0 0,0 -0.074,-0.044 z"
+ id="path40459"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#dcba67;fill-rule:evenodd;stroke-width:4"
+ d="m 68.678,23.077 c 0.117,-0.465 0.072,-0.359 0.625,-1.378 0,0 0,0 0.074,0.038 -0.195,0.43 -0.145,0.321 -0.623,1.382 0,0 0,0 -0.076,-0.042 z"
+ id="path40461"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ddb967;fill-rule:evenodd;stroke-width:4"
+ d="m 68.678,23.077 c 0.191,-0.423 0.143,-0.319 0.625,-1.378 0.074,0.038 0.074,0.038 0.146,0.084 -0.195,0.422 -0.143,0.319 -0.623,1.378 -0.072,-0.042 0,0 -0.148,-0.084 z"
+ id="path40463"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#dab869;fill-rule:evenodd;stroke-width:4"
+ d="m 68.754,23.119 c 0.189,-0.423 0.145,-0.317 0.623,-1.382 0.072,0.046 0.072,0.046 0.145,0.086 -0.195,0.421 -0.145,0.317 -0.623,1.378 -0.073,-0.04 -0.001,0 -0.145,-0.082 z"
+ id="path40465"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#dab86a;fill-rule:evenodd;stroke-width:4"
+ d="m 68.826,23.161 c 0.191,-0.425 0.141,-0.317 0.623,-1.378 0.072,0.04 0.072,0.04 0.146,0.082 -0.191,0.424 -0.143,0.317 -0.625,1.378 -0.072,-0.042 -0.072,-0.042 -0.144,-0.082 z"
+ id="path40467"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d7b66b;fill-rule:evenodd;stroke-width:4"
+ d="m 68.898,23.201 c 0.195,-0.424 0.143,-0.315 0.623,-1.378 0.074,0.042 0,0 0.145,0.084 -0.188,0.427 -0.141,0.319 -0.621,1.378 -0.074,-0.042 -0.074,-0.042 -0.147,-0.084 z"
+ id="path40469"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d7b66e;fill-rule:evenodd;stroke-width:4"
+ d="m 68.971,23.243 c 0.193,-0.424 0.145,-0.317 0.625,-1.378 0.07,0.042 0,0 0.145,0.084 -0.191,0.423 -0.145,0.319 -0.621,1.378 -0.075,-0.042 -0.075,-0.042 -0.149,-0.084 z"
+ id="path40471"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d4b46f;fill-rule:evenodd;stroke-width:4"
+ d="m 69.045,23.285 c 0.195,-0.424 0.145,-0.319 0.621,-1.378 0.074,0.042 0,0 0.152,0.086 -0.193,0.421 -0.148,0.315 -0.629,1.376 -0.07,-0.042 -0.07,-0.042 -0.144,-0.084 z"
+ id="path40473"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d4b470;fill-rule:evenodd;stroke-width:4"
+ d="m 69.119,23.327 c 0.191,-0.428 0.143,-0.317 0.621,-1.378 0,0 0,0 0.148,0.084 -0.195,0.423 -0.148,0.319 -0.625,1.373 -0.074,-0.037 -0.074,-0.037 -0.144,-0.079 z"
+ id="path40475"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d2b270;fill-rule:evenodd;stroke-width:4"
+ d="m 69.189,23.369 c 0.191,-0.424 0.145,-0.317 0.629,-1.376 0,0 0,0 0.141,0.08 -0.191,0.425 -0.219,0.279 -0.619,1.378 -0.076,-0.045 -0.076,-0.045 -0.151,-0.082 z"
+ id="path40477"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d2b372;fill-rule:evenodd;stroke-width:4"
+ d="m 69.264,23.406 c 0.191,-0.421 0.145,-0.313 0.625,-1.373 0,0 0,0 0.145,0.082 -0.266,0.383 -0.215,0.275 -0.621,1.381 -0.073,-0.045 -0.073,-0.045 -0.149,-0.09 z"
+ id="path40479"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d0b373;fill-rule:evenodd;stroke-width:4"
+ d="m 69.34,23.451 c 0.189,-0.424 0.068,-0.357 0.619,-1.378 0,0 0,0 0.074,0.042 -0.191,0.427 -0.141,0.317 -0.621,1.381 0,0 0,0 -0.072,-0.045 z"
+ id="path40481"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#d1b374;fill-rule:evenodd;stroke-width:4"
+ d="m 69.412,23.496 c 0.117,-0.469 0.07,-0.361 0.621,-1.381 0,0 0,0 0.078,0.041 -0.195,0.428 -0.146,0.32 -0.625,1.38 0,0 0,0 -0.074,-0.04 z"
+ id="path40483"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#cdb175;fill-rule:evenodd;stroke-width:4"
+ d="m 69.412,23.496 c 0.188,-0.427 0.145,-0.321 0.621,-1.381 0.078,0.041 0.078,0.041 0.146,0.086 -0.193,0.421 -0.143,0.317 -0.625,1.375 0.001,0 0.001,0 -0.142,-0.08 z"
+ id="path40485"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#cdb175;fill-rule:evenodd;stroke-width:4"
+ d="m 69.486,23.536 c 0.191,-0.423 0.143,-0.319 0.625,-1.38 0.068,0.045 0.068,0.045 0.141,0.084 -0.189,0.426 -0.145,0.318 -0.619,1.38 0,0 0,0 -0.147,-0.084 z"
+ id="path40487"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ccb078;fill-rule:evenodd;stroke-width:4"
+ d="m 69.555,23.576 c 0.193,-0.423 0.143,-0.315 0.625,-1.375 0.072,0.039 0.072,0.039 0.148,0.081 -0.193,0.424 -0.145,0.319 -0.625,1.38 0,0 0,0 -0.148,-0.086 z"
+ id="path40489"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#ccae77;fill-rule:evenodd;stroke-width:4"
+ d="m 69.633,23.62 c 0.191,-0.425 0.139,-0.321 0.619,-1.38 0.076,0.042 0.076,0.042 0.148,0.082 -0.191,0.426 -0.145,0.322 -0.621,1.378 -0.076,-0.038 0,0 -0.146,-0.08 z"
+ id="path40491"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c8ad77;fill-rule:evenodd;stroke-width:4"
+ d="m 69.703,23.662 c 0.193,-0.423 0.146,-0.319 0.625,-1.38 0.072,0.04 0,0 0.146,0.082 -0.195,0.428 -0.146,0.319 -0.621,1.38 -0.074,-0.044 0.001,0 -0.15,-0.082 z"
+ id="path40493"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c8ad78;fill-rule:evenodd;stroke-width:4"
+ d="m 69.779,23.7 c 0.189,-0.423 0.141,-0.315 0.621,-1.378 0.074,0.042 0,0 0.148,0.086 -0.197,0.422 -0.148,0.317 -0.629,1.378 -0.065,-0.042 -0.065,-0.042 -0.14,-0.086 z"
+ id="path40495"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c7ab78;fill-rule:evenodd;stroke-width:4"
+ d="m 69.854,23.744 c 0.188,-0.426 0.139,-0.315 0.621,-1.38 0,0 0,0 0.145,0.086 -0.189,0.421 -0.145,0.315 -0.625,1.376 -0.075,-0.04 -0.075,-0.04 -0.141,-0.082 z"
+ id="path40497"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c7ab7a;fill-rule:evenodd;stroke-width:4"
+ d="m 69.92,23.786 c 0.191,-0.423 0.148,-0.319 0.629,-1.378 0,0 0,0 0.143,0.082 -0.189,0.426 -0.143,0.319 -0.623,1.38 -0.075,-0.044 -0.075,-0.044 -0.149,-0.084 z"
+ id="path40499"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c4aa7b;fill-rule:evenodd;stroke-width:4"
+ d="m 69.994,23.826 c 0.195,-0.424 0.146,-0.317 0.625,-1.376 0,0 0,0 0.148,0.082 -0.195,0.423 -0.145,0.319 -0.623,1.374 -0.076,-0.036 -0.076,-0.036 -0.15,-0.08 z"
+ id="path40501"
+ inkscape:connector-curvature="0" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="68.498,21.24 67.873,22.616 67.584,22.452 68.203,21.076 "
+ id="polygon40503" />
+ <polygon
+ style="clip-rule:evenodd;fill:#fccd29;fill-rule:evenodd;stroke-width:4"
+ points="72.668,23.614 72.045,24.992 71.75,24.828 72.375,23.449 "
+ id="polygon40505" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="72.668,23.614 72.045,24.992 71.75,24.828 72.375,23.449 "
+ id="polygon40507" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="72.084,23.283 71.459,24.661 71.166,24.491 71.789,23.113 "
+ id="polygon40509" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="71.57,22.991 70.947,24.369 70.654,24.203 71.275,22.826 "
+ id="polygon40511" />
+ <polygon
+ style="clip-rule:evenodd;fill:#c4aa7b;fill-rule:evenodd;stroke-width:4"
+ points="70.982,22.658 70.283,23.992 69.994,23.826 70.619,22.45 "
+ id="polygon40513" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="70.982,22.658 70.283,23.992 69.994,23.826 70.619,22.45 "
+ id="polygon40515" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="70.328,22.282 69.703,23.662 69.412,23.496 70.033,22.115 "
+ id="polygon40517" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="69.74,21.949 69.119,23.327 68.826,23.161 69.449,21.783 "
+ id="polygon40519" />
+ <polygon
+ style="fill:none;stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="69.156,21.619 68.531,22.997 68.24,22.828 68.861,21.448 "
+ id="polygon40521" />
+ <g
+ style="stroke-width:4"
+ id="g40555">
+ <linearGradient
+ id="linearGradient40527"
+ gradientUnits="userSpaceOnUse"
+ x1="-1521.8286"
+ y1="-1846.4146"
+ x2="-1523.4501"
+ y2="-1843.4415"
+ gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop40523" />
+ <stop
+ offset="1"
+ style="stop-color:#9FA4AB"
+ id="stop40525" />
+ </linearGradient>
+ <polygon
+ style="clip-rule:evenodd;fill:url(#linearGradient40595);fill-rule:evenodd;stroke:#8f989b;stroke-width:4"
+ points="72.668,23.614 69.217,31.244 64.535,28.58 67.986,20.949 "
+ id="polygon40529" />
+ <linearGradient
+ id="linearGradient40535"
+ gradientUnits="userSpaceOnUse"
+ x1="-1526.4932"
+ y1="-1845.8735"
+ x2="-1523.0596"
+ y2="-1845.8735"
+ gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop40531" />
+ <stop
+ offset="1"
+ style="stop-color:#9FA4AB"
+ id="stop40533" />
+ </linearGradient>
+ <polygon
+ style="fill:url(#linearGradient40597);stroke:#343833;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="70.08,29.339 69.883,29.763 65.205,27.097 65.396,26.676 "
+ id="polygon40537" />
+ <linearGradient
+ id="linearGradient40543"
+ gradientUnits="userSpaceOnUse"
+ x1="-1525.1694"
+ y1="-1845.1729"
+ x2="-1521.835"
+ y2="-1845.1729"
+ gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop40539" />
+ <stop
+ offset="1"
+ style="stop-color:#9FA4AB"
+ id="stop40541" />
+ </linearGradient>
+ <polygon
+ style="fill:url(#linearGradient40599);stroke:#737a7f;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="70.654,28.067 70.512,28.385 65.826,25.721 65.973,25.401 "
+ id="polygon40545" />
+ <linearGradient
+ id="linearGradient40551"
+ gradientUnits="userSpaceOnUse"
+ x1="-1523.8447"
+ y1="-1844.4126"
+ x2="-1520.4072"
+ y2="-1844.4126"
+ gradientTransform="matrix(-0.0794,-0.9968,0.9968,-0.0794,1786.5422,-1638.24)">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop40547" />
+ <stop
+ offset="1"
+ style="stop-color:#9FA4AB"
+ id="stop40549" />
+ </linearGradient>
+ <polygon
+ style="fill:url(#linearGradient40601);stroke:#737a7f;stroke-width:0;stroke-linecap:square;stroke-miterlimit:10"
+ points="71.326,26.584 71.133,27.007 66.451,24.342 66.643,23.916 "
+ id="polygon40553" />
+ </g>
+ <path
+ style="fill:none;stroke:#f1cbba;stroke-width:13.60639954;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
+ d="M 72.936,19.769"
+ id="path40557"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#f1cbba;stroke-width:13.60639954;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
+ d="M 72.375,23.045"
+ id="path40559"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#8a9196;fill-rule:evenodd;stroke-width:4"
+ d="m 41.451,82.737 -0.902,3.615 2.023,-2.848 c 0.117,-0.868 -0.662,-1.177 -1.121,-0.767 z"
+ id="path40561"
+ inkscape:connector-curvature="0" />
+ <path
+ style="stroke:#343833;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
+ d="m 41.451,82.737 -0.902,3.615 2.023,-2.848 c 0.117,-0.868 -0.662,-1.177 -1.121,-0.767 z"
+ id="path40563"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#c6bdaf;fill-rule:evenodd;stroke-width:4"
+ d="m 48.619,75.218 -6.002,8.18 c 0.072,-0.762 -0.781,-1.109 -1.166,-0.66 l 2.484,-10.184 c -0.068,0.764 -0.654,3.891 1.391,0.789 -0.332,0.746 -2.004,5.656 0.951,0.547 -0.496,2.516 0.645,1.43 1.098,0.621 -0.689,2.14 -1.193,3.851 1.244,0.707 z"
+ id="path40565"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e5bd87;stroke:#c48e30;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10"
+ d="m 48.619,75.218 -6.002,8.18 c 0.072,-0.762 -0.781,-1.109 -1.166,-0.66 l 2.484,-10.184 c -0.068,0.764 -0.654,3.891 1.391,0.789 -0.332,0.746 -2.004,5.656 0.951,0.547 -0.496,2.516 0.645,1.43 1.098,0.621 -0.689,2.14 -1.193,3.851 1.244,0.707 z"
+ id="path40567"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#dadde0;fill-rule:evenodd;stroke-width:4"
+ d="m 41.99,83.976 -0.844,1.254 0.699,-1.34 c 10e-4,0 0.192,-0.02 0.145,0.086 z"
+ id="path40569"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;opacity:0.58999999;fill:#e6d7c2;fill-rule:evenodd;stroke-width:4"
+ d="m 42.291,82.685 -0.25,0.229 3.115,-9.793 c 0.041,0.637 0.389,1.891 0.389,1.891 l 1.051,-0.283 -4.273,8.381 z"
+ id="path40571"
+ inkscape:connector-curvature="0" />
+ <path
+ style="clip-rule:evenodd;fill:#e6d7c2;fill-rule:evenodd;stroke-width:4"
+ d="m 42.494,82.229 -0.195,0.189 3.09,-8.99 c -0.035,0.609 0.086,1.85 0.086,1.85 l 0.756,-0.146 -3.754,7.504 z"
+ id="path40573"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <rect
+ inkscape:label="AddFont"
+ width="24"
+ height="24"
+ x="1083.9999"
+ y="191.36221"
+ id="AddFont"
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+ id="DelFont"
+ y="191.36221"
+ x="1143.9999"
+ height="24"
+ width="24"
+ inkscape:label="DelFont" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path38067"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:Laksaman;-inkscape-font-specification:Laksaman;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994"
+ d="m 1095.2033,204.25897 h -1.0005 l -1.2775,-3.54009 h -4.7406 l -1.2467,3.54009 h -1.0005 l 4.1711,-11.20515 h 0.9236 z m -2.555,-4.30967 -2.0779,-5.87963 -2.1087,5.87963 z" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path37258"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:MathJax_Script;-inkscape-font-specification:MathJax_Script;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994"
+ d="m 1091.8813,211.33547 v -0.077 c 0.1078,0.0308 0.2001,0.0616 0.354,0.0616 0.4772,0 0.9697,-0.29244 0.9697,-0.69263 0,-0.33861 -0.2309,-0.58488 -0.6003,-0.58488 -0.1693,0 -0.3386,0.0462 -0.5233,0.12313 -0.3232,0.15392 -0.5079,0.35401 -0.6926,0.7388 -0.1078,0.21549 -0.1385,0.32323 -0.1385,0.53871 0,0.23088 0.077,0.43097 0.2462,0.58489 0.2309,0.23087 0.5849,0.35401 1.0774,0.35401 0.8158,0 1.7701,-0.41558 2.7859,-1.16977 l 0.2155,-0.15392 0.1693,0.0616 c 0.5234,0.20009 1.1082,0.33861 1.7701,0.43096 0.277,0.0462 0.7696,0.0924 0.8465,0.0924 0.015,0 -0.015,0.0616 -0.1231,0.21549 -0.1847,0.27705 -0.2001,0.30783 -0.077,0.40018 h 0.708 c 0.5849,0 0.7235,0 0.7542,-0.0154 0.015,-0.0154 0.1078,-0.16931 0.2155,-0.32323 l 0.1847,-0.30783 c 0.7542,-0.16931 1.5084,-0.63106 2.0779,-1.18516 l 0.1231,-0.12313 0.062,-0.16931 c 0.062,-0.21549 0.062,-0.30784 -0.1077,-0.30784 -0.031,0.0154 -0.1078,0.077 -0.2001,0.16931 -0.431,0.43097 -1.0159,0.80037 -1.57,0.98507 l 0.092,-0.13852 2.9706,-4.78682 c 2.201,-3.55548 2.8782,-4.64829 2.8782,-4.69447 0,-0.12313 -0.031,-0.13852 -0.2001,-0.13852 h -0.1231 c -0.1847,0 -0.2463,0 -0.2771,0.0154 -0.015,0.0154 -0.092,0.12313 -0.1693,0.23087 l -0.1385,0.21549 -0.2001,0.12313 c -2.124,1.32369 -4.2173,2.86286 -5.7411,4.21733 l -0.1847,0.15391 -0.1385,-0.12313 c -0.6157,-0.50793 -1.4468,-0.80037 -2.5243,-0.80037 -0.5233,0 -0.9542,0.0923 -1.339,0.29244 -0.3848,0.1847 -0.5695,0.35401 -0.8312,0.7388 -0.5695,0.86194 -0.8619,1.56996 -0.8619,2.32415 0,0.80037 0.4002,1.41604 0.9081,1.83161 0.1077,0.0924 0.4463,0.32323 0.4925,0.33862 0.031,0.0154 -0.046,0.077 -0.2462,0.23087 -0.7235,0.50793 -1.4469,0.80037 -1.9856,0.80037 -0.4617,0 -0.8311,-0.12313 -0.9081,-0.47714 z m 12.7443,-8.527 c 0,0.0154 -0.9696,1.40065 -2.1548,3.07834 l -2.1548,3.04756 -0.015,-0.0924 c -0.031,-0.89272 -0.2001,-1.56996 -0.5541,-2.10867 l -0.092,-0.15391 0.031,-0.0308 c 1.0466,-0.96967 2.4935,-2.10866 3.9249,-3.07834 0.2924,-0.20009 1.0158,-0.67723 1.0312,-0.67723 0,0 0,0.0154 -0.015,0.0154 z m -5.8796,3.80175 0.046,0.0616 -0.2463,0.23087 c -0.7696,0.72341 -1.6315,1.72387 -2.2626,2.58581 -0.1077,0.1847 -0.354,0.47714 -0.5079,0.63106 -0.1693,0.1847 -0.1385,0.1847 -0.354,0.0308 -0.1847,-0.12313 -0.4617,-0.40018 -0.5541,-0.5541 -0.2001,-0.29244 -0.2924,-0.53871 -0.2924,-0.93889 0,-0.18471 0.015,-0.3848 0.046,-0.50793 0.1232,-0.52332 0.4618,-1.18516 0.8466,-1.70848 0.1385,-0.16931 0.3848,-0.40018 0.5233,-0.47714 0.2001,-0.12314 0.2617,-0.13853 0.5541,-0.13853 0.9389,0.10775 1.6931,0.27705 2.201,0.78498 z m 0.8773,2.49345 c 0,0.27706 -0.062,0.81576 -0.077,0.87733 -0.015,0.0308 -0.1847,0.29244 -0.3848,0.56949 l -0.3694,0.53871 -0.077,-0.0154 c -0.031,0 -0.1847,-0.0154 -0.3232,-0.0308 -0.8004,-0.0616 -1.5238,-0.21549 -2.1087,-0.44636 l -0.1385,-0.0462 0.1385,-0.15391 c 0.2771,-0.29245 0.431,-0.49254 0.7542,-0.9235 0.4464,-0.63106 1.0005,-1.27752 1.6931,-2.00093 l 0.3848,-0.40018 c 0.046,0.0616 0.077,0.13853 0.1385,0.21548 0.2309,0.46176 0.3694,1.13899 0.3694,1.81622 z" />
+ <g
+ aria-label="+"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:1"
+ id="text38073">
+ <path
+ d="m 1104,192.36218 v 3 h 3 v 1 h -3 v 3 h -1 v -3 l -2.9971,9.8e-4 -0,-1.00098 h 3 v -3 z"
+ style="fill:#00ff00;fill-opacity:1;stroke-width:1"
+ id="path38075"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccc" />
+ </g>
+ <path
+ d="m 1155.2033,204.25897 h -1.0005 l -1.2775,-3.54009 h -4.7406 l -1.2467,3.54009 h -1.0005 l 4.1711,-11.20515 h 0.9236 z m -2.555,-4.30967 -2.0779,-5.87963 -2.1087,5.87963 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:Laksaman;-inkscape-font-specification:Laksaman;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994"
+ id="path38078"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 1151.8813,211.33547 v -0.077 c 0.1078,0.0308 0.2001,0.0616 0.354,0.0616 0.4772,0 0.9697,-0.29244 0.9697,-0.69263 0,-0.33861 -0.2309,-0.58488 -0.6003,-0.58488 -0.1693,0 -0.3386,0.0462 -0.5233,0.12313 -0.3232,0.15392 -0.5079,0.35401 -0.6926,0.7388 -0.1078,0.21549 -0.1385,0.32323 -0.1385,0.53871 0,0.23088 0.077,0.43097 0.2462,0.58489 0.2309,0.23087 0.5849,0.35401 1.0774,0.35401 0.8158,0 1.7701,-0.41558 2.7859,-1.16977 l 0.2155,-0.15392 0.1693,0.0616 c 0.5234,0.20009 1.1082,0.33861 1.7701,0.43096 0.277,0.0462 0.7696,0.0924 0.8465,0.0924 0.015,0 -0.015,0.0616 -0.1231,0.21549 -0.1847,0.27705 -0.2001,0.30783 -0.077,0.40018 h 0.708 c 0.5849,0 0.7235,0 0.7542,-0.0154 0.015,-0.0154 0.1078,-0.16931 0.2155,-0.32323 l 0.1847,-0.30783 c 0.7542,-0.16931 1.5084,-0.63106 2.0779,-1.18516 l 0.1231,-0.12313 0.062,-0.16931 c 0.062,-0.21549 0.062,-0.30784 -0.1077,-0.30784 -0.031,0.0154 -0.1078,0.077 -0.2001,0.16931 -0.431,0.43097 -1.0159,0.80037 -1.57,0.98507 l 0.092,-0.13852 2.9706,-4.78682 c 2.201,-3.55548 2.8782,-4.64829 2.8782,-4.69447 0,-0.12313 -0.031,-0.13852 -0.2001,-0.13852 h -0.1231 c -0.1847,0 -0.2463,0 -0.2771,0.0154 -0.015,0.0154 -0.092,0.12313 -0.1693,0.23087 l -0.1385,0.21549 -0.2001,0.12313 c -2.124,1.32369 -4.2173,2.86286 -5.7411,4.21733 l -0.1847,0.15391 -0.1385,-0.12313 c -0.6157,-0.50793 -1.4468,-0.80037 -2.5243,-0.80037 -0.5233,0 -0.9542,0.0923 -1.339,0.29244 -0.3848,0.1847 -0.5695,0.35401 -0.8312,0.7388 -0.5695,0.86194 -0.8619,1.56996 -0.8619,2.32415 0,0.80037 0.4002,1.41604 0.9081,1.83161 0.1077,0.0924 0.4463,0.32323 0.4925,0.33862 0.031,0.0154 -0.046,0.077 -0.2462,0.23087 -0.7235,0.50793 -1.4469,0.80037 -1.9856,0.80037 -0.4617,0 -0.8311,-0.12313 -0.9081,-0.47714 z m 12.7443,-8.527 c 0,0.0154 -0.9696,1.40065 -2.1548,3.07834 l -2.1548,3.04756 -0.015,-0.0924 c -0.031,-0.89272 -0.2001,-1.56996 -0.5541,-2.10867 l -0.092,-0.15391 0.031,-0.0308 c 1.0466,-0.96967 2.4935,-2.10866 3.9249,-3.07834 0.2924,-0.20009 1.0158,-0.67723 1.0312,-0.67723 0,0 0,0.0154 -0.015,0.0154 z m -5.8796,3.80175 0.046,0.0616 -0.2463,0.23087 c -0.7696,0.72341 -1.6315,1.72387 -2.2626,2.58581 -0.1077,0.1847 -0.354,0.47714 -0.5079,0.63106 -0.1693,0.1847 -0.1385,0.1847 -0.354,0.0308 -0.1847,-0.12313 -0.4617,-0.40018 -0.5541,-0.5541 -0.2001,-0.29244 -0.2924,-0.53871 -0.2924,-0.93889 0,-0.18471 0.015,-0.3848 0.046,-0.50793 0.1232,-0.52332 0.4618,-1.18516 0.8466,-1.70848 0.1385,-0.16931 0.3848,-0.40018 0.5233,-0.47714 0.2001,-0.12314 0.2617,-0.13853 0.5541,-0.13853 0.9389,0.10775 1.6931,0.27705 2.201,0.78498 z m 0.8773,2.49345 c 0,0.27706 -0.062,0.81576 -0.077,0.87733 -0.015,0.0308 -0.1847,0.29244 -0.3848,0.56949 l -0.3694,0.53871 -0.077,-0.0154 c -0.031,0 -0.1847,-0.0154 -0.3232,-0.0308 -0.8004,-0.0616 -1.5238,-0.21549 -2.1087,-0.44636 l -0.1385,-0.0462 0.1385,-0.15391 c 0.2771,-0.29245 0.431,-0.49254 0.7542,-0.9235 0.4464,-0.63106 1.0005,-1.27752 1.6931,-2.00093 l 0.3848,-0.40018 c 0.046,0.0616 0.077,0.13853 0.1385,0.21548 0.2309,0.46176 0.3694,1.13899 0.3694,1.81622 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.39169598px;line-height:1.25;font-family:MathJax_Script;-inkscape-font-specification:MathJax_Script;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994"
+ id="path38080"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g38084"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fe0000;fill-opacity:1;stroke:none;stroke-width:1"
+ aria-label="+"
+ transform="translate(60)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path38082"
+ style="fill:#fe0000;fill-opacity:1;stroke-width:1"
+ d="m 1106,195.36218 v 1 h -6 v -1 z"
+ sodipodi:nodetypes="ccccc" />
+ </g>
</svg>
--- a/runtime/PLCObject.py Wed Jun 30 15:44:32 2021 +0200
+++ b/runtime/PLCObject.py Thu Sep 02 21:36:29 2021 +0200
@@ -113,7 +113,9 @@
if autostart:
if self.LoadPLC():
self.StartPLC()
- return
+ else:
+ self._fail(_("Problem autostarting PLC : can't load PLC"))
+ return
except Exception:
self.PLCStatus = PlcStatus.Empty
self.CurrentPLCFilename = None
@@ -269,7 +271,12 @@
def LoadPLC(self):
res = self._LoadPLC()
if res:
- self.PythonRuntimeInit()
+ try:
+ self.PythonRuntimeInit()
+ except Exception:
+ self._loading_error = traceback.format_exc()
+ PLCprint(self._loading_error)
+ return False
else:
self._FreePLC()
@@ -680,9 +687,9 @@
if self.LoadPLC():
self.PLCStatus = PlcStatus.Stopped
+ self.StatusChange()
else:
- self.PLCStatus = PlcStatus.Broken
- self.StatusChange()
+ self._fail(_("Problem installing new PLC : can't load PLC"))
return self.PLCStatus == PlcStatus.Stopped
return False
--- a/runtime/WampClient.py Wed Jun 30 15:44:32 2021 +0200
+++ b/runtime/WampClient.py Thu Sep 02 21:36:29 2021 +0200
@@ -198,9 +198,15 @@
def GetConfiguration():
global lastKnownConfig
+ WampClientConf = None
+
if os.path.exists(_WampConf):
- WampClientConf = json.load(open(_WampConf))
- else:
+ try:
+ WampClientConf = json.load(open(_WampConf))
+ except ValueError:
+ pass
+
+ if WampClientConf is None:
WampClientConf = defaultWampConfig.copy()
for itemName in mandatoryConfigItems:
--- a/runtime/spawn_subprocess.py Wed Jun 30 15:44:32 2021 +0200
+++ b/runtime/spawn_subprocess.py Thu Sep 02 21:36:29 2021 +0200
@@ -7,6 +7,7 @@
from __future__ import absolute_import
import os
import signal
+import shlex
import posix_spawn
PIPE = "42"
@@ -104,9 +105,9 @@
cmd = []
if isinstance(args[0], str):
if len(args) == 1:
- # oversimplified splitting of arguments,
- # TODO: care about use of simple and double quotes
- cmd = args[0].split()
+ # splitting of arguments that cares about
+ # use of simple and double quotes
+ cmd = shlex.split(args[0])
else:
cmd = args
elif isinstance(args[0], list) and len(args) == 1:
--- a/setup.py Wed Jun 30 15:44:32 2021 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-"""
-Install Beremiz
-"""
-from setuptools import setup
-
-setup(
- name='beremiz',
- version='0.1',
- install_requires=["Twisted == 20.3.0", "attrs == 19.2.0", "Automat == 0.3.0",
- "zope.interface == 4.4.2", "Nevow == 0.14.5", "PyHamcrest == 2.0.2",
- "Pygments == 2.9.0", "Pyro == 3.16", "constantly == 15.1.0",
- "future == 0.18.2", "hyperlink == 21.0.0", "incremental == 21.3.0",
- "pathlib == 1.0.1", "prompt-toolkit == 3.0.19", "zeroconf-py2compat == 0.19.10",
- "idna == 2.10"]
-)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/Makefile Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,26 @@
+#! gmake
+
+# Makefile to generate XSLT stylesheets from ysl2 files in the same directory
+
+# This uses YML2.
+# hg clone https://pep.foundation/dev/repos/yml2/
+
+# It should be just fine if yml2 is cloned just asside beremiz
+# otherwise, point yml2path to yml2 source directory
+# make yml2path=path/to/yml/dir
+
+yml2path ?= $(abspath ../../yml2)
+
+ysl2files := gen_index_xhtml.ysl2 gen_dnd_widget_svg.ysl2 analyse_widget.ysl2
+ysl2includes := $(filter-out $(ysl2files), $(wildcard *.ysl2))
+xsltfiles := $(patsubst %.ysl2, %.xslt, $(ysl2files))
+
+all:$(xsltfiles)
+
+%.xslt: %.ysl2 $(ysl2includes) svghmi.js ../yslt_noindent.yml2
+ $(yml2path)/yml2c -I $(yml2path):../ $< -o $@.tmp
+ xmlstarlet fo $@.tmp > $@
+ rm $@.tmp
+
+clean:
+ rm -f $(xsltfiles)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/README Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,1 @@
+SVG HMI
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/__init__.py Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This file is part of Beremiz
+# Copyright (C) 2019: Edouard TISSERANT
+#
+# See COPYING file for copyrights details.
+
+from __future__ import absolute_import
+from svghmi.svghmi import *
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/analyse_widget.xslt Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,678 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:str="http://exslt.org/strings" xmlns:func="http://exslt.org/functions" xmlns:svg="http://www.w3.org/2000/svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" extension-element-prefixes="ns func exsl regexp str dyn" exclude-result-prefixes="ns func exsl regexp str dyn svg inkscape">
+ <xsl:output method="xml"/>
+ <xsl:variable name="indexed_hmitree" select="/.."/>
+ <xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([\d,]*)$'"/>
+ <xsl:template mode="parselabel" match="*">
+ <xsl:variable name="label" select="@inkscape:label"/>
+ <xsl:variable name="id" select="@id"/>
+ <xsl:variable name="description" select="substring-after($label,'HMI:')"/>
+ <xsl:variable name="_args" select="substring-before($description,'@')"/>
+ <xsl:variable name="args">
+ <xsl:choose>
+ <xsl:when test="$_args">
+ <xsl:value-of select="$_args"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$description"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="_type" select="substring-before($args,':')"/>
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$_type">
+ <xsl:value-of select="$_type"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$args"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$type">
+ <widget>
+ <xsl:attribute name="id">
+ <xsl:value-of select="$id"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$type"/>
+ </xsl:attribute>
+ <xsl:for-each select="str:split(substring-after($args, ':'), ':')">
+ <arg>
+ <xsl:attribute name="value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </arg>
+ </xsl:for-each>
+ <xsl:variable name="paths" select="substring-after($description,'@')"/>
+ <xsl:for-each select="str:split($paths, '@')">
+ <xsl:if test="string-length(.) > 0">
+ <path>
+ <xsl:variable name="path_match" select="regexp:match(.,$pathregex)"/>
+ <xsl:variable name="pathminmax" select="str:split($path_match[4],',')"/>
+ <xsl:variable name="path" select="$path_match[2]"/>
+ <xsl:variable name="path_accepts" select="$path_match[3]"/>
+ <xsl:variable name="pathminmaxcount" select="count($pathminmax)"/>
+ <xsl:attribute name="value">
+ <xsl:value-of select="$path"/>
+ </xsl:attribute>
+ <xsl:if test="string-length($path_accepts)">
+ <xsl:attribute name="accepts">
+ <xsl:value-of select="$path_accepts"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$pathminmaxcount = 2">
+ <xsl:attribute name="min">
+ <xsl:value-of select="$pathminmax[1]"/>
+ </xsl:attribute>
+ <xsl:attribute name="max">
+ <xsl:value-of select="$pathminmax[2]"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$pathminmaxcount = 1 or $pathminmaxcount > 2">
+ <xsl:message terminate="yes">
+ <xsl:text>Widget id:</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> label:</xsl:text>
+ <xsl:value-of select="$label"/>
+ <xsl:text> has wrong syntax of path section </xsl:text>
+ <xsl:value-of select="$pathminmax"/>
+ </xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="$indexed_hmitree">
+ <xsl:choose>
+ <xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')">
+ <xsl:attribute name="type">
+ <xsl:text>PAGE_LOCAL</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')">
+ <xsl:attribute name="type">
+ <xsl:text>HMI_LOCAL</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/>
+ <xsl:variable name="pathtype" select="local-name($item)"/>
+ <xsl:if test="$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')">
+ <xsl:message terminate="yes">
+ <xsl:text>Widget id:</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> label:</xsl:text>
+ <xsl:value-of select="$label"/>
+ <xsl:text> path section </xsl:text>
+ <xsl:value-of select="$pathminmax"/>
+ <xsl:text> use min and max on non mumeric value</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:if test="count($item) = 1">
+ <xsl:attribute name="index">
+ <xsl:value-of select="$item/@index"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$pathtype"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </path>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="svg:desc">
+ <desc>
+ <xsl:value-of select="svg:desc/text()"/>
+ </desc>
+ </xsl:if>
+ </widget>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="arg">
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="@value"/>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="path">
+ <xsl:text>@</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:if test="string-length(@min)>0 or string-length(@max)>0">
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@min"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@max"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="widget">
+ <xsl:text>HMI:</xsl:text>
+ <xsl:value-of select="@type"/>
+ <xsl:apply-templates mode="genlabel" select="arg"/>
+ <xsl:apply-templates mode="genlabel" select="path"/>
+ </xsl:template>
+ <xsl:variable name="hmi_elements" select="//svg:*[starts-with(@inkscape:label, 'HMI:')]"/>
+ <xsl:template match="widget[@type='AnimateRotation']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>AnimateRotation - DEPRECATED, do not use.
+</xsl:text>
+ <xsl:text>Doesn't follow WYSIWYG principle, and forces user to add animateTransform tag in SVG (using inkscape XML editor for exemple)
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>AnimateRotation - DEPRECATED</xsl:text>
+ </shortdesc>
+ <path name="speed" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>speed</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Back']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Back widget brings focus back to previous page in history when clicked.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Jump to previous page</xsl:text>
+ </shortdesc>
+ </xsl:template>
+ <xsl:template match="widget[@type='Button']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Button widget takes one boolean variable path, and reflect current true
+</xsl:text>
+ <xsl:text>or false value by showing "active" or "inactive" labeled element
+</xsl:text>
+ <xsl:text>respectively. Pressing and releasing button changes variable to true and
+</xsl:text>
+ <xsl:text>false respectively. Potential inconsistency caused by quick consecutive
+</xsl:text>
+ <xsl:text>presses on the button is mitigated by using a state machine that wait for
+</xsl:text>
+ <xsl:text>previous state change to be reflected on variable before applying next one.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Push button reflecting consistently given boolean variable</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_BOOL">
+ <xsl:text>Boolean variable</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularBar']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>CircularBar widget changes the end angle of a "path" labeled arc according
+</xsl:text>
+ <xsl:text>to value of the single accepted variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "min" a "max" labeled texts are provided, then they are used as
+</xsl:text>
+ <xsl:text>respective minimum and maximum value. Otherwise, value is expected to be
+</xsl:text>
+ <xsl:text>in between 0 and 100.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "value" labeled text is found, then its content is replaced by value.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Change end angle of Inkscape's arc</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>Value to display</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularSlider']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>CircularSlider - DEPRECATED, to be replaced by PathSlider
+</xsl:text>
+ <xsl:text>This widget moves "handle" labeled group along "range" labeled
+</xsl:text>
+ <xsl:text>arc, according to value of the single accepted variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "min" a "max" labeled texts are provided, or if first and second
+</xsl:text>
+ <xsl:text>argument are given, then they are used as respective minimum and maximum
+</xsl:text>
+ <xsl:text>value. Otherwise, value is expected to be in between 0 and 100.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "value" labeled text is found, then its content is replaced by value.
+</xsl:text>
+ <xsl:text>During drag, "setpoint" labeled group is moved to position defined by user
+</xsl:text>
+ <xsl:text>while "handle" reflects current value from variable.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>CircularSlider - DEPRECATED</xsl:text>
+ </shortdesc>
+ <arg name="min" count="optional" accepts="int,real">
+ <xsl:text>minimum value</xsl:text>
+ </arg>
+ <arg name="min" count="optional" accepts="int,real">
+ <xsl:text>maximum value</xsl:text>
+ </arg>
+ <path name="value" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>Value to display</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='CustomHtml']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>CustomHtml widget allows insertion of HTML code in a svg:foreignObject.
+</xsl:text>
+ <xsl:text>Widget content is replaced by foreignObject. HTML code is obtained from
+</xsl:text>
+ <xsl:text>"code" labeled text content. HTML insert position and size is given with
+</xsl:text>
+ <xsl:text>"container" labeled element.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Custom HTML insert</xsl:text>
+ </shortdesc>
+ </xsl:template>
+ <xsl:template match="widget[@type='Display']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>If Display widget is a svg:text element, then text content is replaced by
+</xsl:text>
+ <xsl:text>value of given variables, space separated.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Otherwise, if Display widget is a group containing a svg:text element
+</xsl:text>
+ <xsl:text>labelled "format", then text content is replaced by printf-like formated
+</xsl:text>
+ <xsl:text>string. In other words, if "format" labeled text is "%d %s %f", then 3
+</xsl:text>
+ <xsl:text>variables paths are expected : HMI_IN, HMI_STRING and HMI_REAL.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>In case Display widget is a svg::text element, it is also possible to give
+</xsl:text>
+ <xsl:text>format string as first argument.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Printf-like formated text display </xsl:text>
+ </shortdesc>
+ <arg name="format" count="optional" accepts="string">
+ <xsl:text>printf-like format string when not given as svg:text</xsl:text>
+ </arg>
+ <path name="fields" count="many" accepts="HMI_INT,HMI_REAL,HMI_STRING,HMI_BOOL">
+ <xsl:text>variables to be displayed</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='DropDown']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>DropDown widget let user select an entry in a list of texts, given as
+</xsl:text>
+ <xsl:text>arguments. Single variable path is index of selection.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>It needs "text" (svg:text), "box" (svg:rect), "button" (svg:*),
+</xsl:text>
+ <xsl:text>and "highlight" (svg:rect) labeled elements.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>When user clicks on "button", "text" is duplicated to display enties in the
+</xsl:text>
+ <xsl:text>limit of available space in page, and "box" is extended to contain all
+</xsl:text>
+ <xsl:text>texts. "highlight" is moved over pre-selected entry.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>When only one argument is given, and argment contains "#langs" then list of
+</xsl:text>
+ <xsl:text>texts is automatically set to the list of human-readable languages supported
+</xsl:text>
+ <xsl:text>by this HMI.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Let user select text entry in a drop-down menu</xsl:text>
+ </shortdesc>
+ <arg name="entries" count="many" accepts="string">
+ <xsl:text>drop-down menu entries</xsl:text>
+ </arg>
+ <path name="selection" accepts="HMI_INT">
+ <xsl:text>selection index</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='ForEach']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>ForEach widget is used to span a small set of widget over a larger set of
+</xsl:text>
+ <xsl:text>repeated HMI_NODEs.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Idea is somewhat similar to relative page, but it all happens inside the
+</xsl:text>
+ <xsl:text>ForEach widget, no page involved.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Together with relative Jump widgets it can be used to build a menu to reach
+</xsl:text>
+ <xsl:text>relative pages covering many identical HMI_NODES siblings.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>ForEach widget takes a HMI_CLASS name as argument and a HMI_NODE path as
+</xsl:text>
+ <xsl:text>variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Direct sub-elements can be either groups of widget to be spanned, labeled
+</xsl:text>
+ <xsl:text>"ClassName:offset", or buttons to control the spanning, labeled
+</xsl:text>
+ <xsl:text>"ClassName:+/-number".
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>span widgets over a set of repeated HMI_NODEs</xsl:text>
+ </shortdesc>
+ <arg name="class_name" accepts="string">
+ <xsl:text>HMI_CLASS name</xsl:text>
+ </arg>
+ <path name="root" accepts="HMI_NODE">
+ <xsl:text> where to find HMI_NODEs whose HMI_CLASS is class_name</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Input']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Input widget takes one variable path, and displays current value in
+</xsl:text>
+ <xsl:text>optional "value" labeled sub-element.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Click on optional "edit" labeled element opens keypad to edit value.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Operation on current value is performed when click on sub-elements with
+</xsl:text>
+ <xsl:text>label starting with '=', '+' or '-' sign. Value after sign is used as
+</xsl:text>
+ <xsl:text>operand.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Input field with predefined operation buttons</xsl:text>
+ </shortdesc>
+ <arg name="format" accepts="string">
+ <xsl:text>optional printf-like format </xsl:text>
+ </arg>
+ <path name="edit" accepts="HMI_INT, HMI_REAL, HMI_STRING">
+ <xsl:text>single variable to edit</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='JsonTable']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Send given variables as POST to http URL argument, spread returned JSON in
+</xsl:text>
+ <xsl:text>SVG sub-elements of "data" labeled element.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Documentation to be written. see svbghmi exemple.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Http POST variables, spread JSON back</xsl:text>
+ </shortdesc>
+ <arg name="url" accepts="string">
+ <xsl:text> </xsl:text>
+ </arg>
+ <path name="edit" accepts="HMI_INT, HMI_REAL, HMI_STRING">
+ <xsl:text>single variable to edit</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Jump']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Jump widget brings focus to a different page. Mandatory single argument
+</xsl:text>
+ <xsl:text>gives name of the page.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Optional single path is used as new reference when jumping to a relative
+</xsl:text>
+ <xsl:text>page, it must point to a HMI_NODE.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>"active"+"inactive" labeled elements can be provided and reflect current
+</xsl:text>
+ <xsl:text>page being shown.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>"disabled" labeled element, if provided, is shown instead of "active" or
+</xsl:text>
+ <xsl:text>"inactive" widget when pointed HMI_NODE is null.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Jump to given page</xsl:text>
+ </shortdesc>
+ <arg name="page" accepts="string">
+ <xsl:text>name of page to jump to</xsl:text>
+ </arg>
+ <path name="reference" count="optional" accepts="HMI_NODE">
+ <xsl:text>reference for relative jump</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Keypad']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Keypad - to be written
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Keypad </xsl:text>
+ </shortdesc>
+ <arg name="supported_types" accepts="string">
+ <xsl:text>keypad can input those types </xsl:text>
+ </arg>
+ </xsl:template>
+ <xsl:template match="widget[@type='List']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ </xsl:template>
+ <xsl:template match="widget[@type='Meter']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Meter widget moves the end of "needle" labeled path along "range" labeled
+</xsl:text>
+ <xsl:text>path, according to value of the single accepted variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Needle is reduced to a single segment. If "min" a "max" labeled texts
+</xsl:text>
+ <xsl:text>are provided, or if first and second argument are given, then they are used
+</xsl:text>
+ <xsl:text>as respective minimum and maximum value. Otherwise, value is expected to be
+</xsl:text>
+ <xsl:text>in between 0 and 100.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "value" labeled text is found, then its content is replaced by value.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Moves "needle" along "range"</xsl:text>
+ </shortdesc>
+ <arg name="min" count="optional" accepts="int,real">
+ <xsl:text>minimum value</xsl:text>
+ </arg>
+ <arg name="max" count="optional" accepts="int,real">
+ <xsl:text>maximum value</xsl:text>
+ </arg>
+ <path name="value" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>Value to display</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='ScrollBar']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>ScrollBar - documentation to be written
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>ScrollBar</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT">
+ <xsl:text>value</xsl:text>
+ </path>
+ <path name="range" accepts="HMI_INT">
+ <xsl:text>range</xsl:text>
+ </path>
+ <path name="visible" accepts="HMI_INT">
+ <xsl:text>visible</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Slider']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Slider - DEPRECATED - use ScrollBar or PathSlider instead
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Slider - DEPRECATED - use ScrollBar instead</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT">
+ <xsl:text>value</xsl:text>
+ </path>
+ <path name="range" accepts="HMI_INT">
+ <xsl:text>range</xsl:text>
+ </path>
+ <path name="visible" accepts="HMI_INT">
+ <xsl:text>visible</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Switch']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Switch widget hides all subelements whose label do not match given
+</xsl:text>
+ <xsl:text>variable current value representation. For exemple if given variable type
+</xsl:text>
+ <xsl:text>is HMI_INT and value is 1, then elements with label '1' will be displayed.
+</xsl:text>
+ <xsl:text>Label can have comments, so '1#some comment' would also match. If matching
+</xsl:text>
+ <xsl:text>variable of type HMI_STRING, then double quotes must be used. For exemple,
+</xsl:text>
+ <xsl:text>'"hello"' or '"hello"#another comment' match HMI_STRING 'hello'.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Show elements whose label match value.</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT,HMI_STRING">
+ <xsl:text>value to compare to labels</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='ToggleButton']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Button widget takes one boolean variable path, and reflect current true
+</xsl:text>
+ <xsl:text>or false value by showing "active" or "inactive" labeled element
+</xsl:text>
+ <xsl:text>respectively. Clicking or touching button toggles variable.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Toggle button reflecting given boolean variable</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_BOOL">
+ <xsl:text>Boolean variable</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template mode="document" match="@* | node()">
+ <xsl:copy>
+ <xsl:apply-templates mode="document" select="@* | node()"/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template mode="document" match="widget">
+ <xsl:copy>
+ <xsl:apply-templates mode="document" select="@* | node()"/>
+ <defs>
+ <xsl:apply-templates mode="widget_desc" select="."/>
+ </defs>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template match="/">
+ <xsl:variable name="widgets">
+ <xsl:apply-templates mode="parselabel" select="$hmi_elements"/>
+ </xsl:variable>
+ <xsl:variable name="widget_ns" select="exsl:node-set($widgets)"/>
+ <widgets>
+ <xsl:apply-templates mode="document" select="$widget_ns"/>
+ </widgets>
+ </xsl:template>
+</xsl:stylesheet>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/analyse_widget.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,49 @@
+include yslt_noindent.yml2
+
+in xsl decl widget_desc(%name, match="widget[@type='%name']", mode="widget_desc") alias template {
+ type > «@type»
+ content;
+};
+
+decl nothing alias - ;
+decl widget_class(%name) alias - {nothing};
+decl widget_defs(%name) alias - {nothing};
+decl widget_page(%name) alias - {nothing};
+decl gen_index_xhtml alias - {nothing};
+decl emit(*name) alias - {nothing};
+
+istylesheet
+ /* From Inkscape */
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+
+ extension-element-prefixes="ns func exsl regexp str dyn"
+ exclude-result-prefixes="ns func exsl regexp str dyn svg inkscape" {
+
+ const "indexed_hmitree", "/.."; // compatibility with parse_labels.ysl2
+ include parse_labels.ysl2
+
+ const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]";
+
+ include widget_*.ysl2
+
+ template "@* | node()", mode="document" {
+ xsl:copy apply "@* | node()", mode="document";
+ }
+
+ template "widget", mode="document" {
+ xsl:copy {
+ apply "@* | node()", mode="document";
+ defs apply ".", mode="widget_desc";
+ }
+ }
+
+ template "/" {
+ const "widgets"
+ apply "$hmi_elements", mode="parselabel";
+ const "widget_ns", "exsl:node-set($widgets)";
+ widgets
+ apply "$widget_ns", mode="document";
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/default.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ 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"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="default.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280">
+ <rect
+ inkscape:label="HMI:Page:Home"
+ y="0"
+ x="0"
+ height="720"
+ width="1280"
+ id="rect1016"
+ style="color:#000000;opacity:1;fill:#d6d6d6;fill-opacity:1" />
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/detachable_pages.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,225 @@
+// detachable_pages.ysl2
+//
+// compute what elements are required by pages
+// and decide where to cut when removing/attaching
+// pages elements on page switch
+
+const "hmi_pages_descs", "$parsed_widgets/widget[@type = 'Page']";
+const "hmi_pages", "$hmi_elements[@id = $hmi_pages_descs/@id]";
+
+const "default_page" choose {
+ when "count($hmi_pages) > 1" {
+ choose {
+ when "$hmi_pages_descs/arg[1]/@value = 'Home'" > Home
+ otherwise {
+ error > No Home page defined!
+ }
+ }
+ }
+ when "count($hmi_pages) = 0" {
+ error > No page defined!
+ }
+ otherwise > «func:widget($hmi_pages/@id)/arg[1]/@value»
+}
+
+emit "preamble:default-page" {
+ |
+ | var default_page = "«$default_page»";
+}
+
+const "keypads_descs", "$parsed_widgets/widget[@type = 'Keypad']";
+const "keypads", "$hmi_elements[@id = $keypads_descs/@id]";
+
+// returns all directly or indirectly refered elements
+def "func:refered_elements" {
+ param "elems";
+ const "descend", "$elems/descendant-or-self::svg:*";
+ const "clones", "$descend[self::svg:use]";
+ const "originals", "//svg:*[concat('#',@id) = $clones/@xlink:href]";
+ choose {
+ when "$originals"
+ result "$descend | func:refered_elements($originals)";
+ otherwise
+ result "$descend";
+ }
+}
+
+// variable "overlapping_geometry" was added for optimization.
+// It avoids calling func:overlapping_geometry 3 times for each page
+// (apparently libxml doesn't cache exslt function results)
+// in order to optimize further, func:overlapping_geometry
+// should be implemented in python or even C,
+// as this is still the main bottleneck here
+const "_overlapping_geometry" {
+ foreach "$hmi_pages | $keypads" {
+ const "k", "concat('overlapping:', @id)";
+ value "ns:ProgressStart($k, concat('collecting membership of ', @inkscape:label))";
+ elt {
+ attrib "id" > «@id»
+ copy "func:overlapping_geometry(.)";
+ }
+ value "ns:ProgressEnd($k)";
+ }
+}
+
+const "overlapping_geometry", "exsl:node-set($_overlapping_geometry)";
+
+def "func:all_related_elements" {
+ param "page";
+ const "page_overlapping_geometry", "$overlapping_geometry/elt[@id = $page/@id]/*";
+ const "page_overlapping_elements", "//svg:*[@id = $page_overlapping_geometry/@Id]";
+ const "page_sub_elements", "func:refered_elements($page | $page_overlapping_elements)";
+ result "$page_sub_elements";
+}
+
+
+def "func:required_elements" {
+ param "pages";
+ choose{
+ when "$pages"{
+ result """func:all_related_elements($pages[1])
+ | func:required_elements($pages[position()!=1])""";
+ }otherwise{
+ result "/..";
+ }
+ }
+}
+
+const "required_page_elements",
+ "func:required_elements($hmi_pages | $keypads)/ancestor-or-self::svg:*";
+
+const "hmi_lists_descs", "$parsed_widgets/widget[@type = 'List']";
+const "hmi_lists", "$hmi_elements[@id = $hmi_lists_descs/@id]";
+
+const "required_list_elements", "func:refered_elements($hmi_lists[@id = $required_page_elements/@id])";
+
+const "required_elements", "$defs | $required_list_elements | $required_page_elements";
+
+const "discardable_elements", "//svg:*[not(@id = $required_elements/@id)]";
+
+def "func:sumarized_elements" {
+ param "elements";
+ const "short_list", "$elements[not(ancestor::*/@id = $elements/@id)]";
+ const "filled_groups", """$short_list/parent::*[
+ not(child::*[
+ not(@id = $discardable_elements/@id) and
+ not(@id = $short_list/@id)
+ ])]""";
+ const "groups_to_add", "$filled_groups[not(ancestor::*/@id = $filled_groups/@id)]";
+ result "$groups_to_add | $short_list[not(ancestor::*/@id = $filled_groups/@id)]";
+}
+
+def "func:detachable_elements" {
+ param "pages";
+ choose{
+ when "$pages"{
+ result """func:sumarized_elements(func:all_related_elements($pages[1]))
+ | func:detachable_elements($pages[position()!=1])""";
+ }otherwise{
+ result "/..";
+ }
+ }
+}
+
+// Avoid nested detachables
+const "_detachable_elements", "func:detachable_elements($hmi_pages | $keypads)";
+const "detachable_elements", "$_detachable_elements[not(ancestor::*/@id = $_detachable_elements/@id)]";
+
+emit "declarations:detachable-elements" {
+ |
+ | var detachable_elements = {
+ foreach "$detachable_elements"{
+ | "«@id»":[id("«@id»"), id("«../@id»")]`if "position()!=last()" > ,`
+ }
+ | }
+}
+
+const "forEach_widgets_ids", "$parsed_widgets/widget[@type = 'ForEach']/@id";
+const "forEach_widgets", "$hmi_widgets[@id = $forEach_widgets_ids]";
+const "in_forEach_widget_ids", "func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]/@id";
+
+template "svg:*", mode="page_desc" {
+ if "ancestor::*[@id = $hmi_pages/@id]" error > HMI:Page «@id» is nested in another HMI:Page
+
+
+ const "desc", "func:widget(@id)";
+ const "pagename", "$desc/arg[1]/@value";
+ const "msg", "concat('generating page description ', $pagename)";
+ value "ns:ProgressStart($pagename, $msg)";
+ const "page", ".";
+ const "p", "$geometry[@Id = $page/@id]";
+
+ const "page_all_elements", "func:all_related_elements($page)";
+
+ const "all_page_widgets","$hmi_widgets[@id = $page_all_elements/@id and @id != $page/@id]";
+ const "page_managed_widgets","$all_page_widgets[not(@id=$in_forEach_widget_ids)]";
+ const "page_relative_widgets",
+ "$page_managed_widgets[func:is_descendant_path(func:widget(@id)/path/@value, $desc/path/@value)]";
+
+ // Take closest ancestor in detachable_elements
+ // since nested detachable elements are filtered out
+ const "sumarized_page",
+ """func:sumarized_elements($page_all_elements)""";
+
+ const "required_detachables",
+ """$sumarized_page/
+ ancestor-or-self::*[@id = $detachable_elements/@id]""";
+
+ | "«$pagename»": {
+ //| widget: hmi_widgets["«@id»"],
+ | bbox: [«$p/@x», «$p/@y», «$p/@w», «$p/@h»],
+ if "$desc/path/@value" {
+ if "count($desc/path/@index)=0"
+ warning > Page id="«$page/@id»" : No match for path "«$desc/path/@value»" in HMI tree
+ | page_index: «$desc/path/@index»,
+ }
+ | widgets: [
+ foreach "$page_managed_widgets" {
+ const "widget_paths_relativeness"
+ foreach "func:widget(@id)/path" {
+ value "func:is_descendant_path(@value, $desc/path/@value)";
+ if "position()!=last()" > ,
+ }
+ | [hmi_widgets["«@id»"], [«$widget_paths_relativeness»]]`if "position()!=last()" > ,`
+ }
+ | ],
+ | jumps: [
+ foreach "$parsed_widgets/widget[@id = $all_page_widgets/@id and @type='Jump']" {
+ | hmi_widgets["«@id»"]`if "position()!=last()" > ,`
+ }
+ | ],
+ | required_detachables: {
+ foreach "$required_detachables" {
+ | "«@id»": detachable_elements["«@id»"]`if "position()!=last()" > ,`
+ }
+ | }
+ apply "$parsed_widgets/widget[@id = $all_page_widgets/@id]", mode="widget_page"{
+ with "page_desc", "$desc";
+ }
+ | }`if "position()!=last()" > ,`
+ value "ns:ProgressEnd($pagename)";
+}
+
+emit "definitions:page-desc" {
+ |
+ | var page_desc = {
+ apply "$hmi_pages", mode="page_desc";
+ | }
+}
+
+template "*", mode="widget_page";
+
+
+emit "debug:detachable-pages" {
+ |
+ | DETACHABLES:
+ foreach "$detachable_elements"{
+ | «@id»
+ }
+ | In Foreach:
+ foreach "$in_forEach_widget_ids"{
+ | «.»
+ }
+ | Overlapping
+ apply "$overlapping_geometry", mode="testtree";
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/fonts.py Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This file is part of Beremiz
+# Copyright (C) 2021: Edouard TISSERANT
+#
+# See COPYING file for copyrights details.
+
+from __future__ import print_function
+import sys
+from base64 import b64encode
+
+from fontTools import ttLib
+
+# Inkscape seems to refer to font with different family name depending on platform.
+# this are heuristics that would need extensive testing to be sure.
+FamilyNameIDs = [1] if sys.platform.startswith('win') else [1, 16]
+
+def GetFontTypeAndFamilyName(filename):
+ """
+ Getting font family, format and MIME type
+ """
+
+ familyname = None
+ uniquename = None
+ formatname = None
+ mimetype = None
+
+ font = ttLib.TTFont(filename)
+ # https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html
+ for name in font["name"].names:
+ #print(name.nameID, name.platformID, name.langID, name.toUnicode())
+ if name.nameID in FamilyNameIDs and name.platformID==3 and name.langID==1033:
+ familyname = name.toUnicode()
+ if name.nameID==4 and name.platformID==3 and name.langID==1033:
+ uniquename = name.toUnicode()
+
+ if font.flavor :
+ # woff and woff2
+ formatname = font.flavor
+ mimetype = "font/" + formatname
+ # conditions on sfntVersion was deduced from fontTools.ttLib.sfnt
+ elif font.sfntVersion in ("\x00\x01\x00\x00", "true"):
+ formatname = "truetype"
+ mimetype = "font/ttf"
+ elif font.sfntVersion == "OTTO":
+ formatname = "opentype"
+ mimetype = "font/otf"
+
+ return familyname,uniquename,formatname,mimetype
+
+def DataURIFromFile(filename, mimetype):
+ with open(filename, "rb") as fp:
+ data = fp.read()
+ return "".join([
+ "data:",
+ mimetype,
+ ";base64,",
+ b64encode(data).strip()])
+
+def GetCSSFontFaceFromFontFile(filename):
+ familyname, uniquename, formatname, mimetype = GetFontTypeAndFamilyName(filename)
+ data_uri = DataURIFromFile(filename, mimetype)
+ css_font_face = \
+ """
+ @font-face {{
+ font-family: "{}";
+ src: url("{}") format("{}")
+ }}
+ """.format(familyname, data_uri, formatname)
+ return css_font_face
+
+
+# tests
+if __name__ == '__main__':
+ print(GetCSSFontFaceFromFontFile("/usr/share/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf"))
+ print(GetCSSFontFaceFromFontFile("/usr/share/fonts/opentype/urw-base35/NimbusSans-Regular.otf"))
+ print(GetCSSFontFaceFromFontFile("/usr/share/yelp/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff"))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/gen_dnd_widget_svg.xslt Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,214 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:str="http://exslt.org/strings" xmlns:func="http://exslt.org/functions" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:ns="beremiz" version="1.0" extension-element-prefixes="ns func exsl regexp str dyn" exclude-result-prefixes="ns func exsl regexp str dyn">
+ <xsl:output method="xml"/>
+ <xsl:variable name="hmi_elements" select="//svg:*[starts-with(@inkscape:label, 'HMI:')]"/>
+ <xsl:variable name="widgetparams" select="ns:GetWidgetParams()"/>
+ <xsl:variable name="indexed_hmitree" select="/.."/>
+ <xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([\d,]*)$'"/>
+ <xsl:template mode="parselabel" match="*">
+ <xsl:variable name="label" select="@inkscape:label"/>
+ <xsl:variable name="id" select="@id"/>
+ <xsl:variable name="description" select="substring-after($label,'HMI:')"/>
+ <xsl:variable name="_args" select="substring-before($description,'@')"/>
+ <xsl:variable name="args">
+ <xsl:choose>
+ <xsl:when test="$_args">
+ <xsl:value-of select="$_args"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$description"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="_type" select="substring-before($args,':')"/>
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$_type">
+ <xsl:value-of select="$_type"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$args"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$type">
+ <widget>
+ <xsl:attribute name="id">
+ <xsl:value-of select="$id"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$type"/>
+ </xsl:attribute>
+ <xsl:for-each select="str:split(substring-after($args, ':'), ':')">
+ <arg>
+ <xsl:attribute name="value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </arg>
+ </xsl:for-each>
+ <xsl:variable name="paths" select="substring-after($description,'@')"/>
+ <xsl:for-each select="str:split($paths, '@')">
+ <xsl:if test="string-length(.) > 0">
+ <path>
+ <xsl:variable name="path_match" select="regexp:match(.,$pathregex)"/>
+ <xsl:variable name="pathminmax" select="str:split($path_match[4],',')"/>
+ <xsl:variable name="path" select="$path_match[2]"/>
+ <xsl:variable name="path_accepts" select="$path_match[3]"/>
+ <xsl:variable name="pathminmaxcount" select="count($pathminmax)"/>
+ <xsl:attribute name="value">
+ <xsl:value-of select="$path"/>
+ </xsl:attribute>
+ <xsl:if test="string-length($path_accepts)">
+ <xsl:attribute name="accepts">
+ <xsl:value-of select="$path_accepts"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$pathminmaxcount = 2">
+ <xsl:attribute name="min">
+ <xsl:value-of select="$pathminmax[1]"/>
+ </xsl:attribute>
+ <xsl:attribute name="max">
+ <xsl:value-of select="$pathminmax[2]"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$pathminmaxcount = 1 or $pathminmaxcount > 2">
+ <xsl:message terminate="yes">
+ <xsl:text>Widget id:</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> label:</xsl:text>
+ <xsl:value-of select="$label"/>
+ <xsl:text> has wrong syntax of path section </xsl:text>
+ <xsl:value-of select="$pathminmax"/>
+ </xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="$indexed_hmitree">
+ <xsl:choose>
+ <xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')">
+ <xsl:attribute name="type">
+ <xsl:text>PAGE_LOCAL</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')">
+ <xsl:attribute name="type">
+ <xsl:text>HMI_LOCAL</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/>
+ <xsl:variable name="pathtype" select="local-name($item)"/>
+ <xsl:if test="$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')">
+ <xsl:message terminate="yes">
+ <xsl:text>Widget id:</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> label:</xsl:text>
+ <xsl:value-of select="$label"/>
+ <xsl:text> path section </xsl:text>
+ <xsl:value-of select="$pathminmax"/>
+ <xsl:text> use min and max on non mumeric value</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:if test="count($item) = 1">
+ <xsl:attribute name="index">
+ <xsl:value-of select="$item/@index"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$pathtype"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </path>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="svg:desc">
+ <desc>
+ <xsl:value-of select="svg:desc/text()"/>
+ </desc>
+ </xsl:if>
+ </widget>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="arg">
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="@value"/>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="path">
+ <xsl:text>@</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:if test="string-length(@min)>0 or string-length(@max)>0">
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@min"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@max"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="widget">
+ <xsl:text>HMI:</xsl:text>
+ <xsl:value-of select="@type"/>
+ <xsl:apply-templates mode="genlabel" select="arg"/>
+ <xsl:apply-templates mode="genlabel" select="path"/>
+ </xsl:template>
+ <xsl:variable name="_parsed_widgets">
+ <xsl:apply-templates mode="parselabel" select="$hmi_elements"/>
+ </xsl:variable>
+ <xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/>
+ <xsl:variable name="svg_widget" select="$parsed_widgets/widget[1]"/>
+ <xsl:variable name="svg_widget_type" select="$svg_widget/@type"/>
+ <xsl:variable name="svg_widget_path" select="$svg_widget/@path"/>
+ <xsl:variable name="svg_widget_count" select="count($parsed_widgets/widget)"/>
+ <xsl:template mode="replace_params" match="@* | node()">
+ <xsl:copy>
+ <xsl:apply-templates mode="replace_params" select="@* | node()"/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template mode="replace_params" match="arg"/>
+ <xsl:template mode="replace_params" match="path"/>
+ <xsl:template mode="replace_params" match="widget">
+ <xsl:copy>
+ <xsl:apply-templates mode="replace_params" select="@* | node()"/>
+ <xsl:copy-of select="$widgetparams/*"/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@*">
+ <xsl:copy/>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@inkscape:label[starts-with(., 'HMI:')]"/>
+ <xsl:template mode="inline_svg" match="node()">
+ <xsl:copy>
+ <xsl:if test="@id = $svg_widget/@id">
+ <xsl:variable name="substituted_widget">
+ <xsl:apply-templates mode="replace_params" select="$svg_widget"/>
+ </xsl:variable>
+ <xsl:variable name="substituted_widget_ns" select="exsl:node-set($substituted_widget)"/>
+ <xsl:variable name="new_label">
+ <xsl:apply-templates mode="genlabel" select="$substituted_widget_ns"/>
+ </xsl:variable>
+ <xsl:attribute name="inkscape:label">
+ <xsl:value-of select="$new_label"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="inline_svg" select="@* | node()"/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template match="/">
+ <xsl:comment>
+ <xsl:text>Widget dropped in Inkscape from Beremiz</xsl:text>
+ </xsl:comment>
+ <xsl:choose>
+ <xsl:when test="$svg_widget_count < 1">
+ <xsl:message terminate="yes">
+ <xsl:text>No widget detected on selected SVG</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:when test="$svg_widget_count > 1">
+ <xsl:message terminate="yes">
+ <xsl:text>Multiple widget DnD not yet supported</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates mode="inline_svg" select="/"/>
+ </xsl:template>
+</xsl:stylesheet>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/gen_dnd_widget_svg.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,79 @@
+include yslt_noindent.yml2
+
+in xsl decl svgtmpl(match, xmlns="http://www.w3.org/2000/svg") alias template;
+
+istylesheet
+ /* From Inkscape */
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+
+ /* Namespace to invoke python code */
+ xmlns:ns="beremiz"
+
+ extension-element-prefixes="ns func exsl regexp str dyn"
+ exclude-result-prefixes="ns func exsl regexp str dyn" {
+
+ const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]";
+ const "widgetparams", "ns:GetWidgetParams()";
+
+ const "indexed_hmitree", "/.."; // compatibility with parse_labels.ysl2
+ include parse_labels.ysl2
+ const "_parsed_widgets" apply "$hmi_elements", mode="parselabel";
+ const "parsed_widgets","exsl:node-set($_parsed_widgets)";
+
+ const "svg_widget", "$parsed_widgets/widget[1]";
+ const "svg_widget_type", "$svg_widget/@type";
+ const "svg_widget_path", "$svg_widget/@path";
+ const "svg_widget_count", "count($parsed_widgets/widget)";
+
+ // Templates to change label paths(s)
+ template "@* | node()", mode="replace_params" {
+ xsl:copy apply "@* | node()", mode="replace_params";
+ }
+
+ template "arg", mode="replace_params";
+ template "path", mode="replace_params";
+ template "widget", mode="replace_params" {
+ xsl:copy {
+ apply "@* | node()", mode="replace_params";
+ copy "$widgetparams/*";
+ };
+ }
+
+ // all attribs are usually copied
+ svgtmpl "@*", mode="inline_svg" xsl:copy;
+
+ // except labels, ignored
+ svgtmpl "@inkscape:label[starts-with(., 'HMI:')]", mode="inline_svg";
+
+ template "node()", mode="inline_svg" xsl:copy {
+
+ // in case this node widget's main element inject label
+ if "@id = $svg_widget/@id" {
+ const "substituted_widget" apply "$svg_widget", mode="replace_params";
+ const "substituted_widget_ns", "exsl:node-set($substituted_widget)";
+ const "new_label" apply "$substituted_widget_ns", mode="genlabel";
+ attrib "inkscape:label" > «$new_label»
+ }
+ // all nodes are copied as well
+ apply "@* | node()", mode="inline_svg";
+ }
+
+ template "/" {
+ comment > Widget dropped in Inkscape from Beremiz
+
+ choose {
+ when "$svg_widget_count < 1"
+ error > No widget detected on selected SVG
+ when "$svg_widget_count > 1"
+ error > Multiple widget DnD not yet supported
+ }
+
+ apply "/", mode="inline_svg";
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/gen_index_xhtml.xslt Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,8567 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:str="http://exslt.org/strings" xmlns:func="http://exslt.org/functions" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:debug="debug" xmlns:preamble="preamble" xmlns:declarations="declarations" xmlns:definitions="definitions" xmlns:epilogue="epilogue" xmlns:ns="beremiz" version="1.0" extension-element-prefixes="ns func exsl regexp str dyn" exclude-result-prefixes="ns func exsl regexp str dyn debug preamble epilogue declarations definitions">
+ <xsl:output cdata-section-elements="xhtml:script" method="xml"/>
+ <xsl:variable name="svg" select="/svg:svg"/>
+ <xsl:variable name="hmi_elements" select="//svg:*[starts-with(@inkscape:label, 'HMI:')]"/>
+ <xsl:variable name="hmitree" select="ns:GetHMITree()"/>
+ <xsl:variable name="_categories">
+ <noindex>
+ <xsl:text>HMI_PLC_STATUS</xsl:text>
+ </noindex>
+ <noindex>
+ <xsl:text>HMI_CURRENT_PAGE</xsl:text>
+ </noindex>
+ </xsl:variable>
+ <xsl:variable name="categories" select="exsl:node-set($_categories)"/>
+ <xsl:variable name="_indexed_hmitree">
+ <xsl:apply-templates mode="index" select="$hmitree"/>
+ </xsl:variable>
+ <xsl:variable name="indexed_hmitree" select="exsl:node-set($_indexed_hmitree)"/>
+ <preamble:hmi-tree/>
+ <xsl:template match="preamble:hmi-tree">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var hmi_hash = [</xsl:text>
+ <xsl:value-of select="$hmitree/@hash"/>
+ <xsl:text>];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var heartbeat_index = </xsl:text>
+ <xsl:value-of select="$indexed_hmitree/*[@hmipath = '/HEARTBEAT']/@index"/>
+ <xsl:text>;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var hmitree_types = [
+</xsl:text>
+ <xsl:for-each select="$indexed_hmitree/*">
+ <xsl:text> /* </xsl:text>
+ <xsl:value-of select="@index"/>
+ <xsl:text> */ "</xsl:text>
+ <xsl:value-of select="substring(local-name(), 5)"/>
+ <xsl:text>"</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var hmitree_paths = [
+</xsl:text>
+ <xsl:for-each select="$indexed_hmitree/*">
+ <xsl:text> /* </xsl:text>
+ <xsl:value-of select="@index"/>
+ <xsl:text> */ "</xsl:text>
+ <xsl:value-of select="@hmipath"/>
+ <xsl:text>"</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="index" match="*">
+ <xsl:param name="index" select="0"/>
+ <xsl:param name="parentpath" select="''"/>
+ <xsl:variable name="content">
+ <xsl:variable name="path">
+ <xsl:choose>
+ <xsl:when test="count(ancestor::*)=0">
+ <xsl:text>/</xsl:text>
+ </xsl:when>
+ <xsl:when test="count(ancestor::*)=1">
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$parentpath"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not(local-name() = $categories/noindex)">
+ <xsl:copy>
+ <xsl:attribute name="index">
+ <xsl:value-of select="$index"/>
+ </xsl:attribute>
+ <xsl:attribute name="hmipath">
+ <xsl:value-of select="$path"/>
+ </xsl:attribute>
+ <xsl:for-each select="@*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:copy>
+ <xsl:apply-templates mode="index" select="*[1]">
+ <xsl:with-param name="index" select="$index + 1"/>
+ <xsl:with-param name="parentpath">
+ <xsl:value-of select="$path"/>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="index" select="*[1]">
+ <xsl:with-param name="index" select="$index"/>
+ <xsl:with-param name="parentpath">
+ <xsl:value-of select="$path"/>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:copy-of select="$content"/>
+ <xsl:apply-templates mode="index" select="following-sibling::*[1]">
+ <xsl:with-param name="index" select="$index + count(exsl:node-set($content)/*)"/>
+ <xsl:with-param name="parentpath">
+ <xsl:value-of select="$parentpath"/>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([\d,]*)$'"/>
+ <xsl:template mode="parselabel" match="*">
+ <xsl:variable name="label" select="@inkscape:label"/>
+ <xsl:variable name="id" select="@id"/>
+ <xsl:variable name="description" select="substring-after($label,'HMI:')"/>
+ <xsl:variable name="_args" select="substring-before($description,'@')"/>
+ <xsl:variable name="args">
+ <xsl:choose>
+ <xsl:when test="$_args">
+ <xsl:value-of select="$_args"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$description"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="_type" select="substring-before($args,':')"/>
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$_type">
+ <xsl:value-of select="$_type"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$args"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$type">
+ <widget>
+ <xsl:attribute name="id">
+ <xsl:value-of select="$id"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$type"/>
+ </xsl:attribute>
+ <xsl:for-each select="str:split(substring-after($args, ':'), ':')">
+ <arg>
+ <xsl:attribute name="value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </arg>
+ </xsl:for-each>
+ <xsl:variable name="paths" select="substring-after($description,'@')"/>
+ <xsl:for-each select="str:split($paths, '@')">
+ <xsl:if test="string-length(.) > 0">
+ <path>
+ <xsl:variable name="path_match" select="regexp:match(.,$pathregex)"/>
+ <xsl:variable name="pathminmax" select="str:split($path_match[4],',')"/>
+ <xsl:variable name="path" select="$path_match[2]"/>
+ <xsl:variable name="path_accepts" select="$path_match[3]"/>
+ <xsl:variable name="pathminmaxcount" select="count($pathminmax)"/>
+ <xsl:attribute name="value">
+ <xsl:value-of select="$path"/>
+ </xsl:attribute>
+ <xsl:if test="string-length($path_accepts)">
+ <xsl:attribute name="accepts">
+ <xsl:value-of select="$path_accepts"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$pathminmaxcount = 2">
+ <xsl:attribute name="min">
+ <xsl:value-of select="$pathminmax[1]"/>
+ </xsl:attribute>
+ <xsl:attribute name="max">
+ <xsl:value-of select="$pathminmax[2]"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$pathminmaxcount = 1 or $pathminmaxcount > 2">
+ <xsl:message terminate="yes">
+ <xsl:text>Widget id:</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> label:</xsl:text>
+ <xsl:value-of select="$label"/>
+ <xsl:text> has wrong syntax of path section </xsl:text>
+ <xsl:value-of select="$pathminmax"/>
+ </xsl:message>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="$indexed_hmitree">
+ <xsl:choose>
+ <xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')">
+ <xsl:attribute name="type">
+ <xsl:text>PAGE_LOCAL</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')">
+ <xsl:attribute name="type">
+ <xsl:text>HMI_LOCAL</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/>
+ <xsl:variable name="pathtype" select="local-name($item)"/>
+ <xsl:if test="$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')">
+ <xsl:message terminate="yes">
+ <xsl:text>Widget id:</xsl:text>
+ <xsl:value-of select="$id"/>
+ <xsl:text> label:</xsl:text>
+ <xsl:value-of select="$label"/>
+ <xsl:text> path section </xsl:text>
+ <xsl:value-of select="$pathminmax"/>
+ <xsl:text> use min and max on non mumeric value</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:if test="count($item) = 1">
+ <xsl:attribute name="index">
+ <xsl:value-of select="$item/@index"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$pathtype"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </path>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="svg:desc">
+ <desc>
+ <xsl:value-of select="svg:desc/text()"/>
+ </desc>
+ </xsl:if>
+ </widget>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="arg">
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="@value"/>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="path">
+ <xsl:text>@</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:if test="string-length(@min)>0 or string-length(@max)>0">
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@min"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@max"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="genlabel" match="widget">
+ <xsl:text>HMI:</xsl:text>
+ <xsl:value-of select="@type"/>
+ <xsl:apply-templates mode="genlabel" select="arg"/>
+ <xsl:apply-templates mode="genlabel" select="path"/>
+ </xsl:template>
+ <xsl:variable name="_parsed_widgets">
+ <widget type="VarInitPersistent">
+ <arg value="0"/>
+ <path value="lang"/>
+ </widget>
+ <xsl:apply-templates mode="parselabel" select="$hmi_elements"/>
+ </xsl:variable>
+ <xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/>
+ <func:function name="func:widget">
+ <xsl:param name="id"/>
+ <func:result select="$parsed_widgets/widget[@id = $id]"/>
+ </func:function>
+ <func:function name="func:is_descendant_path">
+ <xsl:param name="descend"/>
+ <xsl:param name="ancest"/>
+ <func:result select="string-length($ancest) > 0 and starts-with($descend,$ancest)"/>
+ </func:function>
+ <func:function name="func:same_class_paths">
+ <xsl:param name="a"/>
+ <xsl:param name="b"/>
+ <xsl:variable name="class_a" select="$indexed_hmitree/*[@hmipath = $a]/@class"/>
+ <xsl:variable name="class_b" select="$indexed_hmitree/*[@hmipath = $b]/@class"/>
+ <func:result select="$class_a and $class_b and $class_a = $class_b"/>
+ </func:function>
+ <xsl:template mode="testtree" match="*">
+ <xsl:param name="indent" select="''"/>
+ <xsl:value-of select="$indent"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> </xsl:text>
+ <xsl:for-each select="@*">
+ <xsl:value-of select="local-name()"/>
+ <xsl:text>="</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>" </xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+</xsl:text>
+ <xsl:apply-templates mode="testtree" select="*">
+ <xsl:with-param name="indent">
+ <xsl:value-of select="concat($indent,'>')"/>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:template>
+ <debug:hmi-tree/>
+ <xsl:template match="debug:hmi-tree">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Raw HMI tree
+</xsl:text>
+ <xsl:apply-templates mode="testtree" select="$hmitree"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Indexed HMI tree
+</xsl:text>
+ <xsl:apply-templates mode="testtree" select="$indexed_hmitree"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Parsed Widgets
+</xsl:text>
+ <xsl:copy-of select="_parsed_widgets"/>
+ <xsl:apply-templates mode="testtree" select="$parsed_widgets"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:variable name="all_geometry" select="ns:GetSVGGeometry()"/>
+ <xsl:variable name="defs" select="//svg:defs/descendant-or-self::svg:*"/>
+ <xsl:variable name="geometry" select="$all_geometry[not(@Id = $defs/@id)]"/>
+ <debug:geometry/>
+ <xsl:template match="debug:geometry">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>ID, x, y, w, h
+</xsl:text>
+ <xsl:for-each select="$geometry">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@Id"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@x"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@y"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@w"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@h"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <func:function name="func:intersect_1d">
+ <xsl:param name="a0"/>
+ <xsl:param name="a1"/>
+ <xsl:param name="b0"/>
+ <xsl:param name="b1"/>
+ <xsl:variable name="d0" select="$a0 >= $b0"/>
+ <xsl:variable name="d1" select="$a1 >= $b1"/>
+ <xsl:choose>
+ <xsl:when test="not($d0) and $d1">
+ <func:result select="3"/>
+ </xsl:when>
+ <xsl:when test="$d0 and not($d1)">
+ <func:result select="2"/>
+ </xsl:when>
+ <xsl:when test="$d0 and $d1 and $a0 < $b1">
+ <func:result select="1"/>
+ </xsl:when>
+ <xsl:when test="not($d0) and not($d1) and $b0 < $a1">
+ <func:result select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <func:result select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </func:function>
+ <func:function name="func:intersect">
+ <xsl:param name="a"/>
+ <xsl:param name="b"/>
+ <xsl:variable name="x_intersect" select="func:intersect_1d($a/@x, $a/@x+$a/@w, $b/@x, $b/@x+$b/@w)"/>
+ <xsl:choose>
+ <xsl:when test="$x_intersect != 0">
+ <xsl:variable name="y_intersect" select="func:intersect_1d($a/@y, $a/@y+$a/@h, $b/@y, $b/@y+$b/@h)"/>
+ <func:result select="$x_intersect * $y_intersect"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <func:result select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </func:function>
+ <xsl:variable name="groups" select="/svg:svg | //svg:g"/>
+ <func:function name="func:overlapping_geometry">
+ <xsl:param name="elt"/>
+ <xsl:variable name="g" select="$geometry[@Id = $elt/@id]"/>
+ <xsl:variable name="candidates" select="$geometry[@Id != $elt/@id]"/>
+ <func:result select="$candidates[(@Id = $groups/@id and (func:intersect($g, .) = 9)) or (not(@Id = $groups/@id) and (func:intersect($g, .) > 0 ))]"/>
+ </func:function>
+ <xsl:variable name="hmi_pages_descs" select="$parsed_widgets/widget[@type = 'Page']"/>
+ <xsl:variable name="hmi_pages" select="$hmi_elements[@id = $hmi_pages_descs/@id]"/>
+ <xsl:variable name="default_page">
+ <xsl:choose>
+ <xsl:when test="count($hmi_pages) > 1">
+ <xsl:choose>
+ <xsl:when test="$hmi_pages_descs/arg[1]/@value = 'Home'">
+ <xsl:text>Home</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>No Home page defined!</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="count($hmi_pages) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>No page defined!</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="func:widget($hmi_pages/@id)/arg[1]/@value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <preamble:default-page/>
+ <xsl:template match="preamble:default-page">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var default_page = "</xsl:text>
+ <xsl:value-of select="$default_page"/>
+ <xsl:text>";
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:variable name="keypads_descs" select="$parsed_widgets/widget[@type = 'Keypad']"/>
+ <xsl:variable name="keypads" select="$hmi_elements[@id = $keypads_descs/@id]"/>
+ <func:function name="func:refered_elements">
+ <xsl:param name="elems"/>
+ <xsl:variable name="descend" select="$elems/descendant-or-self::svg:*"/>
+ <xsl:variable name="clones" select="$descend[self::svg:use]"/>
+ <xsl:variable name="originals" select="//svg:*[concat('#',@id) = $clones/@xlink:href]"/>
+ <xsl:choose>
+ <xsl:when test="$originals">
+ <func:result select="$descend | func:refered_elements($originals)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <func:result select="$descend"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </func:function>
+ <xsl:variable name="_overlapping_geometry">
+ <xsl:for-each select="$hmi_pages | $keypads">
+ <xsl:variable name="k" select="concat('overlapping:', @id)"/>
+ <xsl:value-of select="ns:ProgressStart($k, concat('collecting membership of ', @inkscape:label))"/>
+ <elt>
+ <xsl:attribute name="id">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ <xsl:copy-of select="func:overlapping_geometry(.)"/>
+ </elt>
+ <xsl:value-of select="ns:ProgressEnd($k)"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="overlapping_geometry" select="exsl:node-set($_overlapping_geometry)"/>
+ <func:function name="func:all_related_elements">
+ <xsl:param name="page"/>
+ <xsl:variable name="page_overlapping_geometry" select="$overlapping_geometry/elt[@id = $page/@id]/*"/>
+ <xsl:variable name="page_overlapping_elements" select="//svg:*[@id = $page_overlapping_geometry/@Id]"/>
+ <xsl:variable name="page_sub_elements" select="func:refered_elements($page | $page_overlapping_elements)"/>
+ <func:result select="$page_sub_elements"/>
+ </func:function>
+ <func:function name="func:required_elements">
+ <xsl:param name="pages"/>
+ <xsl:choose>
+ <xsl:when test="$pages">
+ <func:result select="func:all_related_elements($pages[1]) | func:required_elements($pages[position()!=1])"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <func:result select="/.."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </func:function>
+ <xsl:variable name="required_page_elements" select="func:required_elements($hmi_pages | $keypads)/ancestor-or-self::svg:*"/>
+ <xsl:variable name="hmi_lists_descs" select="$parsed_widgets/widget[@type = 'List']"/>
+ <xsl:variable name="hmi_lists" select="$hmi_elements[@id = $hmi_lists_descs/@id]"/>
+ <xsl:variable name="required_list_elements" select="func:refered_elements($hmi_lists[@id = $required_page_elements/@id])"/>
+ <xsl:variable name="required_elements" select="$defs | $required_list_elements | $required_page_elements"/>
+ <xsl:variable name="discardable_elements" select="//svg:*[not(@id = $required_elements/@id)]"/>
+ <func:function name="func:sumarized_elements">
+ <xsl:param name="elements"/>
+ <xsl:variable name="short_list" select="$elements[not(ancestor::*/@id = $elements/@id)]"/>
+ <xsl:variable name="filled_groups" select="$short_list/parent::*[ not(child::*[ not(@id = $discardable_elements/@id) and not(@id = $short_list/@id) ])]"/>
+ <xsl:variable name="groups_to_add" select="$filled_groups[not(ancestor::*/@id = $filled_groups/@id)]"/>
+ <func:result select="$groups_to_add | $short_list[not(ancestor::*/@id = $filled_groups/@id)]"/>
+ </func:function>
+ <func:function name="func:detachable_elements">
+ <xsl:param name="pages"/>
+ <xsl:choose>
+ <xsl:when test="$pages">
+ <func:result select="func:sumarized_elements(func:all_related_elements($pages[1])) | func:detachable_elements($pages[position()!=1])"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <func:result select="/.."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </func:function>
+ <xsl:variable name="_detachable_elements" select="func:detachable_elements($hmi_pages | $keypads)"/>
+ <xsl:variable name="detachable_elements" select="$_detachable_elements[not(ancestor::*/@id = $_detachable_elements/@id)]"/>
+ <declarations:detachable-elements/>
+ <xsl:template match="declarations:detachable-elements">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var detachable_elements = {
+</xsl:text>
+ <xsl:for-each select="$detachable_elements">
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>":[id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>"), id("</xsl:text>
+ <xsl:value-of select="../@id"/>
+ <xsl:text>")]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:variable name="forEach_widgets_ids" select="$parsed_widgets/widget[@type = 'ForEach']/@id"/>
+ <xsl:variable name="forEach_widgets" select="$hmi_widgets[@id = $forEach_widgets_ids]"/>
+ <xsl:variable name="in_forEach_widget_ids" select="func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]/@id"/>
+ <xsl:template mode="page_desc" match="svg:*">
+ <xsl:if test="ancestor::*[@id = $hmi_pages/@id]">
+ <xsl:message terminate="yes">
+ <xsl:text>HMI:Page </xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text> is nested in another HMI:Page</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:variable name="desc" select="func:widget(@id)"/>
+ <xsl:variable name="pagename" select="$desc/arg[1]/@value"/>
+ <xsl:variable name="msg" select="concat('generating page description ', $pagename)"/>
+ <xsl:value-of select="ns:ProgressStart($pagename, $msg)"/>
+ <xsl:variable name="page" select="."/>
+ <xsl:variable name="p" select="$geometry[@Id = $page/@id]"/>
+ <xsl:variable name="page_all_elements" select="func:all_related_elements($page)"/>
+ <xsl:variable name="all_page_widgets" select="$hmi_widgets[@id = $page_all_elements/@id and @id != $page/@id]"/>
+ <xsl:variable name="page_managed_widgets" select="$all_page_widgets[not(@id=$in_forEach_widget_ids)]"/>
+ <xsl:variable name="page_relative_widgets" select="$page_managed_widgets[func:is_descendant_path(func:widget(@id)/path/@value, $desc/path/@value)]"/>
+ <xsl:variable name="sumarized_page" select="func:sumarized_elements($page_all_elements)"/>
+ <xsl:variable name="required_detachables" select="$sumarized_page/ ancestor-or-self::*[@id = $detachable_elements/@id]"/>
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="$pagename"/>
+ <xsl:text>": {
+</xsl:text>
+ <xsl:text> bbox: [</xsl:text>
+ <xsl:value-of select="$p/@x"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$p/@y"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$p/@w"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$p/@h"/>
+ <xsl:text>],
+</xsl:text>
+ <xsl:if test="$desc/path/@value">
+ <xsl:if test="count($desc/path/@index)=0">
+ <xsl:message terminate="no">
+ <xsl:text>Page id="</xsl:text>
+ <xsl:value-of select="$page/@id"/>
+ <xsl:text>" : No match for path "</xsl:text>
+ <xsl:value-of select="$desc/path/@value"/>
+ <xsl:text>" in HMI tree</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text> page_index: </xsl:text>
+ <xsl:value-of select="$desc/path/@index"/>
+ <xsl:text>,
+</xsl:text>
+ </xsl:if>
+ <xsl:text> widgets: [
+</xsl:text>
+ <xsl:for-each select="$page_managed_widgets">
+ <xsl:variable name="widget_paths_relativeness">
+ <xsl:for-each select="func:widget(@id)/path">
+ <xsl:value-of select="func:is_descendant_path(@value, $desc/path/@value)"/>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:text> [hmi_widgets["</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>"], [</xsl:text>
+ <xsl:value-of select="$widget_paths_relativeness"/>
+ <xsl:text>]]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ],
+</xsl:text>
+ <xsl:text> jumps: [
+</xsl:text>
+ <xsl:for-each select="$parsed_widgets/widget[@id = $all_page_widgets/@id and @type='Jump']">
+ <xsl:text> hmi_widgets["</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>"]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ],
+</xsl:text>
+ <xsl:text> required_detachables: {
+</xsl:text>
+ <xsl:for-each select="$required_detachables">
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>": detachable_elements["</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>"]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> }
+</xsl:text>
+ <xsl:apply-templates mode="widget_page" select="$parsed_widgets/widget[@id = $all_page_widgets/@id]">
+ <xsl:with-param name="page_desc" select="$desc"/>
+ </xsl:apply-templates>
+ <xsl:text> }</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ <xsl:value-of select="ns:ProgressEnd($pagename)"/>
+ </xsl:template>
+ <definitions:page-desc/>
+ <xsl:template match="definitions:page-desc">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var page_desc = {
+</xsl:text>
+ <xsl:apply-templates mode="page_desc" select="$hmi_pages"/>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="widget_page" match="*"/>
+ <debug:detachable-pages/>
+ <xsl:template match="debug:detachable-pages">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>DETACHABLES:
+</xsl:text>
+ <xsl:for-each select="$detachable_elements">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>In Foreach:
+</xsl:text>
+ <xsl:for-each select="$in_forEach_widget_ids">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>Overlapping
+</xsl:text>
+ <xsl:apply-templates mode="testtree" select="$overlapping_geometry"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@*">
+ <xsl:copy/>
+ </xsl:template>
+ <xsl:template mode="inline_svg" match="node()">
+ <xsl:if test="not(@id = $discardable_elements/@id)">
+ <xsl:copy>
+ <xsl:apply-templates mode="inline_svg" select="@* | node()"/>
+ </xsl:copy>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="inline_svg" match="svg:svg/@width"/>
+ <xsl:template mode="inline_svg" match="svg:svg/@height"/>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:svg">
+ <svg>
+ <xsl:attribute name="preserveAspectRatio">
+ <xsl:text>none</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="height">
+ <xsl:text>100vh</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="width">
+ <xsl:text>100vw</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates mode="inline_svg" select="@* | node()"/>
+ </svg>
+ </xsl:template>
+ <xsl:template mode="inline_svg" match="svg:svg[@viewBox!=concat('0 0 ', @width, ' ', @height)]">
+ <xsl:message terminate="yes">
+ <xsl:text>ViewBox settings other than X=0, Y=0 and Scale=1 are not supported</xsl:text>
+ </xsl:message>
+ </xsl:template>
+ <xsl:template mode="inline_svg" match="sodipodi:namedview[@units!='px' or @inkscape:document-units!='px']">
+ <xsl:message terminate="yes">
+ <xsl:text>All units must be set to "px" in Inkscape's document properties</xsl:text>
+ </xsl:message>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:text/@inkscape:label[starts-with(., '_')]">
+ <xsl:attribute name="{name()}">
+ <xsl:value-of select="substring(., 2)"/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:variable name="targets_not_to_unlink" select="$hmi_lists/descendant-or-self::svg:*"/>
+ <xsl:variable name="to_unlink" select="$hmi_elements[not(@id = $hmi_pages/@id)]/descendant-or-self::svg:use"/>
+ <func:function name="func:is_unlinkable">
+ <xsl:param name="targetid"/>
+ <xsl:param name="eltid"/>
+ <func:result select="$eltid = $to_unlink/@id and not($targetid = $targets_not_to_unlink/@id)"/>
+ </func:function>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:use">
+ <xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/>
+ <xsl:choose>
+ <xsl:when test="func:is_unlinkable($targetid, @id)">
+ <xsl:call-template name="unlink_clone">
+ <xsl:with-param name="targetid" select="$targetid"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:apply-templates mode="inline_svg" select="@*"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:variable name="_excluded_use_attrs">
+ <name>
+ <xsl:text>href</xsl:text>
+ </name>
+ <name>
+ <xsl:text>width</xsl:text>
+ </name>
+ <name>
+ <xsl:text>height</xsl:text>
+ </name>
+ <name>
+ <xsl:text>x</xsl:text>
+ </name>
+ <name>
+ <xsl:text>y</xsl:text>
+ </name>
+ <name>
+ <xsl:text>id</xsl:text>
+ </name>
+ </xsl:variable>
+ <xsl:variable name="excluded_use_attrs" select="exsl:node-set($_excluded_use_attrs)"/>
+ <xsl:variable name="_merge_use_attrs">
+ <name>
+ <xsl:text>transform</xsl:text>
+ </name>
+ <name>
+ <xsl:text>style</xsl:text>
+ </name>
+ </xsl:variable>
+ <xsl:variable name="merge_use_attrs" select="exsl:node-set($_merge_use_attrs)"/>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" name="unlink_clone">
+ <xsl:param name="targetid"/>
+ <xsl:param name="seed" select="''"/>
+ <xsl:variable name="target" select="//svg:*[@id = $targetid]"/>
+ <xsl:variable name="seeded_id">
+ <xsl:choose>
+ <xsl:when test="string-length($seed) > 0">
+ <xsl:value-of select="$seed"/>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <g>
+ <xsl:attribute name="id">
+ <xsl:value-of select="$seeded_id"/>
+ </xsl:attribute>
+ <xsl:attribute name="original">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$target[self::svg:g]">
+ <xsl:for-each select="@*[not(local-name() = $excluded_use_attrs/name | $merge_use_attrs)]">
+ <xsl:attribute name="{name()}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:for-each>
+ <xsl:if test="@style | $target/@style">
+ <xsl:attribute name="style">
+ <xsl:value-of select="@style"/>
+ <xsl:if test="@style and $target/@style">
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$target/@style"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@transform | $target/@transform">
+ <xsl:attribute name="transform">
+ <xsl:value-of select="@transform"/>
+ <xsl:if test="@transform and $target/@transform">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$target/@transform"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="unlink_clone" select="$target/*">
+ <xsl:with-param name="seed" select="$seeded_id"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="@*[not(local-name() = $excluded_use_attrs/name)]">
+ <xsl:attribute name="{name()}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:for-each>
+ <xsl:apply-templates mode="unlink_clone" select="$target">
+ <xsl:with-param name="seed" select="$seeded_id"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </g>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="@id">
+ <xsl:param name="seed"/>
+ <xsl:attribute name="id">
+ <xsl:value-of select="$seed"/>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ <xsl:attribute name="original">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="@*">
+ <xsl:copy/>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="svg:use">
+ <xsl:param name="seed"/>
+ <xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/>
+ <xsl:choose>
+ <xsl:when test="func:is_unlinkable($targetid, @id)">
+ <xsl:call-template name="unlink_clone">
+ <xsl:with-param name="targetid" select="$targetid"/>
+ <xsl:with-param name="seed" select="$seed"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:apply-templates mode="unlink_clone" select="@*">
+ <xsl:with-param name="seed" select="$seed"/>
+ </xsl:apply-templates>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="svg:*">
+ <xsl:param name="seed"/>
+ <xsl:choose>
+ <xsl:when test="@id = $hmi_elements/@id">
+ <use>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="concat('#',@id)"/>
+ </xsl:attribute>
+ </use>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:apply-templates mode="unlink_clone" select="@* | node()">
+ <xsl:with-param name="seed" select="$seed"/>
+ </xsl:apply-templates>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:variable name="result_svg">
+ <xsl:apply-templates mode="inline_svg" select="/"/>
+ </xsl:variable>
+ <xsl:variable name="result_svg_ns" select="exsl:node-set($result_svg)"/>
+ <preamble:inline-svg/>
+ <xsl:template match="preamble:inline-svg">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>let id = document.getElementById.bind(document);
+</xsl:text>
+ <xsl:text>var svg_root = id("</xsl:text>
+ <xsl:value-of select="$svg/@id"/>
+ <xsl:text>");
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <debug:clone-unlinking/>
+ <xsl:template match="debug:clone-unlinking">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Unlinked :
+</xsl:text>
+ <xsl:for-each select="$to_unlink">
+ <xsl:value-of select="@id"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>Not to unlink :
+</xsl:text>
+ <xsl:for-each select="$targets_not_to_unlink">
+ <xsl:value-of select="@id"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="extract_i18n" match="svg:tspan">
+ <xsl:if test="string-length(.) > 0">
+ <line>
+ <xsl:value-of select="."/>
+ </line>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="extract_i18n" match="svg:text">
+ <msg>
+ <xsl:attribute name="id">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ <xsl:attribute name="label">
+ <xsl:value-of select="substring(@inkscape:label,2)"/>
+ </xsl:attribute>
+ <xsl:apply-templates mode="extract_i18n" select="svg:*"/>
+ </msg>
+ </xsl:template>
+ <xsl:variable name="translatable_texts" select="//svg:text[starts-with(@inkscape:label, '_')]"/>
+ <xsl:variable name="translatable_strings">
+ <xsl:apply-templates mode="extract_i18n" select="$translatable_texts"/>
+ </xsl:variable>
+ <preamble:i18n/>
+ <xsl:template match="preamble:i18n">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:variable name="translations" select="ns:GetTranslations($translatable_strings)"/>
+ <xsl:text>var langs = [ ["Default", "C"],</xsl:text>
+ <xsl:for-each select="$translations/langs/lang">
+ <xsl:text>["</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>","</xsl:text>
+ <xsl:value-of select="@code"/>
+ <xsl:text>"]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>];
+</xsl:text>
+ <xsl:text>var translations = [
+</xsl:text>
+ <xsl:for-each select="$translatable_texts">
+ <xsl:variable name="n" select="position()"/>
+ <xsl:variable name="current_id" select="@id"/>
+ <xsl:variable name="text_unlinked_uses" select="$result_svg_ns//svg:text[@original = $current_id]/@id"/>
+ <xsl:text> [[</xsl:text>
+ <xsl:for-each select="@id | $text_unlinked_uses">
+ <xsl:text>id("</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>")</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>],[</xsl:text>
+ <xsl:for-each select="$translations/messages/msgid[$n]/msg">
+ <xsl:text>"</xsl:text>
+ <xsl:for-each select="line">
+ <xsl:value-of select="."/>
+ <xsl:if test="position()!=last()">
+ <xsl:text>\n</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>"</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>]]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>]
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="hmi_widgets" match="svg:*">
+ <xsl:variable name="widget" select="func:widget(@id)"/>
+ <xsl:variable name="eltid" select="@id"/>
+ <xsl:variable name="args">
+ <xsl:for-each select="$widget/arg">
+ <xsl:text>"</xsl:text>
+ <xsl:value-of select="func:escape_quotes(@value)"/>
+ <xsl:text>"</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="indexes">
+ <xsl:for-each select="$widget/path">
+ <xsl:choose>
+ <xsl:when test="not(@index)">
+ <xsl:choose>
+ <xsl:when test="not(@type)">
+ <xsl:message terminate="no">
+ <xsl:text>Widget </xsl:text>
+ <xsl:value-of select="$widget/@type"/>
+ <xsl:text> id="</xsl:text>
+ <xsl:value-of select="$eltid"/>
+ <xsl:text>" : No match for path "</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>" in HMI tree</xsl:text>
+ </xsl:message>
+ <xsl:text>undefined</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type = 'PAGE_LOCAL'">
+ <xsl:text>"</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>"</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type = 'HMI_LOCAL'">
+ <xsl:text>hmi_local_index("</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>")</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>Internal error while processing widget's non indexed HMI tree path : unknown type</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@index"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="minmaxes">
+ <xsl:for-each select="$widget/path">
+ <xsl:choose>
+ <xsl:when test="@min and @max">
+ <xsl:text>[</xsl:text>
+ <xsl:value-of select="@min"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@max"/>
+ <xsl:text>]</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>undefined</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>": new </xsl:text>
+ <xsl:value-of select="$widget/@type"/>
+ <xsl:text>Widget ("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>",[</xsl:text>
+ <xsl:value-of select="$args"/>
+ <xsl:text>],[</xsl:text>
+ <xsl:value-of select="$indexes"/>
+ <xsl:text>],[</xsl:text>
+ <xsl:value-of select="$minmaxes"/>
+ <xsl:text>],{
+</xsl:text>
+ <xsl:apply-templates mode="widget_defs" select="$widget">
+ <xsl:with-param name="hmi_element" select="."/>
+ </xsl:apply-templates>
+ <xsl:text> })</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <preamble:local-variable-indexes/>
+ <xsl:template match="preamble:local-variable-indexes">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>let hmi_locals = {};
+</xsl:text>
+ <xsl:text>var last_remote_index = hmitree_types.length - 1;
+</xsl:text>
+ <xsl:text>var next_available_index = hmitree_types.length;
+</xsl:text>
+ <xsl:text>let cookies = new Map(document.cookie.split("; ").map(s=>s.split("=")));
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>const local_defaults = {
+</xsl:text>
+ <xsl:for-each select="$parsed_widgets/widget[starts-with(@type,'VarInit')]">
+ <xsl:if test="count(path) != 1">
+ <xsl:message terminate="yes">
+ <xsl:text>VarInit </xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text> must have only one variable given.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:if test="path/@type != 'PAGE_LOCAL' and path/@type != 'HMI_LOCAL'">
+ <xsl:message terminate="yes">
+ <xsl:text>VarInit </xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text> only applies to HMI variable.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="path/@value"/>
+ <xsl:text>":</xsl:text>
+ <xsl:choose>
+ <xsl:when test="@type = 'VarInitPersistent'">
+ <xsl:text>cookies.has("</xsl:text>
+ <xsl:value-of select="path/@value"/>
+ <xsl:text>")?cookies.get("</xsl:text>
+ <xsl:value-of select="path/@value"/>
+ <xsl:text>"):</xsl:text>
+ <xsl:value-of select="arg[1]/@value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="arg[1]/@value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>const persistent_locals = new Set([
+</xsl:text>
+ <xsl:for-each select="$parsed_widgets/widget[@type='VarInitPersistent']">
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="path/@value"/>
+ <xsl:text>"</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>]);
+</xsl:text>
+ <xsl:text>var persistent_indexes = new Map();
+</xsl:text>
+ <xsl:text>var cache = hmitree_types.map(_ignored => undefined);
+</xsl:text>
+ <xsl:text>var updates = new Map();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function page_local_index(varname, pagename){
+</xsl:text>
+ <xsl:text> let pagevars = hmi_locals[pagename];
+</xsl:text>
+ <xsl:text> let new_index;
+</xsl:text>
+ <xsl:text> if(pagevars == undefined){
+</xsl:text>
+ <xsl:text> new_index = next_available_index++;
+</xsl:text>
+ <xsl:text> hmi_locals[pagename] = {[varname]:new_index}
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> let result = pagevars[varname];
+</xsl:text>
+ <xsl:text> if(result != undefined) {
+</xsl:text>
+ <xsl:text> return result;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> new_index = next_available_index++;
+</xsl:text>
+ <xsl:text> pagevars[varname] = new_index;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> let defaultval = local_defaults[varname];
+</xsl:text>
+ <xsl:text> if(defaultval != undefined) {
+</xsl:text>
+ <xsl:text> cache[new_index] = defaultval;
+</xsl:text>
+ <xsl:text> updates.set(new_index, defaultval);
+</xsl:text>
+ <xsl:text> if(persistent_locals.has(varname))
+</xsl:text>
+ <xsl:text> persistent_indexes.set(new_index, varname);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return new_index;
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function hmi_local_index(varname){
+</xsl:text>
+ <xsl:text> return page_local_index(varname, "HMI_LOCAL");
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <preamble:widget-base-class/>
+ <xsl:template match="preamble:widget-base-class">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var pending_widget_animates = [];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>class Widget {
+</xsl:text>
+ <xsl:text> offset = 0;
+</xsl:text>
+ <xsl:text> frequency = 10; /* FIXME arbitrary default max freq. Obtain from config ? */
+</xsl:text>
+ <xsl:text> unsubscribable = false;
+</xsl:text>
+ <xsl:text> pending_animate = false;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> constructor(elt_id,args,indexes,minmaxes,members){
+</xsl:text>
+ <xsl:text> this.element_id = elt_id;
+</xsl:text>
+ <xsl:text> this.element = id(elt_id);
+</xsl:text>
+ <xsl:text> this.args = args;
+</xsl:text>
+ <xsl:text> this.indexes = indexes;
+</xsl:text>
+ <xsl:text> this.minmaxes = minmaxes;
+</xsl:text>
+ <xsl:text> Object.keys(members).forEach(prop => this[prop]=members[prop]);
+</xsl:text>
+ <xsl:text> this.lastapply = indexes.map(() => undefined);
+</xsl:text>
+ <xsl:text> this.inhibit = indexes.map(() => undefined);
+</xsl:text>
+ <xsl:text> this.pending = indexes.map(() => undefined);
+</xsl:text>
+ <xsl:text> this.bound_unhinibit = this.unhinibit.bind(this);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> unsub(){
+</xsl:text>
+ <xsl:text> /* remove subsribers */
+</xsl:text>
+ <xsl:text> if(!this.unsubscribable)
+</xsl:text>
+ <xsl:text> for(let i = 0; i < this.indexes.length; i++) {
+</xsl:text>
+ <xsl:text> /* flush updates pending because of inhibition */
+</xsl:text>
+ <xsl:text> let inhibition = this.inhibit[i];
+</xsl:text>
+ <xsl:text> if(inhibition != undefined){
+</xsl:text>
+ <xsl:text> clearTimeout(inhibition);
+</xsl:text>
+ <xsl:text> this.lastapply[i] = undefined;
+</xsl:text>
+ <xsl:text> this.unhinibit(i);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> let index = this.indexes[i];
+</xsl:text>
+ <xsl:text> if(this.relativeness[i])
+</xsl:text>
+ <xsl:text> index += this.offset;
+</xsl:text>
+ <xsl:text> subscribers(index).delete(this);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> this.offset = 0;
+</xsl:text>
+ <xsl:text> this.relativeness = undefined;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> sub(new_offset=0, relativeness, container_id){
+</xsl:text>
+ <xsl:text> this.offset = new_offset;
+</xsl:text>
+ <xsl:text> this.relativeness = relativeness;
+</xsl:text>
+ <xsl:text> this.container_id = container_id ;
+</xsl:text>
+ <xsl:text> /* add this's subsribers */
+</xsl:text>
+ <xsl:text> if(!this.unsubscribable)
+</xsl:text>
+ <xsl:text> for(let i = 0; i < this.indexes.length; i++) {
+</xsl:text>
+ <xsl:text> let index = this.get_variable_index(i);
+</xsl:text>
+ <xsl:text> if(index == undefined) continue;
+</xsl:text>
+ <xsl:text> subscribers(index).add(this);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> need_cache_apply.push(this);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> apply_cache() {
+</xsl:text>
+ <xsl:text> if(!this.unsubscribable) for(let index in this.indexes){
+</xsl:text>
+ <xsl:text> /* dispatch current cache in newly opened page widgets */
+</xsl:text>
+ <xsl:text> let realindex = this.get_variable_index(index);
+</xsl:text>
+ <xsl:text> if(realindex == undefined) continue;
+</xsl:text>
+ <xsl:text> let cached_val = cache[realindex];
+</xsl:text>
+ <xsl:text> if(cached_val != undefined)
+</xsl:text>
+ <xsl:text> this._dispatch(cached_val, cached_val, index);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> get_variable_index(varnum) {
+</xsl:text>
+ <xsl:text> let index = this.indexes[varnum];
+</xsl:text>
+ <xsl:text> if(typeof(index) == "string"){
+</xsl:text>
+ <xsl:text> index = page_local_index(index, this.container_id);
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> if(this.relativeness[varnum]){
+</xsl:text>
+ <xsl:text> index += this.offset;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return index;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> overshot(new_val, max) {
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> undershot(new_val, min) {
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> clip_min_max(index, new_val) {
+</xsl:text>
+ <xsl:text> let minmax = this.minmaxes[index];
+</xsl:text>
+ <xsl:text> if(minmax !== undefined && typeof new_val == "number") {
+</xsl:text>
+ <xsl:text> let [min,max] = minmax;
+</xsl:text>
+ <xsl:text> if(new_val < min){
+</xsl:text>
+ <xsl:text> this.undershot(new_val, min);
+</xsl:text>
+ <xsl:text> return min;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if(new_val > max){
+</xsl:text>
+ <xsl:text> this.overshot(new_val, max);
+</xsl:text>
+ <xsl:text> return max;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return new_val;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> change_hmi_value(index, opstr) {
+</xsl:text>
+ <xsl:text> let realindex = this.get_variable_index(index);
+</xsl:text>
+ <xsl:text> if(realindex == undefined) return undefined;
+</xsl:text>
+ <xsl:text> let old_val = cache[realindex];
+</xsl:text>
+ <xsl:text> let new_val = eval_operation_string(old_val, opstr);
+</xsl:text>
+ <xsl:text> new_val = this.clip_min_max(index, new_val);
+</xsl:text>
+ <xsl:text> return apply_hmi_value(realindex, new_val);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> _apply_hmi_value(index, new_val) {
+</xsl:text>
+ <xsl:text> let realindex = this.get_variable_index(index);
+</xsl:text>
+ <xsl:text> if(realindex == undefined) return undefined;
+</xsl:text>
+ <xsl:text> new_val = this.clip_min_max(index, new_val);
+</xsl:text>
+ <xsl:text> return apply_hmi_value(realindex, new_val);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> unhinibit(index){
+</xsl:text>
+ <xsl:text> this.inhibit[index] = undefined;
+</xsl:text>
+ <xsl:text> let new_val = this.pending[index];
+</xsl:text>
+ <xsl:text> this.pending[index] = undefined;
+</xsl:text>
+ <xsl:text> return this.apply_hmi_value(index, new_val);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> apply_hmi_value(index, new_val) {
+</xsl:text>
+ <xsl:text> if(this.inhibit[index] == undefined){
+</xsl:text>
+ <xsl:text> let now = Date.now();
+</xsl:text>
+ <xsl:text> let min_interval = 1000/this.frequency;
+</xsl:text>
+ <xsl:text> let lastapply = this.lastapply[index];
+</xsl:text>
+ <xsl:text> if(lastapply == undefined || now > lastapply + min_interval){
+</xsl:text>
+ <xsl:text> this.lastapply[index] = now;
+</xsl:text>
+ <xsl:text> return this._apply_hmi_value(index, new_val);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> let elapsed = now - lastapply;
+</xsl:text>
+ <xsl:text> this.pending[index] = new_val;
+</xsl:text>
+ <xsl:text> this.inhibit[index] = setTimeout(this.bound_unhinibit, min_interval - elapsed, index);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> this.pending[index] = new_val;
+</xsl:text>
+ <xsl:text> return new_val;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> new_hmi_value(index, value, oldval) {
+</xsl:text>
+ <xsl:text> // TODO avoid searching, store index at sub()
+</xsl:text>
+ <xsl:text> for(let i = 0; i < this.indexes.length; i++) {
+</xsl:text>
+ <xsl:text> let refindex = this.get_variable_index(i);
+</xsl:text>
+ <xsl:text> if(refindex == undefined) continue;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(index == refindex) {
+</xsl:text>
+ <xsl:text> this._dispatch(value, oldval, i);
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> _dispatch(value, oldval, varnum) {
+</xsl:text>
+ <xsl:text> let dispatch = this.dispatch;
+</xsl:text>
+ <xsl:text> if(dispatch != undefined){
+</xsl:text>
+ <xsl:text> try {
+</xsl:text>
+ <xsl:text> dispatch.call(this, value, oldval, varnum);
+</xsl:text>
+ <xsl:text> } catch(err) {
+</xsl:text>
+ <xsl:text> console.log(err);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> _animate(){
+</xsl:text>
+ <xsl:text> this.animate();
+</xsl:text>
+ <xsl:text> this.pending_animate = false;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> request_animate(){
+</xsl:text>
+ <xsl:text> if(!this.pending_animate){
+</xsl:text>
+ <xsl:text> pending_widget_animates.push(this);
+</xsl:text>
+ <xsl:text> this.pending_animate = true;
+</xsl:text>
+ <xsl:text> requestHMIAnimation();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> activate_activable(eltsub) {
+</xsl:text>
+ <xsl:text> eltsub.inactive.style.display = "none";
+</xsl:text>
+ <xsl:text> eltsub.active.style.display = "";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> inactivate_activable(eltsub) {
+</xsl:text>
+ <xsl:text> eltsub.active.style.display = "none";
+</xsl:text>
+ <xsl:text> eltsub.inactive.style.display = "";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:variable name="excluded_types" select="str:split('Page VarInit VarInitPersistent')"/>
+ <xsl:key name="TypesKey" match="widget" use="@type"/>
+ <declarations:hmi-classes/>
+ <xsl:template match="declarations:hmi-classes">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:variable name="used_widget_types" select="$parsed_widgets/widget[ generate-id() = generate-id(key('TypesKey', @type)) and not(@type = $excluded_types)]"/>
+ <xsl:apply-templates mode="widget_class" select="$used_widget_types"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="widget_class" match="widget">
+ <xsl:text>class </xsl:text>
+ <xsl:value-of select="@type"/>
+ <xsl:text>Widget extends Widget{
+</xsl:text>
+ <xsl:text> /* empty class, as </xsl:text>
+ <xsl:value-of select="@type"/>
+ <xsl:text> widget didn't provide any */
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:variable name="included_ids" select="$parsed_widgets/widget[not(@type = $excluded_types) and not(@id = $discardable_elements/@id)]/@id"/>
+ <xsl:variable name="hmi_widgets" select="$hmi_elements[@id = $included_ids]"/>
+ <xsl:variable name="result_widgets" select="$result_svg_ns//*[@id = $hmi_widgets/@id]"/>
+ <declarations:hmi-elements/>
+ <xsl:template match="declarations:hmi-elements">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var hmi_widgets = {
+</xsl:text>
+ <xsl:apply-templates mode="hmi_widgets" select="$hmi_widgets"/>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template name="defs_by_labels">
+ <xsl:param name="labels" select="''"/>
+ <xsl:param name="mandatory" select="'yes'"/>
+ <xsl:param name="subelements" select="/.."/>
+ <xsl:param name="hmi_element"/>
+ <xsl:variable name="widget_type" select="@type"/>
+ <xsl:for-each select="str:split($labels)">
+ <xsl:variable name="name" select="."/>
+ <xsl:variable name="elt" select="$result_widgets[@id = $hmi_element/@id]//*[@inkscape:label=$name][1]"/>
+ <xsl:choose>
+ <xsl:when test="not($elt/@id)">
+ <xsl:if test="$mandatory='yes'">
+ <xsl:message terminate="yes">
+ <xsl:value-of select="$widget_type"/>
+ <xsl:text> widget must have a </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text> element</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>_elt: id("</xsl:text>
+ <xsl:value-of select="$elt/@id"/>
+ <xsl:text>"),
+</xsl:text>
+ <xsl:if test="$subelements">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>_sub: {
+</xsl:text>
+ <xsl:for-each select="str:split($subelements)">
+ <xsl:variable name="subname" select="."/>
+ <xsl:variable name="subelt" select="$elt/*[@inkscape:label=$subname][1]"/>
+ <xsl:choose>
+ <xsl:when test="not($subelt/@id)">
+ <xsl:if test="$mandatory='yes'">
+ <xsl:message terminate="yes">
+ <xsl:value-of select="$widget_type"/>
+ <xsl:text> widget must have a </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="$subname"/>
+ <xsl:text> element</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text> /* missing </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="$subname"/>
+ <xsl:text> element */
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="$subname"/>
+ <xsl:text>": id("</xsl:text>
+ <xsl:value-of select="$subelt/@id"/>
+ <xsl:text>")</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text> },
+</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <func:function name="func:escape_quotes">
+ <xsl:param name="txt"/>
+ <xsl:choose>
+ <xsl:when test="contains($txt,'"')">
+ <func:result select="concat(substring-before($txt,'"'),'\"',func:escape_quotes(substring-after($txt,'"')))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <func:result select="$txt"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </func:function>
+ <xsl:template match="widget[@type='Animate']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>AnimateWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> speed = 0;
+</xsl:text>
+ <xsl:text> start = false;
+</xsl:text>
+ <xsl:text> widget_center = undefined;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.speed = value / 5;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //reconfigure animation
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> // change animation properties
+</xsl:text>
+ <xsl:text> for(let child of this.element.children){
+</xsl:text>
+ <xsl:text> if(child.nodeName.startsWith("animate")){
+</xsl:text>
+ <xsl:text> if(this.speed != 0 && !this.start){
+</xsl:text>
+ <xsl:text> this.start = true;
+</xsl:text>
+ <xsl:text> this.element.beginElement();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(this.speed > 0){
+</xsl:text>
+ <xsl:text> child.setAttribute("dur", this.speed+"s");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if(this.speed < 0){
+</xsl:text>
+ <xsl:text> child.setAttribute("dur", (-1)*this.speed+"s");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> this.start = false;
+</xsl:text>
+ <xsl:text> this.element.endElement();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> let widget_pos = this.element.getBBox();
+</xsl:text>
+ <xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='AnimateRotation']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>AnimateRotation - DEPRECATED, do not use.
+</xsl:text>
+ <xsl:text>Doesn't follow WYSIWYG principle, and forces user to add animateTransform tag in SVG (using inkscape XML editor for exemple)
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>AnimateRotation - DEPRECATED</xsl:text>
+ </shortdesc>
+ <path name="speed" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>speed</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='AnimateRotation']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>AnimateRotationWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> speed = 0;
+</xsl:text>
+ <xsl:text> widget_center = undefined;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.speed = value / 5;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //reconfigure animation
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> // change animation properties
+</xsl:text>
+ <xsl:text> // TODO : rewrite with proper es6
+</xsl:text>
+ <xsl:text> for(let child of this.element.children){
+</xsl:text>
+ <xsl:text> if(child.nodeName == "animateTransform"){
+</xsl:text>
+ <xsl:text> if(this.speed > 0){
+</xsl:text>
+ <xsl:text> child.setAttribute("dur", this.speed+"s");
+</xsl:text>
+ <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+</xsl:text>
+ <xsl:text> child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if(this.speed < 0){
+</xsl:text>
+ <xsl:text> child.setAttribute("dur", (-1)*this.speed+"s");
+</xsl:text>
+ <xsl:text> child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]);
+</xsl:text>
+ <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+</xsl:text>
+ <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> let widget_pos = this.element.getBBox();
+</xsl:text>
+ <xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Back']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Back widget brings focus back to previous page in history when clicked.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Jump to previous page</xsl:text>
+ </shortdesc>
+ </xsl:template>
+ <xsl:template match="widget[@type='Back']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>BackWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> on_click(evt) {
+</xsl:text>
+ <xsl:text> if(jump_history.length > 1){
+</xsl:text>
+ <xsl:text> jump_history.pop();
+</xsl:text>
+ <xsl:text> let [page_name, index] = jump_history.pop();
+</xsl:text>
+ <xsl:text> switch_page(page_name, index);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Button']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Button widget takes one boolean variable path, and reflect current true
+</xsl:text>
+ <xsl:text>or false value by showing "active" or "inactive" labeled element
+</xsl:text>
+ <xsl:text>respectively. Pressing and releasing button changes variable to true and
+</xsl:text>
+ <xsl:text>false respectively. Potential inconsistency caused by quick consecutive
+</xsl:text>
+ <xsl:text>presses on the button is mitigated by using a state machine that wait for
+</xsl:text>
+ <xsl:text>previous state change to be reflected on variable before applying next one.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Push button reflecting consistently given boolean variable</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_BOOL">
+ <xsl:text>Boolean variable</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:variable name="_button_fsm">
+ <fsm>
+ <state name="init">
+ <on-dispatch value="false">
+ <jump state="released"/>
+ </on-dispatch>
+ <on-dispatch value="true">
+ <jump state="pressed"/>
+ </on-dispatch>
+ </state>
+ <state name="pressing">
+ <hmi-value value="true"/>
+ <on-dispatch value="true">
+ <jump state="pressed"/>
+ </on-dispatch>
+ <on-mouse position="up">
+ <jump state="shortpress"/>
+ </on-mouse>
+ </state>
+ <state name="pressed">
+ <show eltname="active"/>
+ <on-mouse position="up">
+ <jump state="releasing"/>
+ </on-mouse>
+ <on-dispatch value="false">
+ <jump state="released"/>
+ </on-dispatch>
+ </state>
+ <state name="shortpress">
+ <on-dispatch value="true">
+ <jump state="releasing"/>
+ </on-dispatch>
+ <on-mouse position="down">
+ <jump state="pressing"/>
+ </on-mouse>
+ </state>
+ <state name="releasing">
+ <hmi-value value="false"/>
+ <on-dispatch value="false">
+ <jump state="released"/>
+ </on-dispatch>
+ <on-mouse position="down">
+ <jump state="shortrelease"/>
+ </on-mouse>
+ </state>
+ <state name="released">
+ <show eltname="inactive"/>
+ <on-mouse position="down">
+ <jump state="pressing"/>
+ </on-mouse>
+ <on-dispatch value="true">
+ <jump state="pressed"/>
+ </on-dispatch>
+ </state>
+ <state name="shortrelease">
+ <on-dispatch value="false">
+ <jump state="pressing"/>
+ </on-dispatch>
+ <on-mouse position="up">
+ <jump state="releasing"/>
+ </on-mouse>
+ </state>
+ </fsm>
+ </xsl:variable>
+ <xsl:template mode="dispatch_transition" match="fsm">
+ <xsl:text> switch (this.state) {
+</xsl:text>
+ <xsl:apply-templates mode="dispatch_transition" select="state"/>
+ <xsl:text> }
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="dispatch_transition" match="state">
+ <xsl:text> case "</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>":
+</xsl:text>
+ <xsl:apply-templates select="on-dispatch"/>
+ <xsl:text> break;
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="on-dispatch">
+ <xsl:text> if(value == </xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>) {
+</xsl:text>
+ <xsl:apply-templates mode="transition" select="jump"/>
+ <xsl:text> }
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="mouse_transition" match="fsm">
+ <xsl:param name="position"/>
+ <xsl:text> switch (this.state) {
+</xsl:text>
+ <xsl:apply-templates mode="mouse_transition" select="state">
+ <xsl:with-param name="position" select="$position"/>
+ </xsl:apply-templates>
+ <xsl:text> }
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="mouse_transition" match="state">
+ <xsl:param name="position"/>
+ <xsl:text> case "</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>":
+</xsl:text>
+ <xsl:apply-templates select="on-mouse[@position = $position]"/>
+ <xsl:text> break;
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="on-mouse">
+ <xsl:apply-templates mode="transition" select="jump"/>
+ </xsl:template>
+ <xsl:template mode="transition" match="jump">
+ <xsl:text> this.state = "</xsl:text>
+ <xsl:value-of select="@state"/>
+ <xsl:text>";
+</xsl:text>
+ <xsl:text> this.</xsl:text>
+ <xsl:value-of select="@state"/>
+ <xsl:text>_action();
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="actions" match="fsm">
+ <xsl:apply-templates mode="actions" select="state"/>
+ </xsl:template>
+ <xsl:template mode="actions" match="state">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>_action(){
+</xsl:text>
+ <xsl:apply-templates mode="actions" select="*"/>
+ <xsl:text> }
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="actions" match="show">
+ <xsl:text> this.display = "</xsl:text>
+ <xsl:value-of select="@eltname"/>
+ <xsl:text>";
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="actions" match="hmi-value">
+ <xsl:text> this.apply_hmi_value(0, </xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>);
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Button']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>ButtonWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:variable name="fsm" select="exsl:node-set($_button_fsm)"/>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> display = "inactive";
+</xsl:text>
+ <xsl:text> state = "init";
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:apply-templates mode="dispatch_transition" select="$fsm"/>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> onmouseup(evt) {
+</xsl:text>
+ <xsl:text> svg_root.removeEventListener("pointerup", this.bound_onmouseup, true);
+</xsl:text>
+ <xsl:apply-templates mode="mouse_transition" select="$fsm">
+ <xsl:with-param name="position" select="'up'"/>
+ </xsl:apply-templates>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> onmousedown(evt) {
+</xsl:text>
+ <xsl:text> svg_root.addEventListener("pointerup", this.bound_onmouseup, true);
+</xsl:text>
+ <xsl:apply-templates mode="mouse_transition" select="$fsm">
+ <xsl:with-param name="position" select="'down'"/>
+ </xsl:apply-templates>
+ <xsl:text> }
+</xsl:text>
+ <xsl:apply-templates mode="actions" select="$fsm"/>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> if (this.active_elt && this.inactive_elt) {
+</xsl:text>
+ <xsl:for-each select="str:split('active inactive')">
+ <xsl:text> if(this.display == "</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>")
+</xsl:text>
+ <xsl:text> this.</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>_elt.style.display = "";
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> this.</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>_elt.style.display = "none";
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> this.bound_onmouseup = this.onmouseup.bind(this);
+</xsl:text>
+ <xsl:text> this.element.addEventListener("pointerdown", this.onmousedown.bind(this));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Button']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>active inactive</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularBar']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>CircularBar widget changes the end angle of a "path" labeled arc according
+</xsl:text>
+ <xsl:text>to value of the single accepted variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "min" a "max" labeled texts are provided, then they are used as
+</xsl:text>
+ <xsl:text>respective minimum and maximum value. Otherwise, value is expected to be
+</xsl:text>
+ <xsl:text>in between 0 and 100.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "value" labeled text is found, then its content is replaced by value.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Change end angle of Inkscape's arc</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>Value to display</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularBar']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>CircularBarWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 10;
+</xsl:text>
+ <xsl:text> range = undefined;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.display_val = value;
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> if(this.value_elt)
+</xsl:text>
+ <xsl:text> this.value_elt.textContent = String(this.display_val);
+</xsl:text>
+ <xsl:text> let [min,max,start,end] = this.range;
+</xsl:text>
+ <xsl:text> let [cx,cy] = this.center;
+</xsl:text>
+ <xsl:text> let [rx,ry] = this.proportions;
+</xsl:text>
+ <xsl:text> let tip = start + (end-start)*Number(this.display_val)/(max-min);
+</xsl:text>
+ <xsl:text> let size = 0;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (tip-start > Math.PI)
+</xsl:text>
+ <xsl:text> size = 1;
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> size = 0;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.path_elt.setAttribute('d', "M "+(cx+rx*Math.cos(start))+","+(cy+ry*Math.sin(start))+
+</xsl:text>
+ <xsl:text> " A "+rx+","+ry+
+</xsl:text>
+ <xsl:text> " 0 "+size+
+</xsl:text>
+ <xsl:text> " 1 "+(cx+rx*Math.cos(tip))+","+(cy+ry*Math.sin(tip)));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> let [start, end, cx, cy, rx, ry] = ["start", "end", "cx", "cy", "rx", "ry"].
+</xsl:text>
+ <xsl:text> map(tag=>Number(this.path_elt.getAttribute('sodipodi:'+tag)))
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (ry == 0)
+</xsl:text>
+ <xsl:text> ry = rx;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (start > end)
+</xsl:text>
+ <xsl:text> end = end + 2*Math.PI;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt?
+</xsl:text>
+ <xsl:text> Number(elt.textContent) :
+</xsl:text>
+ <xsl:text> this.args.length >= i+1 ? this.args[i] : def);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.range = [min, max, start, end];
+</xsl:text>
+ <xsl:text> this.center = [cx, cy];
+</xsl:text>
+ <xsl:text> this.proportions = [rx, ry];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularBar']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>path</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>value min max</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularSlider']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>CircularSlider - DEPRECATED, to be replaced by PathSlider
+</xsl:text>
+ <xsl:text>This widget moves "handle" labeled group along "range" labeled
+</xsl:text>
+ <xsl:text>arc, according to value of the single accepted variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "min" a "max" labeled texts are provided, or if first and second
+</xsl:text>
+ <xsl:text>argument are given, then they are used as respective minimum and maximum
+</xsl:text>
+ <xsl:text>value. Otherwise, value is expected to be in between 0 and 100.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "value" labeled text is found, then its content is replaced by value.
+</xsl:text>
+ <xsl:text>During drag, "setpoint" labeled group is moved to position defined by user
+</xsl:text>
+ <xsl:text>while "handle" reflects current value from variable.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>CircularSlider - DEPRECATED</xsl:text>
+ </shortdesc>
+ <arg name="min" count="optional" accepts="int,real">
+ <xsl:text>minimum value</xsl:text>
+ </arg>
+ <arg name="min" count="optional" accepts="int,real">
+ <xsl:text>maximum value</xsl:text>
+ </arg>
+ <path name="value" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>Value to display</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularSlider']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>CircularSliderWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> range = undefined;
+</xsl:text>
+ <xsl:text> circle = undefined;
+</xsl:text>
+ <xsl:text> handle_pos = undefined;
+</xsl:text>
+ <xsl:text> curr_value = 0;
+</xsl:text>
+ <xsl:text> drag = false;
+</xsl:text>
+ <xsl:text> enTimer = false;
+</xsl:text>
+ <xsl:text> last_drag = false;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> let [min,max,start,totallength] = this.range;
+</xsl:text>
+ <xsl:text> //save current value inside widget
+</xsl:text>
+ <xsl:text> this.curr_value = value;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //check if in range
+</xsl:text>
+ <xsl:text> if (this.curr_value > max){
+</xsl:text>
+ <xsl:text> this.curr_value = max;
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, this.curr_value);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if (this.curr_value < min){
+</xsl:text>
+ <xsl:text> this.curr_value = min;
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, this.curr_value);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(this.value_elt)
+</xsl:text>
+ <xsl:text> this.value_elt.textContent = String(value);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //don't update if draging and setpoint ghost doesn't exist
+</xsl:text>
+ <xsl:text> if(!this.drag || (this.setpoint_elt != undefined)){
+</xsl:text>
+ <xsl:text> this.update_DOM(value, this.handle_elt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update_DOM(value, elt){
+</xsl:text>
+ <xsl:text> let [min,max,totalDistance] = this.range;
+</xsl:text>
+ <xsl:text> let length = Math.max(0,Math.min((totalDistance),(Number(value)-min)/(max-min)*(totalDistance)));
+</xsl:text>
+ <xsl:text> let tip = this.range_elt.getPointAtLength(length);
+</xsl:text>
+ <xsl:text> elt.setAttribute('transform',"translate("+(tip.x-this.handle_pos.x)+","+(tip.y-this.handle_pos.y)+")");
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // show or hide ghost if exists
+</xsl:text>
+ <xsl:text> if(this.setpoint_elt != undefined){
+</xsl:text>
+ <xsl:text> if(this.last_drag!= this.drag){
+</xsl:text>
+ <xsl:text> if(this.drag){
+</xsl:text>
+ <xsl:text> this.setpoint_elt.setAttribute("style", this.setpoint_style);
+</xsl:text>
+ <xsl:text> }else{
+</xsl:text>
+ <xsl:text> this.setpoint_elt.setAttribute("style", "display:none");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> this.last_drag = this.drag;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_release(evt) {
+</xsl:text>
+ <xsl:text> //unbind events
+</xsl:text>
+ <xsl:text> window.removeEventListener("touchmove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text> window.removeEventListener("mousemove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true)
+</xsl:text>
+ <xsl:text> window.removeEventListener("touchend", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text> window.removeEventListener("touchcancel", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //reset drag flag
+</xsl:text>
+ <xsl:text> if(this.drag){
+</xsl:text>
+ <xsl:text> this.drag = false;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // get final position
+</xsl:text>
+ <xsl:text> this.update_position(evt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_drag(evt){
+</xsl:text>
+ <xsl:text> //ignore drag event for X amount of time and if not selected
+</xsl:text>
+ <xsl:text> if(this.enTimer && this.drag){
+</xsl:text>
+ <xsl:text> this.update_position(evt);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //reset timer
+</xsl:text>
+ <xsl:text> this.enTimer = false;
+</xsl:text>
+ <xsl:text> setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update_position(evt){
+</xsl:text>
+ <xsl:text> if(this.drag && this.enTimer){
+</xsl:text>
+ <xsl:text> var svg_dist = 0;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //calculate center of widget in html
+</xsl:text>
+ <xsl:text> // --TODO maybe it would be better to bind this part to window change size event ???
+</xsl:text>
+ <xsl:text> let [xdest,ydest,svgWidth,svgHeight] = page_desc[current_visible_page].bbox;
+</xsl:text>
+ <xsl:text> let [cX, cY,fiStart,fiEnd,minMax,x1,y1,width,height] = this.circle;
+</xsl:text>
+ <xsl:text> let htmlCirc = this.range_elt.getBoundingClientRect();
+</xsl:text>
+ <xsl:text> let cxHtml = ((htmlCirc.right-htmlCirc.left)/(width)*(cX-x1))+htmlCirc.left;
+</xsl:text>
+ <xsl:text> let cyHtml = ((htmlCirc.bottom-htmlCirc.top)/(height)*(cY-y1))+htmlCirc.top;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //get mouse coordinates
+</xsl:text>
+ <xsl:text> let mouseX = undefined;
+</xsl:text>
+ <xsl:text> let mouseY = undefined;
+</xsl:text>
+ <xsl:text> if (evt.type.startsWith("touch")){
+</xsl:text>
+ <xsl:text> mouseX = Math.ceil(evt.touches[0].clientX);
+</xsl:text>
+ <xsl:text> mouseY = Math.ceil(evt.touches[0].clientY);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> mouseX = evt.pageX;
+</xsl:text>
+ <xsl:text> mouseY = evt.pageY;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //calculate angle
+</xsl:text>
+ <xsl:text> let fi = Math.atan2(cyHtml-mouseY, mouseX-cxHtml);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // transform from 0 to 2PI
+</xsl:text>
+ <xsl:text> if (fi > 0){
+</xsl:text>
+ <xsl:text> fi = 2*Math.PI-fi;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> fi = -fi;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //offset it to 0
+</xsl:text>
+ <xsl:text> fi = fi - fiStart;
+</xsl:text>
+ <xsl:text> if (fi < 0){
+</xsl:text>
+ <xsl:text> fi = fi + 2*Math.PI;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //get handle distance from mouse position
+</xsl:text>
+ <xsl:text> if(fi<fiEnd){
+</xsl:text>
+ <xsl:text> this.curr_value=(fi)/(fiEnd)*(this.range[1]-this.range[0]);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if(fiEnd<fi && fi<fiEnd+minMax){
+</xsl:text>
+ <xsl:text> this.curr_value = this.range[1];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> this.curr_value = this.range[0];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //apply value to hmi
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, Math.ceil(this.curr_value));
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //redraw handle
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> // redraw handle on screen refresh
+</xsl:text>
+ <xsl:text> // check if setpoint(ghost) handle exsist otherwise update main handle
+</xsl:text>
+ <xsl:text> if(this.setpoint_elt != undefined){
+</xsl:text>
+ <xsl:text> this.update_DOM(this.curr_value, this.setpoint_elt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> this.update_DOM(this.curr_value, this.handle_elt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_select(evt){
+</xsl:text>
+ <xsl:text> //enable drag flag and timer
+</xsl:text>
+ <xsl:text> this.drag = true;
+</xsl:text>
+ <xsl:text> this.enTimer = true;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //bind events
+</xsl:text>
+ <xsl:text> window.addEventListener("touchmove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text> window.addEventListener("mousemove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> window.addEventListener("mouseup", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text> window.addEventListener("touchend", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text> window.addEventListener("touchcancel", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //update postion on mouse press
+</xsl:text>
+ <xsl:text> this.update_position(evt);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //prevent next events
+</xsl:text>
+ <xsl:text> evt.stopPropagation();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> //get min max
+</xsl:text>
+ <xsl:text> let min = this.min_elt ?
+</xsl:text>
+ <xsl:text> Number(this.min_elt.textContent) :
+</xsl:text>
+ <xsl:text> this.args.length >= 1 ? this.args[0] : 0;
+</xsl:text>
+ <xsl:text> let max = this.max_elt ?
+</xsl:text>
+ <xsl:text> Number(this.max_elt.textContent) :
+</xsl:text>
+ <xsl:text> this.args.length >= 2 ? this.args[1] : 100;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //fiStart ==> offset
+</xsl:text>
+ <xsl:text> let fiStart = Number(this.range_elt.getAttribute('sodipodi:start'));
+</xsl:text>
+ <xsl:text> let fiEnd = Number(this.range_elt.getAttribute('sodipodi:end'));
+</xsl:text>
+ <xsl:text> fiEnd = fiEnd - fiStart;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //fiEnd ==> size of angle
+</xsl:text>
+ <xsl:text> if (fiEnd < 0){
+</xsl:text>
+ <xsl:text> fiEnd = 2*Math.PI + fiEnd;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //min max barrier angle
+</xsl:text>
+ <xsl:text> let minMax = (2*Math.PI - fiEnd)/2;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //get parameters from svg
+</xsl:text>
+ <xsl:text> let cX = Number(this.range_elt.getAttribute('sodipodi:cx'));
+</xsl:text>
+ <xsl:text> let cY = Number(this.range_elt.getAttribute('sodipodi:cy'));
+</xsl:text>
+ <xsl:text> this.range_elt.style.strokeMiterlimit="0"; //eliminates some weird border around html object
+</xsl:text>
+ <xsl:text> this.range = [min, max,this.range_elt.getTotalLength()];
+</xsl:text>
+ <xsl:text> let cPos = this.range_elt.getBBox();
+</xsl:text>
+ <xsl:text> this.handle_pos = this.range_elt.getPointAtLength(0);
+</xsl:text>
+ <xsl:text> this.circle = [cX, cY,fiStart,fiEnd,minMax,cPos.x,cPos.y,cPos.width,cPos.height];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //bind functions
+</xsl:text>
+ <xsl:text> this.bound_on_select = this.on_select.bind(this);
+</xsl:text>
+ <xsl:text> this.bound_on_release = this.on_release.bind(this);
+</xsl:text>
+ <xsl:text> this.on_bound_drag = this.on_drag.bind(this);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.handle_elt.addEventListener("mousedown", this.bound_on_select);
+</xsl:text>
+ <xsl:text> this.element.addEventListener("mousedown", this.bound_on_select);
+</xsl:text>
+ <xsl:text> this.element.addEventListener("touchstart", this.bound_on_select);
+</xsl:text>
+ <xsl:text> //touch recognised as page drag without next command
+</xsl:text>
+ <xsl:text> document.body.addEventListener("touchstart", function(e){}, false);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //save ghost style
+</xsl:text>
+ <xsl:text> //save ghost style
+</xsl:text>
+ <xsl:text> if(this.setpoint_elt != undefined){
+</xsl:text>
+ <xsl:text> this.setpoint_style = this.setpoint_elt.getAttribute("style");
+</xsl:text>
+ <xsl:text> this.setpoint_elt.setAttribute("style", "display:none");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='CircularSlider']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>handle range</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>value min max setpoint</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='CustomHtml']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>CustomHtml widget allows insertion of HTML code in a svg:foreignObject.
+</xsl:text>
+ <xsl:text>Widget content is replaced by foreignObject. HTML code is obtained from
+</xsl:text>
+ <xsl:text>"code" labeled text content. HTML insert position and size is given with
+</xsl:text>
+ <xsl:text>"container" labeled element.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Custom HTML insert</xsl:text>
+ </shortdesc>
+ </xsl:template>
+ <xsl:template match="widget[@type='CustomHtml']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>CustomHtmlWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> widget_size = undefined;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> this.widget_size = this.container_elt.getBBox();
+</xsl:text>
+ <xsl:text> this.element.innerHTML ='<foreignObject x="'+
+</xsl:text>
+ <xsl:text> this.widget_size.x+'" y="'+this.widget_size.y+
+</xsl:text>
+ <xsl:text> '" width="'+this.widget_size.width+'" height="'+this.widget_size.height+'"> '+
+</xsl:text>
+ <xsl:text> this.code_elt.textContent+
+</xsl:text>
+ <xsl:text> ' </foreignObject>';
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='CustomHtml']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>container code</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="widget[@type='Display']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>If Display widget is a svg:text element, then text content is replaced by
+</xsl:text>
+ <xsl:text>value of given variables, space separated.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Otherwise, if Display widget is a group containing a svg:text element
+</xsl:text>
+ <xsl:text>labelled "format", then text content is replaced by printf-like formated
+</xsl:text>
+ <xsl:text>string. In other words, if "format" labeled text is "%d %s %f", then 3
+</xsl:text>
+ <xsl:text>variables paths are expected : HMI_IN, HMI_STRING and HMI_REAL.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>In case Display widget is a svg::text element, it is also possible to give
+</xsl:text>
+ <xsl:text>format string as first argument.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Printf-like formated text display </xsl:text>
+ </shortdesc>
+ <arg name="format" count="optional" accepts="string">
+ <xsl:text>printf-like format string when not given as svg:text</xsl:text>
+ </arg>
+ <path name="fields" count="many" accepts="HMI_INT,HMI_REAL,HMI_STRING,HMI_BOOL">
+ <xsl:text>variables to be displayed</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Display']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>DisplayWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> dispatch(value, oldval, index) {
+</xsl:text>
+ <xsl:text> this.fields[index] = value;
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Display']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:variable name="format">
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>format</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="has_format" select="string-length($format)>0"/>
+ <xsl:value-of select="$format"/>
+ <xsl:if test="$hmi_element[not(self::svg:text)] and not($has_format)">
+ <xsl:message terminate="yes">
+ <xsl:text>Display Widget id="</xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ <xsl:text>" must be a svg::text element itself or a group containing a svg:text element labelled "format"</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:variable name="field_initializer">
+ <xsl:for-each select="path">
+ <xsl:choose>
+ <xsl:when test="@type='HMI_STRING'">
+ <xsl:text>""</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:text> fields: [</xsl:text>
+ <xsl:value-of select="$field_initializer"/>
+ <xsl:text>],
+</xsl:text>
+ <xsl:text> animate: function(){
+</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$has_format">
+ <xsl:text> if(this.format_elt.getAttribute("lang")) {
+</xsl:text>
+ <xsl:text> this.format = svg_text_to_multiline(this.format_elt);
+</xsl:text>
+ <xsl:text> this.format_elt.removeAttribute("lang");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> let str = vsprintf(this.format,this.fields);
+</xsl:text>
+ <xsl:text> multiline_to_svg_text(this.format_elt, str);
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> let str = this.args.length == 1 ? vsprintf(this.args[0],this.fields) : this.fields.join(' ');
+</xsl:text>
+ <xsl:text> multiline_to_svg_text(this.element, str);
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> },
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:if test="$has_format">
+ <xsl:text> init: function() {
+</xsl:text>
+ <xsl:text> this.format = svg_text_to_multiline(this.format_elt);
+</xsl:text>
+ <xsl:text> },
+</xsl:text>
+ </xsl:if>
+ </xsl:template>
+ <preamble:display/>
+ <xsl:template match="preamble:display">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* https://github.com/alexei/sprintf.js/blob/master/src/sprintf.js */
+</xsl:text>
+ <xsl:text>/* global window, exports, define */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>!function() {
+</xsl:text>
+ <xsl:text> 'use strict'
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> var re = {
+</xsl:text>
+ <xsl:text> not_string: /[^s]/,
+</xsl:text>
+ <xsl:text> not_bool: /[^t]/,
+</xsl:text>
+ <xsl:text> not_type: /[^T]/,
+</xsl:text>
+ <xsl:text> not_primitive: /[^v]/,
+</xsl:text>
+ <xsl:text> number: /[diefg]/,
+</xsl:text>
+ <xsl:text> numeric_arg: /[bcdiefguxX]/,
+</xsl:text>
+ <xsl:text> json: /[j]/,
+</xsl:text>
+ <xsl:text> not_json: /[^j]/,
+</xsl:text>
+ <xsl:text> text: /^[^%]+/,
+</xsl:text>
+ <xsl:text> modulo: /^%{2}/,
+</xsl:text>
+ <xsl:text> placeholder: /^%(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,
+</xsl:text>
+ <xsl:text> key: /^([a-z_][a-z_\d]*)/i,
+</xsl:text>
+ <xsl:text> key_access: /^\.([a-z_][a-z_\d]*)/i,
+</xsl:text>
+ <xsl:text> index_access: /^\[(\d+)\]/,
+</xsl:text>
+ <xsl:text> sign: /^[+-]/
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> function sprintf(key) {
+</xsl:text>
+ <xsl:text> // arguments is not an array, but should be fine for this call
+</xsl:text>
+ <xsl:text> return sprintf_format(sprintf_parse(key), arguments)
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> function vsprintf(fmt, argv) {
+</xsl:text>
+ <xsl:text> return sprintf.apply(null, [fmt].concat(argv || []))
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> function sprintf_format(parse_tree, argv) {
+</xsl:text>
+ <xsl:text> var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign
+</xsl:text>
+ <xsl:text> for (i = 0; i < tree_length; i++) {
+</xsl:text>
+ <xsl:text> if (typeof parse_tree[i] === 'string') {
+</xsl:text>
+ <xsl:text> output += parse_tree[i]
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if (typeof parse_tree[i] === 'object') {
+</xsl:text>
+ <xsl:text> ph = parse_tree[i] // convenience purposes only
+</xsl:text>
+ <xsl:text> if (ph.keys) { // keyword argument
+</xsl:text>
+ <xsl:text> arg = argv[cursor]
+</xsl:text>
+ <xsl:text> for (k = 0; k < ph.keys.length; k++) {
+</xsl:text>
+ <xsl:text> if (arg == undefined) {
+</xsl:text>
+ <xsl:text> throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1]))
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> arg = arg[ph.keys[k]]
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if (ph.param_no) { // positional argument (explicit)
+</xsl:text>
+ <xsl:text> arg = argv[ph.param_no]
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else { // positional argument (implicit)
+</xsl:text>
+ <xsl:text> arg = argv[cursor++]
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {
+</xsl:text>
+ <xsl:text> arg = arg()
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {
+</xsl:text>
+ <xsl:text> throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (re.number.test(ph.type)) {
+</xsl:text>
+ <xsl:text> is_positive = arg >= 0
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> switch (ph.type) {
+</xsl:text>
+ <xsl:text> case 'b':
+</xsl:text>
+ <xsl:text> arg = parseInt(arg, 10).toString(2)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'c':
+</xsl:text>
+ <xsl:text> arg = String.fromCharCode(parseInt(arg, 10))
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'd':
+</xsl:text>
+ <xsl:text> case 'i':
+</xsl:text>
+ <xsl:text> arg = parseInt(arg, 10)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'j':
+</xsl:text>
+ <xsl:text> arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'e':
+</xsl:text>
+ <xsl:text> arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'f':
+</xsl:text>
+ <xsl:text> arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'g':
+</xsl:text>
+ <xsl:text> arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'o':
+</xsl:text>
+ <xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(8)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 's':
+</xsl:text>
+ <xsl:text> arg = String(arg)
+</xsl:text>
+ <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 't':
+</xsl:text>
+ <xsl:text> arg = String(!!arg)
+</xsl:text>
+ <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'T':
+</xsl:text>
+ <xsl:text> arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()
+</xsl:text>
+ <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'u':
+</xsl:text>
+ <xsl:text> arg = parseInt(arg, 10) >>> 0
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'v':
+</xsl:text>
+ <xsl:text> arg = arg.valueOf()
+</xsl:text>
+ <xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'x':
+</xsl:text>
+ <xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(16)
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> case 'X':
+</xsl:text>
+ <xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()
+</xsl:text>
+ <xsl:text> break
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if (re.json.test(ph.type)) {
+</xsl:text>
+ <xsl:text> output += arg
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> if (re.number.test(ph.type) && (!is_positive || ph.sign)) {
+</xsl:text>
+ <xsl:text> sign = is_positive ? '+' : '-'
+</xsl:text>
+ <xsl:text> arg = arg.toString().replace(re.sign, '')
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> sign = ''
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '
+</xsl:text>
+ <xsl:text> pad_length = ph.width - (sign + arg).length
+</xsl:text>
+ <xsl:text> pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''
+</xsl:text>
+ <xsl:text> output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return output
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> var sprintf_cache = Object.create(null)
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> function sprintf_parse(fmt) {
+</xsl:text>
+ <xsl:text> if (sprintf_cache[fmt]) {
+</xsl:text>
+ <xsl:text> return sprintf_cache[fmt]
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> var _fmt = fmt, match, parse_tree = [], arg_names = 0
+</xsl:text>
+ <xsl:text> while (_fmt) {
+</xsl:text>
+ <xsl:text> if ((match = re.text.exec(_fmt)) !== null) {
+</xsl:text>
+ <xsl:text> parse_tree.push(match[0])
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if ((match = re.modulo.exec(_fmt)) !== null) {
+</xsl:text>
+ <xsl:text> parse_tree.push('%')
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if ((match = re.placeholder.exec(_fmt)) !== null) {
+</xsl:text>
+ <xsl:text> if (match[2]) {
+</xsl:text>
+ <xsl:text> arg_names |= 1
+</xsl:text>
+ <xsl:text> var field_list = [], replacement_field = match[2], field_match = []
+</xsl:text>
+ <xsl:text> if ((field_match = re.key.exec(replacement_field)) !== null) {
+</xsl:text>
+ <xsl:text> field_list.push(field_match[1])
+</xsl:text>
+ <xsl:text> while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
+</xsl:text>
+ <xsl:text> if ((field_match = re.key_access.exec(replacement_field)) !== null) {
+</xsl:text>
+ <xsl:text> field_list.push(field_match[1])
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if ((field_match = re.index_access.exec(replacement_field)) !== null) {
+</xsl:text>
+ <xsl:text> field_list.push(field_match[1])
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> throw new SyntaxError('[sprintf] failed to parse named argument key')
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> throw new SyntaxError('[sprintf] failed to parse named argument key')
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> match[2] = field_list
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> arg_names |= 2
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if (arg_names === 3) {
+</xsl:text>
+ <xsl:text> throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> parse_tree.push(
+</xsl:text>
+ <xsl:text> {
+</xsl:text>
+ <xsl:text> placeholder: match[0],
+</xsl:text>
+ <xsl:text> param_no: match[1],
+</xsl:text>
+ <xsl:text> keys: match[2],
+</xsl:text>
+ <xsl:text> sign: match[3],
+</xsl:text>
+ <xsl:text> pad_char: match[4],
+</xsl:text>
+ <xsl:text> align: match[5],
+</xsl:text>
+ <xsl:text> width: match[6],
+</xsl:text>
+ <xsl:text> precision: match[7],
+</xsl:text>
+ <xsl:text> type: match[8]
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> )
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else {
+</xsl:text>
+ <xsl:text> throw new SyntaxError('[sprintf] unexpected placeholder')
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> _fmt = _fmt.substring(match[0].length)
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return sprintf_cache[fmt] = parse_tree
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> /**
+</xsl:text>
+ <xsl:text> * export to either browser or node.js
+</xsl:text>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text> /* eslint-disable quote-props */
+</xsl:text>
+ <xsl:text> if (typeof exports !== 'undefined') {
+</xsl:text>
+ <xsl:text> exports['sprintf'] = sprintf
+</xsl:text>
+ <xsl:text> exports['vsprintf'] = vsprintf
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if (typeof window !== 'undefined') {
+</xsl:text>
+ <xsl:text> window['sprintf'] = sprintf
+</xsl:text>
+ <xsl:text> window['vsprintf'] = vsprintf
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (typeof define === 'function' && define['amd']) {
+</xsl:text>
+ <xsl:text> define(function() {
+</xsl:text>
+ <xsl:text> return {
+</xsl:text>
+ <xsl:text> 'sprintf': sprintf,
+</xsl:text>
+ <xsl:text> 'vsprintf': vsprintf
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> })
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> /* eslint-enable quote-props */
+</xsl:text>
+ <xsl:text>}(); // eslint-disable-line
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='DropDown']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>DropDown widget let user select an entry in a list of texts, given as
+</xsl:text>
+ <xsl:text>arguments. Single variable path is index of selection.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>It needs "text" (svg:text), "box" (svg:rect), "button" (svg:*),
+</xsl:text>
+ <xsl:text>and "highlight" (svg:rect) labeled elements.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>When user clicks on "button", "text" is duplicated to display enties in the
+</xsl:text>
+ <xsl:text>limit of available space in page, and "box" is extended to contain all
+</xsl:text>
+ <xsl:text>texts. "highlight" is moved over pre-selected entry.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>When only one argument is given, and argment contains "#langs" then list of
+</xsl:text>
+ <xsl:text>texts is automatically set to the list of human-readable languages supported
+</xsl:text>
+ <xsl:text>by this HMI.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Let user select text entry in a drop-down menu</xsl:text>
+ </shortdesc>
+ <arg name="entries" count="many" accepts="string">
+ <xsl:text>drop-down menu entries</xsl:text>
+ </arg>
+ <path name="selection" accepts="HMI_INT">
+ <xsl:text>selection index</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='DropDown']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>DropDownWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> if(!this.opened) this.set_selection(value);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> this.button_elt.onclick = this.on_button_click.bind(this);
+</xsl:text>
+ <xsl:text> // Save original size of rectangle
+</xsl:text>
+ <xsl:text> this.box_bbox = this.box_elt.getBBox()
+</xsl:text>
+ <xsl:text> this.highlight_bbox = this.highlight_elt.getBBox()
+</xsl:text>
+ <xsl:text> this.highlight_elt.style.visibility = "hidden";
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // Compute margins
+</xsl:text>
+ <xsl:text> this.text_bbox = this.text_elt.getBBox();
+</xsl:text>
+ <xsl:text> let lmargin = this.text_bbox.x - this.box_bbox.x;
+</xsl:text>
+ <xsl:text> let tmargin = this.text_bbox.y - this.box_bbox.y;
+</xsl:text>
+ <xsl:text> this.margins = [lmargin, tmargin].map(x => Math.max(x,0));
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // Index of first visible element in the menu, when opened
+</xsl:text>
+ <xsl:text> this.menu_offset = 0;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // How mutch to lift the menu vertically so that it does not cross bottom border
+</xsl:text>
+ <xsl:text> this.lift = 0;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // Event handlers cannot be object method ('this' is unknown)
+</xsl:text>
+ <xsl:text> // as a workaround, handler given to addEventListener is bound in advance.
+</xsl:text>
+ <xsl:text> this.bound_close_on_click_elsewhere = this.close_on_click_elsewhere.bind(this);
+</xsl:text>
+ <xsl:text> this.bound_on_selection_click = this.on_selection_click.bind(this);
+</xsl:text>
+ <xsl:text> this.bound_on_backward_click = this.on_backward_click.bind(this);
+</xsl:text>
+ <xsl:text> this.bound_on_forward_click = this.on_forward_click.bind(this);
+</xsl:text>
+ <xsl:text> this.opened = false;
+</xsl:text>
+ <xsl:text> this.clickables = [];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> on_button_click() {
+</xsl:text>
+ <xsl:text> this.open();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Called when a menu entry is clicked
+</xsl:text>
+ <xsl:text> on_selection_click(selection) {
+</xsl:text>
+ <xsl:text> this.close();
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, selection);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> on_backward_click(){
+</xsl:text>
+ <xsl:text> this.scroll(false);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> on_forward_click(){
+</xsl:text>
+ <xsl:text> this.scroll(true);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> set_selection(value) {
+</xsl:text>
+ <xsl:text> let display_str;
+</xsl:text>
+ <xsl:text> if(value >= 0 && value < this.content.length){
+</xsl:text>
+ <xsl:text> // if valid selection resolve content
+</xsl:text>
+ <xsl:text> display_str = this.content[value];
+</xsl:text>
+ <xsl:text> this.last_selection = value;
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> // otherwise show problem
+</xsl:text>
+ <xsl:text> display_str = "?"+String(value)+"?";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // It is assumed that first span always stays,
+</xsl:text>
+ <xsl:text> // and contains selection when menu is closed
+</xsl:text>
+ <xsl:text> this.text_elt.firstElementChild.textContent = display_str;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> grow_text(up_to) {
+</xsl:text>
+ <xsl:text> let count = 1;
+</xsl:text>
+ <xsl:text> let txt = this.text_elt;
+</xsl:text>
+ <xsl:text> let first = txt.firstElementChild;
+</xsl:text>
+ <xsl:text> // Real world (pixels) boundaries of current page
+</xsl:text>
+ <xsl:text> let bounds = svg_root.getBoundingClientRect();
+</xsl:text>
+ <xsl:text> this.lift = 0;
+</xsl:text>
+ <xsl:text> while(count < up_to) {
+</xsl:text>
+ <xsl:text> let next = first.cloneNode();
+</xsl:text>
+ <xsl:text> // relative line by line text flow instead of absolute y coordinate
+</xsl:text>
+ <xsl:text> next.removeAttribute("y");
+</xsl:text>
+ <xsl:text> next.setAttribute("dy", "1.1em");
+</xsl:text>
+ <xsl:text> // default content to allow computing text element bbox
+</xsl:text>
+ <xsl:text> next.textContent = "...";
+</xsl:text>
+ <xsl:text> // append new span to text element
+</xsl:text>
+ <xsl:text> txt.appendChild(next);
+</xsl:text>
+ <xsl:text> // now check if text extended by one row fits to page
+</xsl:text>
+ <xsl:text> // FIXME : exclude margins to be more accurate on box size
+</xsl:text>
+ <xsl:text> let rect = txt.getBoundingClientRect();
+</xsl:text>
+ <xsl:text> if(rect.bottom > bounds.bottom){
+</xsl:text>
+ <xsl:text> // in case of overflow at the bottom, lift up one row
+</xsl:text>
+ <xsl:text> let backup = first.getAttribute("dy");
+</xsl:text>
+ <xsl:text> // apply lift as a dy added too first span (y attrib stays)
+</xsl:text>
+ <xsl:text> first.setAttribute("dy", "-"+String((this.lift+1)*1.1)+"em");
+</xsl:text>
+ <xsl:text> rect = txt.getBoundingClientRect();
+</xsl:text>
+ <xsl:text> if(rect.top > bounds.top){
+</xsl:text>
+ <xsl:text> this.lift += 1;
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> // if it goes over the top, then backtrack
+</xsl:text>
+ <xsl:text> // restore dy attribute on first span
+</xsl:text>
+ <xsl:text> if(backup)
+</xsl:text>
+ <xsl:text> first.setAttribute("dy", backup);
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> first.removeAttribute("dy");
+</xsl:text>
+ <xsl:text> // remove unwanted child
+</xsl:text>
+ <xsl:text> txt.removeChild(next);
+</xsl:text>
+ <xsl:text> return count;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> count++;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return count;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> close_on_click_elsewhere(e) {
+</xsl:text>
+ <xsl:text> // inhibit events not targetting spans (menu items)
+</xsl:text>
+ <xsl:text> if([this.text_elt, this.element].indexOf(e.target.parentNode) == -1){
+</xsl:text>
+ <xsl:text> e.stopPropagation();
+</xsl:text>
+ <xsl:text> // close menu in case click is outside box
+</xsl:text>
+ <xsl:text> if(e.target !== this.box_elt)
+</xsl:text>
+ <xsl:text> this.close();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> close(){
+</xsl:text>
+ <xsl:text> // Stop hogging all click events
+</xsl:text>
+ <xsl:text> svg_root.removeEventListener("pointerdown", this.numb_event, true);
+</xsl:text>
+ <xsl:text> svg_root.removeEventListener("pointerup", this.numb_event, true);
+</xsl:text>
+ <xsl:text> svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true);
+</xsl:text>
+ <xsl:text> // Restore position and sixe of widget elements
+</xsl:text>
+ <xsl:text> this.reset_text();
+</xsl:text>
+ <xsl:text> this.reset_clickables();
+</xsl:text>
+ <xsl:text> this.reset_box();
+</xsl:text>
+ <xsl:text> this.reset_highlight();
+</xsl:text>
+ <xsl:text> // Put the button back in place
+</xsl:text>
+ <xsl:text> this.element.appendChild(this.button_elt);
+</xsl:text>
+ <xsl:text> // Mark as closed (to allow dispatch)
+</xsl:text>
+ <xsl:text> this.opened = false;
+</xsl:text>
+ <xsl:text> // Dispatch last cached value
+</xsl:text>
+ <xsl:text> this.apply_cache();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Make item (text span) clickable by overlaying a rectangle on top of it
+</xsl:text>
+ <xsl:text> make_clickable(span, func) {
+</xsl:text>
+ <xsl:text> let txt = this.text_elt;
+</xsl:text>
+ <xsl:text> let original_text_y = this.text_bbox.y;
+</xsl:text>
+ <xsl:text> let highlight = this.highlight_elt;
+</xsl:text>
+ <xsl:text> let original_h_y = this.highlight_bbox.y;
+</xsl:text>
+ <xsl:text> let clickable = highlight.cloneNode();
+</xsl:text>
+ <xsl:text> let yoffset = span.getBBox().y - original_text_y;
+</xsl:text>
+ <xsl:text> clickable.y.baseVal.value = original_h_y + yoffset;
+</xsl:text>
+ <xsl:text> clickable.style.pointerEvents = "bounding-box";
+</xsl:text>
+ <xsl:text> //clickable.style.visibility = "hidden";
+</xsl:text>
+ <xsl:text> //clickable.onclick = () => alert("love JS");
+</xsl:text>
+ <xsl:text> clickable.onclick = func;
+</xsl:text>
+ <xsl:text> this.element.appendChild(clickable);
+</xsl:text>
+ <xsl:text> this.clickables.push(clickable)
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> reset_clickables() {
+</xsl:text>
+ <xsl:text> while(this.clickables.length){
+</xsl:text>
+ <xsl:text> this.element.removeChild(this.clickables.pop());
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Set text content when content is smaller than menu (no scrolling)
+</xsl:text>
+ <xsl:text> set_complete_text(){
+</xsl:text>
+ <xsl:text> let spans = this.text_elt.children;
+</xsl:text>
+ <xsl:text> let c = 0;
+</xsl:text>
+ <xsl:text> for(let item of this.content){
+</xsl:text>
+ <xsl:text> let span=spans[c];
+</xsl:text>
+ <xsl:text> span.textContent = item;
+</xsl:text>
+ <xsl:text> let sel = c;
+</xsl:text>
+ <xsl:text> this.make_clickable(span, (evt) => this.bound_on_selection_click(sel));
+</xsl:text>
+ <xsl:text> c++;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Move partial view :
+</xsl:text>
+ <xsl:text> // false : upward, lower value
+</xsl:text>
+ <xsl:text> // true : downward, higher value
+</xsl:text>
+ <xsl:text> scroll(forward){
+</xsl:text>
+ <xsl:text> let contentlength = this.content.length;
+</xsl:text>
+ <xsl:text> let spans = this.text_elt.children;
+</xsl:text>
+ <xsl:text> let spanslength = spans.length;
+</xsl:text>
+ <xsl:text> // reduce accounted menu size according to prsence of scroll buttons
+</xsl:text>
+ <xsl:text> // since we scroll there is necessarly one button
+</xsl:text>
+ <xsl:text> spanslength--;
+</xsl:text>
+ <xsl:text> if(forward){
+</xsl:text>
+ <xsl:text> // reduce accounted menu size because of back button
+</xsl:text>
+ <xsl:text> // in current view
+</xsl:text>
+ <xsl:text> if(this.menu_offset > 0) spanslength--;
+</xsl:text>
+ <xsl:text> this.menu_offset = Math.min(
+</xsl:text>
+ <xsl:text> contentlength - spans.length + 1,
+</xsl:text>
+ <xsl:text> this.menu_offset + spanslength);
+</xsl:text>
+ <xsl:text> }else{
+</xsl:text>
+ <xsl:text> // reduce accounted menu size because of back button
+</xsl:text>
+ <xsl:text> // in view once scrolled
+</xsl:text>
+ <xsl:text> if(this.menu_offset - spanslength > 0) spanslength--;
+</xsl:text>
+ <xsl:text> this.menu_offset = Math.max(
+</xsl:text>
+ <xsl:text> 0,
+</xsl:text>
+ <xsl:text> this.menu_offset - spanslength);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if(this.menu_offset == 1)
+</xsl:text>
+ <xsl:text> this.menu_offset = 0;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.reset_highlight();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.reset_clickables();
+</xsl:text>
+ <xsl:text> this.set_partial_text();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.highlight_selection();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Setup partial view text content
+</xsl:text>
+ <xsl:text> // with jumps at first and last entry when appropriate
+</xsl:text>
+ <xsl:text> set_partial_text(){
+</xsl:text>
+ <xsl:text> let spans = this.text_elt.children;
+</xsl:text>
+ <xsl:text> let contentlength = this.content.length;
+</xsl:text>
+ <xsl:text> let spanslength = spans.length;
+</xsl:text>
+ <xsl:text> let i = this.menu_offset, c = 0;
+</xsl:text>
+ <xsl:text> let m = this.box_bbox;
+</xsl:text>
+ <xsl:text> while(c < spanslength){
+</xsl:text>
+ <xsl:text> let span=spans[c];
+</xsl:text>
+ <xsl:text> let onclickfunc;
+</xsl:text>
+ <xsl:text> // backward jump only present if not exactly at start
+</xsl:text>
+ <xsl:text> if(c == 0 && i != 0){
+</xsl:text>
+ <xsl:text> span.textContent = "▲";
+</xsl:text>
+ <xsl:text> onclickfunc = this.bound_on_backward_click;
+</xsl:text>
+ <xsl:text> let o = span.getBBox();
+</xsl:text>
+ <xsl:text> span.setAttribute("dx", (m.width - o.width)/2);
+</xsl:text>
+ <xsl:text> // presence of forward jump when not right at the end
+</xsl:text>
+ <xsl:text> }else if(c == spanslength-1 && i < contentlength - 1){
+</xsl:text>
+ <xsl:text> span.textContent = "▼";
+</xsl:text>
+ <xsl:text> onclickfunc = this.bound_on_forward_click;
+</xsl:text>
+ <xsl:text> let o = span.getBBox();
+</xsl:text>
+ <xsl:text> span.setAttribute("dx", (m.width - o.width)/2);
+</xsl:text>
+ <xsl:text> // otherwise normal content
+</xsl:text>
+ <xsl:text> }else{
+</xsl:text>
+ <xsl:text> span.textContent = this.content[i];
+</xsl:text>
+ <xsl:text> let sel = i;
+</xsl:text>
+ <xsl:text> onclickfunc = (evt) => this.bound_on_selection_click(sel);
+</xsl:text>
+ <xsl:text> span.removeAttribute("dx");
+</xsl:text>
+ <xsl:text> i++;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> this.make_clickable(span, onclickfunc);
+</xsl:text>
+ <xsl:text> c++;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> numb_event(e) {
+</xsl:text>
+ <xsl:text> e.stopPropagation();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> open(){
+</xsl:text>
+ <xsl:text> let length = this.content.length;
+</xsl:text>
+ <xsl:text> // systematically reset text, to strip eventual whitespace spans
+</xsl:text>
+ <xsl:text> this.reset_text();
+</xsl:text>
+ <xsl:text> // grow as much as needed or possible
+</xsl:text>
+ <xsl:text> let slots = this.grow_text(length);
+</xsl:text>
+ <xsl:text> // Depending on final size
+</xsl:text>
+ <xsl:text> if(slots == length) {
+</xsl:text>
+ <xsl:text> // show all at once
+</xsl:text>
+ <xsl:text> this.set_complete_text();
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> // eventualy align menu to current selection, compensating for lift
+</xsl:text>
+ <xsl:text> let offset = this.last_selection - this.lift;
+</xsl:text>
+ <xsl:text> if(offset > 0)
+</xsl:text>
+ <xsl:text> this.menu_offset = Math.min(offset + 1, length - slots + 1);
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> this.menu_offset = 0;
+</xsl:text>
+ <xsl:text> // show surrounding values
+</xsl:text>
+ <xsl:text> this.set_partial_text();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Now that text size is known, we can set the box around it
+</xsl:text>
+ <xsl:text> this.adjust_box_to_text();
+</xsl:text>
+ <xsl:text> // Take button out until menu closed
+</xsl:text>
+ <xsl:text> this.element.removeChild(this.button_elt);
+</xsl:text>
+ <xsl:text> // Rise widget to top by moving it to last position among siblings
+</xsl:text>
+ <xsl:text> this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element));
+</xsl:text>
+ <xsl:text> // disable interaction with background
+</xsl:text>
+ <xsl:text> svg_root.addEventListener("pointerdown", this.numb_event, true);
+</xsl:text>
+ <xsl:text> svg_root.addEventListener("pointerup", this.numb_event, true);
+</xsl:text>
+ <xsl:text> svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true);
+</xsl:text>
+ <xsl:text> this.highlight_selection();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // mark as open
+</xsl:text>
+ <xsl:text> this.opened = true;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Put text element in normalized state
+</xsl:text>
+ <xsl:text> reset_text(){
+</xsl:text>
+ <xsl:text> let txt = this.text_elt;
+</xsl:text>
+ <xsl:text> let first = txt.firstElementChild;
+</xsl:text>
+ <xsl:text> // remove attribute eventually added to first text line while opening
+</xsl:text>
+ <xsl:text> first.onclick = null;
+</xsl:text>
+ <xsl:text> first.removeAttribute("dy");
+</xsl:text>
+ <xsl:text> first.removeAttribute("dx");
+</xsl:text>
+ <xsl:text> // keep only the first line of text
+</xsl:text>
+ <xsl:text> for(let span of Array.from(txt.children).slice(1)){
+</xsl:text>
+ <xsl:text> txt.removeChild(span)
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Put rectangle element in saved original state
+</xsl:text>
+ <xsl:text> reset_box(){
+</xsl:text>
+ <xsl:text> let m = this.box_bbox;
+</xsl:text>
+ <xsl:text> let b = this.box_elt;
+</xsl:text>
+ <xsl:text> b.x.baseVal.value = m.x;
+</xsl:text>
+ <xsl:text> b.y.baseVal.value = m.y;
+</xsl:text>
+ <xsl:text> b.width.baseVal.value = m.width;
+</xsl:text>
+ <xsl:text> b.height.baseVal.value = m.height;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> highlight_selection(){
+</xsl:text>
+ <xsl:text> if(this.last_selection == undefined) return;
+</xsl:text>
+ <xsl:text> let highlighted_row = this.last_selection - this.menu_offset;
+</xsl:text>
+ <xsl:text> if(highlighted_row < 0) return;
+</xsl:text>
+ <xsl:text> let spans = this.text_elt.children;
+</xsl:text>
+ <xsl:text> let spanslength = spans.length;
+</xsl:text>
+ <xsl:text> let contentlength = this.content.length;
+</xsl:text>
+ <xsl:text> if(this.menu_offset != 0) {
+</xsl:text>
+ <xsl:text> spanslength--;
+</xsl:text>
+ <xsl:text> highlighted_row++;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if(this.menu_offset + spanslength < contentlength - 1) spanslength--;
+</xsl:text>
+ <xsl:text> if(highlighted_row > spanslength) return;
+</xsl:text>
+ <xsl:text> let original_text_y = this.text_bbox.y;
+</xsl:text>
+ <xsl:text> let highlight = this.highlight_elt;
+</xsl:text>
+ <xsl:text> let span = spans[highlighted_row];
+</xsl:text>
+ <xsl:text> let yoffset = span.getBBox().y - original_text_y;
+</xsl:text>
+ <xsl:text> highlight.y.baseVal.value = this.highlight_bbox.y + yoffset;
+</xsl:text>
+ <xsl:text> highlight.style.visibility = "visible";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> reset_highlight(){
+</xsl:text>
+ <xsl:text> let highlight = this.highlight_elt;
+</xsl:text>
+ <xsl:text> highlight.y.baseVal.value = this.highlight_bbox.y;
+</xsl:text>
+ <xsl:text> highlight.style.visibility = "hidden";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // Use margin and text size to compute box size
+</xsl:text>
+ <xsl:text> adjust_box_to_text(){
+</xsl:text>
+ <xsl:text> let [lmargin, tmargin] = this.margins;
+</xsl:text>
+ <xsl:text> let m = this.text_elt.getBBox();
+</xsl:text>
+ <xsl:text> let b = this.box_elt;
+</xsl:text>
+ <xsl:text> // b.x.baseVal.value = m.x - lmargin;
+</xsl:text>
+ <xsl:text> b.y.baseVal.value = m.y - tmargin;
+</xsl:text>
+ <xsl:text> // b.width.baseVal.value = 2 * lmargin + m.width;
+</xsl:text>
+ <xsl:text> b.height.baseVal.value = 2 * tmargin + m.height;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='DropDown']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>text box button highlight</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> content:</xsl:text>
+ <xsl:choose>
+ <xsl:when test="count(arg) = 1 and arg[1]/@value = '#langs'">
+ <xsl:text>langs</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>[
+</xsl:text>
+ <xsl:for-each select="arg">
+ <xsl:text>"</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>",
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ]</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>,
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='ForEach']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>ForEach widget is used to span a small set of widget over a larger set of
+</xsl:text>
+ <xsl:text>repeated HMI_NODEs.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Idea is somewhat similar to relative page, but it all happens inside the
+</xsl:text>
+ <xsl:text>ForEach widget, no page involved.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Together with relative Jump widgets it can be used to build a menu to reach
+</xsl:text>
+ <xsl:text>relative pages covering many identical HMI_NODES siblings.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>ForEach widget takes a HMI_CLASS name as argument and a HMI_NODE path as
+</xsl:text>
+ <xsl:text>variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Direct sub-elements can be either groups of widget to be spanned, labeled
+</xsl:text>
+ <xsl:text>"ClassName:offset", or buttons to control the spanning, labeled
+</xsl:text>
+ <xsl:text>"ClassName:+/-number".
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>span widgets over a set of repeated HMI_NODEs</xsl:text>
+ </shortdesc>
+ <arg name="class_name" accepts="string">
+ <xsl:text>HMI_CLASS name</xsl:text>
+ </arg>
+ <path name="root" accepts="HMI_NODE">
+ <xsl:text> where to find HMI_NODEs whose HMI_CLASS is class_name</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='ForEach']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:if test="count(path) != 1">
+ <xsl:message terminate="yes">
+ <xsl:text>ForEach widget </xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ <xsl:text> must have one HMI path given.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:if test="count(arg) != 1">
+ <xsl:message terminate="yes">
+ <xsl:text>ForEach widget </xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ <xsl:text> must have one argument given : a class name.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:variable name="class" select="arg[1]/@value"/>
+ <xsl:variable name="base_path" select="path/@value"/>
+ <xsl:variable name="hmi_index_base" select="$indexed_hmitree/*[@hmipath = $base_path]"/>
+ <xsl:variable name="hmi_tree_base" select="$hmitree/descendant-or-self::*[@path = $hmi_index_base/@path]"/>
+ <xsl:variable name="hmi_tree_items" select="$hmi_tree_base/*[@class = $class]"/>
+ <xsl:variable name="hmi_index_items" select="$indexed_hmitree/*[@path = $hmi_tree_items/@path]"/>
+ <xsl:variable name="items_paths" select="$hmi_index_items/@hmipath"/>
+ <xsl:text> index_pool: [
+</xsl:text>
+ <xsl:for-each select="$hmi_index_items">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@index"/>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ],
+</xsl:text>
+ <xsl:text> init: function() {
+</xsl:text>
+ <xsl:variable name="prefix" select="concat($class,':')"/>
+ <xsl:variable name="buttons_regex" select="concat('^',$prefix,'[+\-][0-9]+')"/>
+ <xsl:variable name="buttons" select="$hmi_element/*[regexp:test(@inkscape:label, $buttons_regex)]"/>
+ <xsl:for-each select="$buttons">
+ <xsl:variable name="op" select="substring-after(@inkscape:label, $prefix)"/>
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ <xsl:text>'].on_click('</xsl:text>
+ <xsl:value-of select="$op"/>
+ <xsl:text>', evt)");
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.items = [
+</xsl:text>
+ <xsl:variable name="items_regex" select="concat('^',$prefix,'[0-9]+')"/>
+ <xsl:variable name="unordered_items" select="$hmi_element//*[regexp:test(@inkscape:label, $items_regex)]"/>
+ <xsl:for-each select="$unordered_items">
+ <xsl:variable name="elt_label" select="concat($prefix, string(position()))"/>
+ <xsl:variable name="elt" select="$unordered_items[@inkscape:label = $elt_label]"/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:variable name="item_path" select="$items_paths[$pos]"/>
+ <xsl:text> [ /* item="</xsl:text>
+ <xsl:value-of select="$elt_label"/>
+ <xsl:text>" path="</xsl:text>
+ <xsl:value-of select="$item_path"/>
+ <xsl:text>" */
+</xsl:text>
+ <xsl:if test="count($elt)=0">
+ <xsl:message terminate="yes">
+ <xsl:text>Missing item labeled </xsl:text>
+ <xsl:value-of select="$elt_label"/>
+ <xsl:text> in ForEach widget </xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ </xsl:message>
+ </xsl:if>
+ <xsl:for-each select="func:refered_elements($elt)[@id = $hmi_elements/@id][not(@id = $elt/@id)]">
+ <xsl:if test="not(func:is_descendant_path(func:widget(@id)/path/@value, $item_path))">
+ <xsl:message terminate="yes">
+ <xsl:text>Widget id="</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>" label="</xsl:text>
+ <xsl:value-of select="@inkscape:label"/>
+ <xsl:text>" is having wrong path. Accroding to ForEach widget ancestor id="</xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ <xsl:text>", path should be descendant of "</xsl:text>
+ <xsl:value-of select="$item_path"/>
+ <xsl:text>".</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text> hmi_widgets["</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>"]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ]</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ]
+</xsl:text>
+ <xsl:text> },
+</xsl:text>
+ <xsl:text> item_offset: 0,
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='ForEach']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>ForEachWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> unsub_items(){
+</xsl:text>
+ <xsl:text> for(let item of this.items){
+</xsl:text>
+ <xsl:text> for(let widget of item) {
+</xsl:text>
+ <xsl:text> widget.unsub();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> unsub(){
+</xsl:text>
+ <xsl:text> this.unsub_items();
+</xsl:text>
+ <xsl:text> this.offset = 0;
+</xsl:text>
+ <xsl:text> this.relativeness = undefined;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> sub_items(){
+</xsl:text>
+ <xsl:text> for(let i = 0; i < this.items.length; i++) {
+</xsl:text>
+ <xsl:text> let item = this.items[i];
+</xsl:text>
+ <xsl:text> let orig_item_index = this.index_pool[i];
+</xsl:text>
+ <xsl:text> let item_index = this.index_pool[i+this.item_offset];
+</xsl:text>
+ <xsl:text> let item_index_offset = item_index - orig_item_index;
+</xsl:text>
+ <xsl:text> if(this.relativeness[0])
+</xsl:text>
+ <xsl:text> item_index_offset += this.offset;
+</xsl:text>
+ <xsl:text> for(let widget of item) {
+</xsl:text>
+ <xsl:text> /* all variables of all widgets in a ForEach are all relative.
+</xsl:text>
+ <xsl:text> Really.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> TODO: allow absolute variables in ForEach widgets
+</xsl:text>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text> widget.sub(item_index_offset, widget.indexes.map(_=>true));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> sub(new_offset=0, relativeness=[]){
+</xsl:text>
+ <xsl:text> this.offset = new_offset;
+</xsl:text>
+ <xsl:text> this.relativeness = relativeness;
+</xsl:text>
+ <xsl:text> this.sub_items();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> apply_cache() {
+</xsl:text>
+ <xsl:text> this.items.forEach(item=>item.forEach(widget=>widget.apply_cache()));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_click(opstr, evt) {
+</xsl:text>
+ <xsl:text> let new_item_offset = eval(String(this.item_offset)+opstr);
+</xsl:text>
+ <xsl:text> if(new_item_offset + this.items.length > this.index_pool.length) {
+</xsl:text>
+ <xsl:text> if(this.item_offset + this.items.length == this.index_pool.length)
+</xsl:text>
+ <xsl:text> new_item_offset = 0;
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> new_item_offset = this.index_pool.length - this.items.length;
+</xsl:text>
+ <xsl:text> } else if(new_item_offset < 0) {
+</xsl:text>
+ <xsl:text> if(this.item_offset == 0)
+</xsl:text>
+ <xsl:text> new_item_offset = this.index_pool.length - this.items.length;
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> new_item_offset = 0;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> this.item_offset = new_item_offset;
+</xsl:text>
+ <xsl:text> this.unsub_items();
+</xsl:text>
+ <xsl:text> this.sub_items();
+</xsl:text>
+ <xsl:text> update_subscriptions();
+</xsl:text>
+ <xsl:text> need_cache_apply.push(this);
+</xsl:text>
+ <xsl:text> jumps_need_update = true;
+</xsl:text>
+ <xsl:text> requestHMIAnimation();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Input']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Input widget takes one variable path, and displays current value in
+</xsl:text>
+ <xsl:text>optional "value" labeled sub-element.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Click on optional "edit" labeled element opens keypad to edit value.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Operation on current value is performed when click on sub-elements with
+</xsl:text>
+ <xsl:text>label starting with '=', '+' or '-' sign. Value after sign is used as
+</xsl:text>
+ <xsl:text>operand.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Input field with predefined operation buttons</xsl:text>
+ </shortdesc>
+ <arg name="format" accepts="string">
+ <xsl:text>optional printf-like format </xsl:text>
+ </arg>
+ <path name="edit" accepts="HMI_INT, HMI_REAL, HMI_STRING">
+ <xsl:text>single variable to edit</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Input']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>InputWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> on_op_click(opstr) {
+</xsl:text>
+ <xsl:text> this.change_hmi_value(0, opstr);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> edit_callback(new_val) {
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, new_val);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> is_inhibited = false;
+</xsl:text>
+ <xsl:text> alert(msg){
+</xsl:text>
+ <xsl:text> this.is_inhibited = true;
+</xsl:text>
+ <xsl:text> this.display = msg;
+</xsl:text>
+ <xsl:text> setTimeout(() => this.stopalert(), 1000);
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> stopalert(){
+</xsl:text>
+ <xsl:text> this.is_inhibited = false;
+</xsl:text>
+ <xsl:text> this.display = this.last_value;
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> overshot(new_val, max) {
+</xsl:text>
+ <xsl:text> this.alert("max");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> undershot(new_val, min) {
+</xsl:text>
+ <xsl:text> this.alert("min");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Input']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:variable name="value_elt">
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>value</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="have_value" select="string-length($value_elt)>0"/>
+ <xsl:value-of select="$value_elt"/>
+ <xsl:variable name="edit_elt">
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>edit</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="have_edit" select="string-length($edit_elt)>0"/>
+ <xsl:value-of select="$edit_elt"/>
+ <xsl:if test="$have_value">
+ <xsl:text> frequency: 5,
+</xsl:text>
+ </xsl:if>
+ <xsl:text> dispatch: function(value) {
+</xsl:text>
+ <xsl:if test="$have_value or $have_edit">
+ <xsl:choose>
+ <xsl:when test="count(arg) = 1">
+ <xsl:text> this.last_value = vsprintf("</xsl:text>
+ <xsl:value-of select="arg[1]/@value"/>
+ <xsl:text>", [value]);
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> this.last_value = value;
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> if(!this.is_inhibited){
+</xsl:text>
+ <xsl:text> this.display = this.last_value;
+</xsl:text>
+ <xsl:if test="$have_value">
+ <xsl:text> this.request_animate();
+</xsl:text>
+ </xsl:if>
+ <xsl:text> }
+</xsl:text>
+ </xsl:if>
+ <xsl:text> },
+</xsl:text>
+ <xsl:if test="$have_value">
+ <xsl:text> animate: function(){
+</xsl:text>
+ <xsl:text> this.value_elt.textContent = String(this.display);
+</xsl:text>
+ <xsl:text> },
+</xsl:text>
+ </xsl:if>
+ <xsl:text> init: function() {
+</xsl:text>
+ <xsl:if test="$have_edit">
+ <xsl:text> this.edit_elt.onclick = () => edit_value("</xsl:text>
+ <xsl:value-of select="path/@value"/>
+ <xsl:text>", "</xsl:text>
+ <xsl:value-of select="path/@type"/>
+ <xsl:text>", this, this.last_value);
+</xsl:text>
+ <xsl:if test="$have_value">
+ <xsl:text> this.value_elt.style.pointerEvents = "none";
+</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]">
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").onclick = () => this.on_op_click("</xsl:text>
+ <xsl:value-of select="func:escape_quotes(@inkscape:label)"/>
+ <xsl:text>");
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> },
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='JsonTable']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Send given variables as POST to http URL argument, spread returned JSON in
+</xsl:text>
+ <xsl:text>SVG sub-elements of "data" labeled element.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Documentation to be written. see svbghmi exemple.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Http POST variables, spread JSON back</xsl:text>
+ </shortdesc>
+ <arg name="url" accepts="string">
+ <xsl:text> </xsl:text>
+ </arg>
+ <path name="edit" accepts="HMI_INT, HMI_REAL, HMI_STRING">
+ <xsl:text>single variable to edit</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='JsonTable']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>JsonTableWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> // arbitrary defaults to avoid missing entries in query
+</xsl:text>
+ <xsl:text> cache = [0,0,0];
+</xsl:text>
+ <xsl:text> init_common() {
+</xsl:text>
+ <xsl:text> this.spread_json_data_bound = this.spread_json_data.bind(this);
+</xsl:text>
+ <xsl:text> this.handle_http_response_bound = this.handle_http_response.bind(this);
+</xsl:text>
+ <xsl:text> this.fetch_error_bound = this.fetch_error.bind(this);
+</xsl:text>
+ <xsl:text> this.promised = false;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> handle_http_response(response) {
+</xsl:text>
+ <xsl:text> if (!response.ok) {
+</xsl:text>
+ <xsl:text> console.log("HTTP error, status = " + response.status);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return response.json();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> fetch_error(e){
+</xsl:text>
+ <xsl:text> console.log("HTTP fetch error, message = " + e.message + "Widget:" + this.element_id);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> do_http_request(...opt) {
+</xsl:text>
+ <xsl:text> this.abort_controller = new AbortController();
+</xsl:text>
+ <xsl:text> return Promise.resolve().then(() => {
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> const query = {
+</xsl:text>
+ <xsl:text> args: this.args,
+</xsl:text>
+ <xsl:text> range: this.cache[1],
+</xsl:text>
+ <xsl:text> position: this.cache[2],
+</xsl:text>
+ <xsl:text> visible: this.visible,
+</xsl:text>
+ <xsl:text> extra: this.cache.slice(4),
+</xsl:text>
+ <xsl:text> options: opt
+</xsl:text>
+ <xsl:text> };
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> const options = {
+</xsl:text>
+ <xsl:text> method: 'POST',
+</xsl:text>
+ <xsl:text> body: JSON.stringify(query),
+</xsl:text>
+ <xsl:text> headers: {'Content-Type': 'application/json'},
+</xsl:text>
+ <xsl:text> signal: this.abort_controller.signal
+</xsl:text>
+ <xsl:text> };
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> return fetch(this.args[0], options)
+</xsl:text>
+ <xsl:text> .then(this.handle_http_response_bound)
+</xsl:text>
+ <xsl:text> .then(this.spread_json_data_bound)
+</xsl:text>
+ <xsl:text> .catch(this.fetch_error_bound);
+</xsl:text>
+ <xsl:text> });
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> unsub(){
+</xsl:text>
+ <xsl:text> this.abort_controller.abort();
+</xsl:text>
+ <xsl:text> super.unsub();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> sub(...args){
+</xsl:text>
+ <xsl:text> this.cache[0] = undefined;
+</xsl:text>
+ <xsl:text> super.sub(...args);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value, oldval, index) {
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(this.cache[index] != value)
+</xsl:text>
+ <xsl:text> this.cache[index] = value;
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> return;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(!this.promised){
+</xsl:text>
+ <xsl:text> this.promised = true;
+</xsl:text>
+ <xsl:text> this.do_http_request().finally(() => {
+</xsl:text>
+ <xsl:text> this.promised = false;
+</xsl:text>
+ <xsl:text> });
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> make_on_click(...options){
+</xsl:text>
+ <xsl:text> let that = this;
+</xsl:text>
+ <xsl:text> return function(evt){
+</xsl:text>
+ <xsl:text> that.do_http_request(...options);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> // on_click(evt, ...options) {
+</xsl:text>
+ <xsl:text> // this.do_http_request(...options);
+</xsl:text>
+ <xsl:text> // }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template mode="json_table_elt_render" match="svg:*">
+ <xsl:message terminate="yes">
+ <xsl:text>JsonTable Widget can't contain element of type </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:template>
+ <xsl:variable name="hmi_textstylelists_descs" select="$parsed_widgets/widget[@type = 'TextStyleList']"/>
+ <xsl:variable name="hmi_textstylelists" select="$hmi_elements[@id = $hmi_textstylelists_descs/@id]"/>
+ <xsl:variable name="textstylelist_related">
+ <xsl:for-each select="$hmi_textstylelists">
+ <list>
+ <xsl:attribute name="listid">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ <xsl:for-each select="func:refered_elements(.)">
+ <elt>
+ <xsl:attribute name="eltid">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ </elt>
+ </xsl:for-each>
+ </list>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="textstylelist_related_ns" select="exsl:node-set($textstylelist_related)"/>
+ <func:function name="func:json_expressions">
+ <xsl:param name="expressions"/>
+ <xsl:param name="label"/>
+ <xsl:choose>
+ <xsl:when test="$label">
+ <xsl:variable name="suffixes" select="str:split($label)"/>
+ <xsl:variable name="res">
+ <xsl:for-each select="$suffixes">
+ <expression>
+ <xsl:variable name="suffix" select="."/>
+ <xsl:variable name="pos" select="position()"/>
+ <xsl:variable name="expr" select="$expressions[position() <= $pos][last()]/expression"/>
+ <xsl:choose>
+ <xsl:when test="contains($suffix,'=')">
+ <xsl:variable name="name" select="substring-before($suffix,'=')"/>
+ <xsl:if test="$expr/@name[. != $name]">
+ <xsl:message terminate="yes">
+ <xsl:text>JsonTable : missplaced '=' or inconsistent names in Json data expressions.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:attribute name="name">
+ <xsl:value-of select="$name"/>
+ </xsl:attribute>
+ <xsl:attribute name="content">
+ <xsl:value-of select="$expr/@content"/>
+ <xsl:value-of select="substring-after($suffix,'=')"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$expr/@name"/>
+ <xsl:attribute name="content">
+ <xsl:value-of select="$expr/@content"/>
+ <xsl:value-of select="$suffix"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </expression>
+ </xsl:for-each>
+ </xsl:variable>
+ <func:result select="exsl:node-set($res)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <func:result select="$expressions"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </func:function>
+ <xsl:variable name="initexpr">
+ <expression>
+ <xsl:attribute name="content">
+ <xsl:text>jdata</xsl:text>
+ </xsl:attribute>
+ </expression>
+ </xsl:variable>
+ <xsl:variable name="initexpr_ns" select="exsl:node-set($initexpr)"/>
+ <xsl:template mode="json_table_elt_render" match="svg:use">
+ <xsl:param name="expressions"/>
+ <xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/>
+ <xsl:variable name="from_list" select="$hmi_lists[(@id | */@id) = $targetid]"/>
+ <xsl:choose>
+ <xsl:when test="count($from_list) > 0">
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").setAttribute("xlink:href",
+</xsl:text>
+ <xsl:text> "#"+hmi_widgets["</xsl:text>
+ <xsl:value-of select="$from_list/@id"/>
+ <xsl:text>"].items[</xsl:text>
+ <xsl:value-of select="$expressions/expression[1]/@content"/>
+ <xsl:text>]);
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="no">
+ <xsl:text>Clones (svg:use) in JsonTable Widget must point to a valid HMI:List widget or item. Reference "</xsl:text>
+ <xsl:value-of select="@xlink:href"/>
+ <xsl:text>" is not valid and will not be updated.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template mode="json_table_elt_render" match="svg:text">
+ <xsl:param name="expressions"/>
+ <xsl:variable name="value_expr" select="$expressions/expression[1]/@content"/>
+ <xsl:variable name="original" select="@original"/>
+ <xsl:variable name="from_textstylelist" select="$textstylelist_related_ns/list[elt/@eltid = $original]"/>
+ <xsl:choose>
+ <xsl:when test="count($from_textstylelist) > 0">
+ <xsl:variable name="content_expr" select="$expressions/expression[2]/@content"/>
+ <xsl:if test="string-length($content_expr) = 0 or $expressions/expression[2]/@name != 'textContent'">
+ <xsl:message terminate="yes">
+ <xsl:text>Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignement following value expression in label.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ <xsl:text> {
+</xsl:text>
+ <xsl:text> let elt = id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>");
+</xsl:text>
+ <xsl:text> elt.textContent = String(</xsl:text>
+ <xsl:value-of select="$content_expr"/>
+ <xsl:text>);
+</xsl:text>
+ <xsl:text> elt.style = hmi_widgets["</xsl:text>
+ <xsl:value-of select="$from_textstylelist/@listid"/>
+ <xsl:text>"].styles[</xsl:text>
+ <xsl:value-of select="$value_expr"/>
+ <xsl:text>];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").textContent = String(</xsl:text>
+ <xsl:value-of select="$value_expr"/>
+ <xsl:text>);
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <func:function name="func:filter_non_widget_label">
+ <xsl:param name="elt"/>
+ <xsl:param name="widget_elts"/>
+ <xsl:variable name="eltid">
+ <xsl:choose>
+ <xsl:when test="$elt/@original">
+ <xsl:value-of select="$elt/@original"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$elt/@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <func:result select="$widget_elts[@id=$eltid]/@inkscape:label"/>
+ </func:function>
+ <xsl:template mode="json_table_render_except_comments" match="svg:*">
+ <xsl:param name="expressions"/>
+ <xsl:param name="widget_elts"/>
+ <xsl:variable name="label" select="func:filter_non_widget_label(., $widget_elts)"/>
+ <xsl:if test="not(starts-with($label,'#'))">
+ <xsl:apply-templates mode="json_table_render" select=".">
+ <xsl:with-param name="expressions" select="$expressions"/>
+ <xsl:with-param name="widget_elts" select="$widget_elts"/>
+ <xsl:with-param name="label" select="$label"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template mode="json_table_render" match="svg:*">
+ <xsl:param name="expressions"/>
+ <xsl:param name="widget_elts"/>
+ <xsl:param name="label"/>
+ <xsl:variable name="new_expressions" select="func:json_expressions($expressions, $label)"/>
+ <xsl:variable name="elt" select="."/>
+ <xsl:for-each select="$new_expressions/expression[position() > 1][starts-with(@name,'onClick')]">
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="$elt/@id"/>
+ <xsl:text>").onclick = this.make_on_click('</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>', </xsl:text>
+ <xsl:value-of select="@content"/>
+ <xsl:text>);
+</xsl:text>
+ </xsl:for-each>
+ <xsl:apply-templates mode="json_table_elt_render" select=".">
+ <xsl:with-param name="expressions" select="$new_expressions"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template mode="json_table_render" match="svg:g">
+ <xsl:param name="expressions"/>
+ <xsl:param name="widget_elts"/>
+ <xsl:param name="label"/>
+ <xsl:variable name="varprefix">
+ <xsl:text>obj_</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>_</xsl:text>
+ </xsl:variable>
+ <xsl:text> try {
+</xsl:text>
+ <xsl:for-each select="$expressions/expression">
+ <xsl:text> let </xsl:text>
+ <xsl:value-of select="$varprefix"/>
+ <xsl:value-of select="position()"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="@content"/>
+ <xsl:text>;
+</xsl:text>
+ <xsl:text> if(</xsl:text>
+ <xsl:value-of select="$varprefix"/>
+ <xsl:value-of select="position()"/>
+ <xsl:text> == undefined) {
+</xsl:text>
+ <xsl:text> throw null;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ </xsl:for-each>
+ <xsl:variable name="new_expressions">
+ <xsl:for-each select="$expressions/expression">
+ <xsl:copy>
+ <xsl:copy-of select="@name"/>
+ <xsl:attribute name="content">
+ <xsl:value-of select="$varprefix"/>
+ <xsl:value-of select="position()"/>
+ </xsl:attribute>
+ </xsl:copy>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").style = "</xsl:text>
+ <xsl:value-of select="@style"/>
+ <xsl:text>";
+</xsl:text>
+ <xsl:apply-templates mode="json_table_render_except_comments" select="*">
+ <xsl:with-param name="expressions" select="func:json_expressions(exsl:node-set($new_expressions), $label)"/>
+ <xsl:with-param name="widget_elts" select="$widget_elts"/>
+ </xsl:apply-templates>
+ <xsl:text> } catch(err) {
+</xsl:text>
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").style = "display:none";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='JsonTable']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>data</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:variable name="data_elt" select="$result_svg_ns//*[@id = $hmi_element/@id]/*[@inkscape:label = 'data']"/>
+ <xsl:text> visible: </xsl:text>
+ <xsl:value-of select="count($data_elt/*[@inkscape:label])"/>
+ <xsl:text>,
+</xsl:text>
+ <xsl:text> spread_json_data: function(janswer) {
+</xsl:text>
+ <xsl:text> let [range,position,jdata] = janswer;
+</xsl:text>
+ <xsl:text> [[1, range], [2, position], [3, this.visible]].map(([i,v]) => {
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(i,v);
+</xsl:text>
+ <xsl:text> this.cache[i] = v;
+</xsl:text>
+ <xsl:text> });
+</xsl:text>
+ <xsl:apply-templates mode="json_table_render_except_comments" select="$data_elt">
+ <xsl:with-param name="expressions" select="$initexpr_ns"/>
+ <xsl:with-param name="widget_elts" select="$hmi_element/*[@inkscape:label = 'data']/descendant::svg:*"/>
+ </xsl:apply-templates>
+ <xsl:text> },
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> this.init_common();
+</xsl:text>
+ <xsl:for-each select="$hmi_element/*[starts-with(@inkscape:label,'action_')]">
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").onclick = this.make_on_click("</xsl:text>
+ <xsl:value-of select="func:escape_quotes(@inkscape:label)"/>
+ <xsl:text>");
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> }
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Jump']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Jump widget brings focus to a different page. Mandatory single argument
+</xsl:text>
+ <xsl:text>gives name of the page.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Optional single path is used as new reference when jumping to a relative
+</xsl:text>
+ <xsl:text>page, it must point to a HMI_NODE.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>"active"+"inactive" labeled elements can be provided and reflect current
+</xsl:text>
+ <xsl:text>page being shown.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>"disabled" labeled element, if provided, is shown instead of "active" or
+</xsl:text>
+ <xsl:text>"inactive" widget when pointed HMI_NODE is null.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Jump to given page</xsl:text>
+ </shortdesc>
+ <arg name="page" accepts="string">
+ <xsl:text>name of page to jump to</xsl:text>
+ </arg>
+ <path name="reference" count="optional" accepts="HMI_NODE">
+ <xsl:text>reference for relative jump</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Jump']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>JumpWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> activable = false;
+</xsl:text>
+ <xsl:text> active = false;
+</xsl:text>
+ <xsl:text> disabled = false;
+</xsl:text>
+ <xsl:text> frequency = 2;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update_activity() {
+</xsl:text>
+ <xsl:text> if(this.active) {
+</xsl:text>
+ <xsl:text> /* show active */
+</xsl:text>
+ <xsl:text> this.active_elt.style.display = "";
+</xsl:text>
+ <xsl:text> /* hide inactive */
+</xsl:text>
+ <xsl:text> this.inactive_elt.style.display = "none";
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> /* show inactive */
+</xsl:text>
+ <xsl:text> this.inactive_elt.style.display = "";
+</xsl:text>
+ <xsl:text> /* hide active */
+</xsl:text>
+ <xsl:text> this.active_elt.style.display = "none";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update_disability() {
+</xsl:text>
+ <xsl:text> if(this.disabled) {
+</xsl:text>
+ <xsl:text> /* show disabled */
+</xsl:text>
+ <xsl:text> this.disabled_elt.style.display = "";
+</xsl:text>
+ <xsl:text> /* hide inactive */
+</xsl:text>
+ <xsl:text> this.inactive_elt.style.display = "none";
+</xsl:text>
+ <xsl:text> /* hide active */
+</xsl:text>
+ <xsl:text> this.active_elt.style.display = "none";
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> /* hide disabled */
+</xsl:text>
+ <xsl:text> this.disabled_elt.style.display = "none";
+</xsl:text>
+ <xsl:text> this.update_activity();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> make_on_click() {
+</xsl:text>
+ <xsl:text> let that = this;
+</xsl:text>
+ <xsl:text> const name = this.args[0];
+</xsl:text>
+ <xsl:text> return function(evt){
+</xsl:text>
+ <xsl:text> /* TODO: in order to allow jumps to page selected through for exemple a dropdown,
+</xsl:text>
+ <xsl:text> support path pointing to local variable whom value
+</xsl:text>
+ <xsl:text> would be an HMI_TREE index and then jump to a relative page not hard-coded in advance */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(!that.disabled) {
+</xsl:text>
+ <xsl:text> const index = that.indexes.length > 0 ? that.indexes[0] + that.offset : undefined;
+</xsl:text>
+ <xsl:text> switch_page(name, index);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> notify_page_change(page_name, index) {
+</xsl:text>
+ <xsl:text> if(this.activable) {
+</xsl:text>
+ <xsl:text> const ref_index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined;
+</xsl:text>
+ <xsl:text> const ref_name = this.args[0];
+</xsl:text>
+ <xsl:text> this.active = ((ref_name == undefined || ref_name == page_name) && index == ref_index);
+</xsl:text>
+ <xsl:text> this.update_state();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.disabled = !Number(value);
+</xsl:text>
+ <xsl:text> this.update_state();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Jump']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:variable name="activity">
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>active inactive</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="have_activity" select="string-length($activity)>0"/>
+ <xsl:value-of select="$activity"/>
+ <xsl:variable name="disability">
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>disabled</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="have_disability" select="$have_activity and string-length($disability)>0"/>
+ <xsl:value-of select="$disability"/>
+ <xsl:text> init: function() {
+</xsl:text>
+ <xsl:text> this.element.onclick = this.make_on_click();
+</xsl:text>
+ <xsl:if test="$have_activity">
+ <xsl:text> this.activable = true;
+</xsl:text>
+ </xsl:if>
+ <xsl:if test="not($have_disability)">
+ <xsl:text> this.unsubscribable = true;
+</xsl:text>
+ </xsl:if>
+ <xsl:text> this.update_state = </xsl:text>
+ <xsl:choose>
+ <xsl:when test="$have_disability">
+ <xsl:text>this.update_disability</xsl:text>
+ </xsl:when>
+ <xsl:when test="$have_activity">
+ <xsl:text>this.update_activity</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>null</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>;
+</xsl:text>
+ <xsl:text> },
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Jump']" mode="widget_page">
+ <xsl:param name="page_desc"/>
+ <xsl:param name="page_desc"/>
+ <xsl:if test="path">
+ <xsl:variable name="target_page_name">
+ <xsl:choose>
+ <xsl:when test="arg">
+ <xsl:value-of select="arg[1]/@value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$page_desc/arg[1]/@value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="target_page_path">
+ <xsl:choose>
+ <xsl:when test="arg">
+ <xsl:value-of select="$hmi_pages_descs[arg[1]/@value = $target_page_name]/path[1]/@value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$page_desc/path[1]/@value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="not(func:same_class_paths($target_page_path, path[1]/@value))">
+ <xsl:message terminate="yes">
+ <xsl:text>Jump id="</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>" to page "</xsl:text>
+ <xsl:value-of select="$target_page_name"/>
+ <xsl:text>" with incompatible path "</xsl:text>
+ <xsl:value-of select="path[1]/@value"/>
+ <xsl:text> (must be same class as "</xsl:text>
+ <xsl:value-of select="$target_page_path"/>
+ <xsl:text>")</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <declarations:jump/>
+ <xsl:template match="declarations:jump">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var jumps_need_update = false;
+</xsl:text>
+ <xsl:text>var jump_history = [[default_page, undefined]];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function update_jumps() {
+</xsl:text>
+ <xsl:text> page_desc[current_visible_page].jumps.map(w=>w.notify_page_change(current_visible_page,current_page_index));
+</xsl:text>
+ <xsl:text> jumps_need_update = false;
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Keypad']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Keypad - to be written
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Keypad </xsl:text>
+ </shortdesc>
+ <arg name="supported_types" accepts="string">
+ <xsl:text>keypad can input those types </xsl:text>
+ </arg>
+ </xsl:template>
+ <declarations:keypad/>
+ <xsl:template match="declarations:keypad">
+ <xsl:text>
+</xsl:text>
+ <xsl:text>/* </xsl:text>
+ <xsl:value-of select="local-name()"/>
+ <xsl:text> */
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var keypads = {
+</xsl:text>
+ <xsl:for-each select="$keypads_descs">
+ <xsl:variable name="keypad_id" select="@id"/>
+ <xsl:for-each select="arg">
+ <xsl:variable name="g" select="$geometry[@Id = $keypad_id]"/>
+ <xsl:text> "</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>":["</xsl:text>
+ <xsl:value-of select="$keypad_id"/>
+ <xsl:text>", </xsl:text>
+ <xsl:value-of select="$g/@x"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$g/@y"/>
+ <xsl:text>],
+</xsl:text>
+ </xsl:for-each>
+ </xsl:for-each>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Keypad']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>KeypadWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> on_key_click(symbols) {
+</xsl:text>
+ <xsl:text> var syms = symbols.split(" ");
+</xsl:text>
+ <xsl:text> this.shift |= this.caps;
+</xsl:text>
+ <xsl:text> this.editstr += syms[this.shift?syms.length-1:0];
+</xsl:text>
+ <xsl:text> this.shift = false;
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_Esc_click() {
+</xsl:text>
+ <xsl:text> end_modal.call(this);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_Enter_click() {
+</xsl:text>
+ <xsl:text> let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr;
+</xsl:text>
+ <xsl:text> if(typeof coercedval == 'number' && isNaN(coercedval)){
+</xsl:text>
+ <xsl:text> // revert to initial so it explicitely shows input was ignored
+</xsl:text>
+ <xsl:text> this.editstr = String(this.initial);
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> let callback_obj = this.result_callback_obj;
+</xsl:text>
+ <xsl:text> end_modal.call(this);
+</xsl:text>
+ <xsl:text> callback_obj.edit_callback(coercedval);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_BackSpace_click() {
+</xsl:text>
+ <xsl:text> this.editstr = this.editstr.slice(0,this.editstr.length-1);
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_Sign_click() {
+</xsl:text>
+ <xsl:text> if(this.editstr[0] == "-")
+</xsl:text>
+ <xsl:text> this.editstr = this.editstr.slice(1,this.editstr.length);
+</xsl:text>
+ <xsl:text> else
+</xsl:text>
+ <xsl:text> this.editstr = "-" + this.editstr;
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_NumDot_click() {
+</xsl:text>
+ <xsl:text> if(this.editstr.indexOf(".") == "-1"){
+</xsl:text>
+ <xsl:text> this.editstr += ".";
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_Space_click() {
+</xsl:text>
+ <xsl:text> this.editstr += " ";
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> caps = false;
+</xsl:text>
+ <xsl:text> _caps = undefined;
+</xsl:text>
+ <xsl:text> on_CapsLock_click() {
+</xsl:text>
+ <xsl:text> this.caps = !this.caps;
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> shift = false;
+</xsl:text>
+ <xsl:text> _shift = undefined;
+</xsl:text>
+ <xsl:text> on_Shift_click() {
+</xsl:text>
+ <xsl:text> this.shift = !this.shift;
+</xsl:text>
+ <xsl:text> this.caps = false;
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> editstr = "";
+</xsl:text>
+ <xsl:text> _editstr = undefined;
+</xsl:text>
+ <xsl:text> result_callback_obj = undefined;
+</xsl:text>
+ <xsl:text> start_edit(info, valuetype, callback_obj, initial,size) {
+</xsl:text>
+ <xsl:text> show_modal.call(this,size);
+</xsl:text>
+ <xsl:text> this.editstr = String(initial);
+</xsl:text>
+ <xsl:text> this.result_callback_obj = callback_obj;
+</xsl:text>
+ <xsl:text> this.Info_elt.textContent = info;
+</xsl:text>
+ <xsl:text> this.shift = false;
+</xsl:text>
+ <xsl:text> this.caps = false;
+</xsl:text>
+ <xsl:text> this.initial = initial;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.update();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update() {
+</xsl:text>
+ <xsl:text> if(this.editstr != this._editstr){
+</xsl:text>
+ <xsl:text> this._editstr = this.editstr;
+</xsl:text>
+ <xsl:text> this.Value_elt.textContent = this.editstr;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if(this.Shift_sub && this.shift != this._shift){
+</xsl:text>
+ <xsl:text> this._shift = this.shift;
+</xsl:text>
+ <xsl:text> (this.shift?this.activate_activable:this.inactivate_activable)(this.Shift_sub);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> if(this.CapsLock_sub && this.caps != this._caps){
+</xsl:text>
+ <xsl:text> this._caps = this.caps;
+</xsl:text>
+ <xsl:text> (this.caps?this.activate_activable:this.inactivate_activable)(this.CapsLock_sub);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Keypad']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>Esc Enter BackSpace Keys Info Value</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>Sign Space NumDot</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>CapsLock Shift</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ <xsl:with-param name="subelements" select="'active inactive'"/>
+ </xsl:call-template>
+ <xsl:text> init: function() {
+</xsl:text>
+ <xsl:for-each select="$hmi_element/*[@inkscape:label = 'Keys']/*">
+ <xsl:text> id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ <xsl:text>'].on_key_click('</xsl:text>
+ <xsl:value-of select="func:escape_quotes(@inkscape:label)"/>
+ <xsl:text>')");
+</xsl:text>
+ </xsl:for-each>
+ <xsl:for-each select="str:split('Esc Enter BackSpace Sign Space NumDot CapsLock Shift')">
+ <xsl:text> if(this.</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>_elt)
+</xsl:text>
+ <xsl:text> this.</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>_elt.setAttribute("onclick", "hmi_widgets['</xsl:text>
+ <xsl:value-of select="$hmi_element/@id"/>
+ <xsl:text>'].on_</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>_click()");
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> },
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:variable name="g" select="$geometry[@Id = $hmi_element/@id]"/>
+ <xsl:text> coordinates: [</xsl:text>
+ <xsl:value-of select="$g/@x"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$g/@y"/>
+ <xsl:text>],
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='List']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ </xsl:template>
+ <xsl:template match="widget[@type='List']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:text> items: {
+</xsl:text>
+ <xsl:for-each select="$hmi_element/*[@inkscape:label]">
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@inkscape:label"/>
+ <xsl:text>: "</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>",
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> },
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='TextStyleList']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ </xsl:template>
+ <xsl:template match="widget[@type='TextStyleList']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:text> styles: {
+</xsl:text>
+ <xsl:for-each select="$hmi_element/*[@inkscape:label]">
+ <xsl:variable name="style" select="func:refered_elements(.)[self::svg:text]/@style"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="@inkscape:label"/>
+ <xsl:text>: "</xsl:text>
+ <xsl:value-of select="$style"/>
+ <xsl:text>",
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> },
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Meter']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Meter widget moves the end of "needle" labeled path along "range" labeled
+</xsl:text>
+ <xsl:text>path, according to value of the single accepted variable.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Needle is reduced to a single segment. If "min" a "max" labeled texts
+</xsl:text>
+ <xsl:text>are provided, or if first and second argument are given, then they are used
+</xsl:text>
+ <xsl:text>as respective minimum and maximum value. Otherwise, value is expected to be
+</xsl:text>
+ <xsl:text>in between 0 and 100.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>If "value" labeled text is found, then its content is replaced by value.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Moves "needle" along "range"</xsl:text>
+ </shortdesc>
+ <arg name="min" count="optional" accepts="int,real">
+ <xsl:text>minimum value</xsl:text>
+ </arg>
+ <arg name="max" count="optional" accepts="int,real">
+ <xsl:text>maximum value</xsl:text>
+ </arg>
+ <path name="value" accepts="HMI_INT,HMI_REAL">
+ <xsl:text>Value to display</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Meter']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>MeterWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 10;
+</xsl:text>
+ <xsl:text> origin = undefined;
+</xsl:text>
+ <xsl:text> range = undefined;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.display_val = value;
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> if(this.value_elt)
+</xsl:text>
+ <xsl:text> this.value_elt.textContent = String(this.display_val);
+</xsl:text>
+ <xsl:text> let [min,max,totallength] = this.range;
+</xsl:text>
+ <xsl:text> let length = Math.max(0,Math.min(totallength,(Number(this.display_val)-min)*totallength/(max-min)));
+</xsl:text>
+ <xsl:text> let tip = this.range_elt.getPointAtLength(length);
+</xsl:text>
+ <xsl:text> this.needle_elt.setAttribute('d', "M "+this.origin.x+","+this.origin.y+" "+tip.x+","+tip.y);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt?
+</xsl:text>
+ <xsl:text> Number(elt.textContent) :
+</xsl:text>
+ <xsl:text> this.args.length >= i+1 ? this.args[i] : def);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.range = [min, max, this.range_elt.getTotalLength()]
+</xsl:text>
+ <xsl:text> this.origin = this.needle_elt.getPointAtLength(0);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Meter']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>needle range</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>value min max</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="widget[@type='MultiState']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <longdesc>
+ <xsl:text>Mutlistateh widget hides all subelements whose label do not match given
+</xsl:text>
+ <xsl:text>variable value representation. For exemple if given variable type
+</xsl:text>
+ <xsl:text>is HMI_INT and value is 1, then elements with label '1' will be displayed.
+</xsl:text>
+ <xsl:text>Label can have comments, so '1#some comment' would also match. If matching
+</xsl:text>
+ <xsl:text>variable of type HMI_STRING, then double quotes must be used. For exemple,
+</xsl:text>
+ <xsl:text>'"hello"' or '"hello"#another comment' match HMI_STRING 'hello'.
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>Click on widget changes variable value to next value in given list, or to
+</xsl:text>
+ <xsl:text>first one if not initialized to value already part of the list.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Show elements whose label match value.</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT,HMI_STRING">
+ <xsl:text>value to compare to labels</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='MultiState']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>MultiStateWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> state = 0;
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.state = value;
+</xsl:text>
+ <xsl:text> for(let choice of this.choices){
+</xsl:text>
+ <xsl:text> if(this.state != choice.value){
+</xsl:text>
+ <xsl:text> choice.elt.setAttribute("style", "display:none");
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> choice.elt.setAttribute("style", choice.style);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_click(evt) {
+</xsl:text>
+ <xsl:text> //get current selected value
+</xsl:text>
+ <xsl:text> let next_ind;
+</xsl:text>
+ <xsl:text> for(next_ind=0; next_ind<this.choices.length; next_ind++){
+</xsl:text>
+ <xsl:text> if(this.state == this.choices[next_ind].value){
+</xsl:text>
+ <xsl:text> next_ind = next_ind + 1;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //get next selected value
+</xsl:text>
+ <xsl:text> if(this.choices.length > next_ind){
+</xsl:text>
+ <xsl:text> this.state = this.choices[next_ind].value;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> this.state = this.choices[0].value;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //post value to plc
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, this.state);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='MultiState']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:text> choices: [
+</xsl:text>
+ <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/>
+ <xsl:for-each select="$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]">
+ <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/>
+ <xsl:text> {
+</xsl:text>
+ <xsl:text> elt:id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>"),
+</xsl:text>
+ <xsl:text> style:"</xsl:text>
+ <xsl:value-of select="@style"/>
+ <xsl:text>",
+</xsl:text>
+ <xsl:text> value:</xsl:text>
+ <xsl:value-of select="$literal"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ],
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='ScrollBar']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>ScrollBar - documentation to be written
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>ScrollBar</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT">
+ <xsl:text>value</xsl:text>
+ </path>
+ <path name="range" accepts="HMI_INT">
+ <xsl:text>range</xsl:text>
+ </path>
+ <path name="visible" accepts="HMI_INT">
+ <xsl:text>visible</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='ScrollBar']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>ScrollBarWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 10;
+</xsl:text>
+ <xsl:text> position = undefined;
+</xsl:text>
+ <xsl:text> range = undefined;
+</xsl:text>
+ <xsl:text> size = undefined;
+</xsl:text>
+ <xsl:text> mincursize = 0.1;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value,oldval, index) {
+</xsl:text>
+ <xsl:text> switch(index) {
+</xsl:text>
+ <xsl:text> case 0:
+</xsl:text>
+ <xsl:text> this.range = Math.max(1,value);
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> case 1:
+</xsl:text>
+ <xsl:text> this.position = value;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> case 2:
+</xsl:text>
+ <xsl:text> this.size = value;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> get_ratios() {
+</xsl:text>
+ <xsl:text> let range = this.range;
+</xsl:text>
+ <xsl:text> let size = Math.max(this.range * this.mincursize, Math.min(this.size, range));
+</xsl:text>
+ <xsl:text> let maxh = this.range_elt.height.baseVal.value;
+</xsl:text>
+ <xsl:text> let pixels = maxh;
+</xsl:text>
+ <xsl:text> let units = range;
+</xsl:text>
+ <xsl:text> return [size, maxh, range, pixels, units];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> if(this.position == undefined || this.range == undefined || this.size == undefined)
+</xsl:text>
+ <xsl:text> return;
+</xsl:text>
+ <xsl:text> let [size, maxh, range, pixels, units] = this.get_ratios();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let new_y = this.range_elt.y.baseVal.value + Math.round(Math.min(this.position,range-size) * pixels / units);
+</xsl:text>
+ <xsl:text> let new_height = Math.round(maxh * size/range);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.cursor_elt.y.baseVal.value = new_y;
+</xsl:text>
+ <xsl:text> this.cursor_elt.height.baseVal.value = new_height;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init_mandatory() {
+</xsl:text>
+ <xsl:text> this.cursor_elt.onpointerdown = () => this.on_cursor_down();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.bound_drag = this.drag.bind(this);
+</xsl:text>
+ <xsl:text> this.bound_drop = this.drop.bind(this);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> apply_position(position){
+</xsl:text>
+ <xsl:text> this.position = Math.round(Math.max(Math.min(position, this.range - this.size), 0));
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(1, this.position);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_page_click(is_up){
+</xsl:text>
+ <xsl:text> this.apply_position(is_up ? this.position-this.size
+</xsl:text>
+ <xsl:text> : this.position+this.size);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_cursor_down(e){
+</xsl:text>
+ <xsl:text> // get scrollbar -> root transform
+</xsl:text>
+ <xsl:text> let ctm = this.range_elt.getCTM();
+</xsl:text>
+ <xsl:text> // relative motion -> discard translation
+</xsl:text>
+ <xsl:text> ctm.e = 0;
+</xsl:text>
+ <xsl:text> ctm.f = 0;
+</xsl:text>
+ <xsl:text> // root -> scrollbar transform
+</xsl:text>
+ <xsl:text> this.invctm = ctm.inverse();
+</xsl:text>
+ <xsl:text> svg_root.addEventListener("pointerup", this.bound_drop, true);
+</xsl:text>
+ <xsl:text> svg_root.addEventListener("pointermove", this.bound_drag, true);
+</xsl:text>
+ <xsl:text> this.dragpos = this.position;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> drop(e) {
+</xsl:text>
+ <xsl:text> svg_root.removeEventListener("pointerup", this.bound_drop, true);
+</xsl:text>
+ <xsl:text> svg_root.removeEventListener("pointermove", this.bound_drag, true);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> drag(e) {
+</xsl:text>
+ <xsl:text> let [size, maxh, range, pixels, units] = this.get_ratios();
+</xsl:text>
+ <xsl:text> if(pixels == 0) return;
+</xsl:text>
+ <xsl:text> let point = new DOMPoint(e.movementX, e.movementY);
+</xsl:text>
+ <xsl:text> let movement = point.matrixTransform(this.invctm).y;
+</xsl:text>
+ <xsl:text> this.dragpos += movement * units / pixels;
+</xsl:text>
+ <xsl:text> this.apply_position(this.dragpos);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='ScrollBar']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>cursor range</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:variable name="pagebuttons">
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>pageup pagedown</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="have_pagebuttons" select="string-length($pagebuttons)>0"/>
+ <xsl:value-of select="$pagebuttons"/>
+ <xsl:text> init: function() {
+</xsl:text>
+ <xsl:text> this.init_mandatory();
+</xsl:text>
+ <xsl:if test="$have_pagebuttons">
+ <xsl:text> this.pageup_elt.onclick = () => this.on_page_click(true);
+</xsl:text>
+ <xsl:text> this.pagedown_elt.onclick = () => this.on_page_click(false);
+</xsl:text>
+ </xsl:if>
+ <xsl:text> },
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Slider']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Slider - DEPRECATED - use ScrollBar or PathSlider instead
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Slider - DEPRECATED - use ScrollBar instead</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT">
+ <xsl:text>value</xsl:text>
+ </path>
+ <path name="range" accepts="HMI_INT">
+ <xsl:text>range</xsl:text>
+ </path>
+ <path name="visible" accepts="HMI_INT">
+ <xsl:text>visible</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Slider']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>SliderWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> range = undefined;
+</xsl:text>
+ <xsl:text> handle_orig = undefined;
+</xsl:text>
+ <xsl:text> scroll_size = undefined;
+</xsl:text>
+ <xsl:text> scroll_range = 0;
+</xsl:text>
+ <xsl:text> scroll_visible = 7;
+</xsl:text>
+ <xsl:text> min_size = 0.07;
+</xsl:text>
+ <xsl:text> fi = undefined;
+</xsl:text>
+ <xsl:text> curr_value = 0;
+</xsl:text>
+ <xsl:text> drag = false;
+</xsl:text>
+ <xsl:text> enTimer = false;
+</xsl:text>
+ <xsl:text> handle_click = undefined;
+</xsl:text>
+ <xsl:text> last_drag = false;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value,oldval, index) {
+</xsl:text>
+ <xsl:text> if (index == 0){
+</xsl:text>
+ <xsl:text> let [min,max,start,totallength] = this.range;
+</xsl:text>
+ <xsl:text> //save current value inside widget
+</xsl:text>
+ <xsl:text> this.curr_value = value;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //check if in range
+</xsl:text>
+ <xsl:text> if (this.curr_value > max){
+</xsl:text>
+ <xsl:text> this.curr_value = max;
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, this.curr_value);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if (this.curr_value < min){
+</xsl:text>
+ <xsl:text> this.curr_value = min;
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, this.curr_value);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(this.value_elt)
+</xsl:text>
+ <xsl:text> this.value_elt.textContent = String(value);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if(index == 1){
+</xsl:text>
+ <xsl:text> this.scroll_range = value;
+</xsl:text>
+ <xsl:text> this.set_scroll();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if(index == 2){
+</xsl:text>
+ <xsl:text> this.scroll_visible = value;
+</xsl:text>
+ <xsl:text> this.set_scroll();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //don't update if draging and setpoint ghost doesn't exist
+</xsl:text>
+ <xsl:text> if(!this.drag || (this.setpoint_elt != undefined)){
+</xsl:text>
+ <xsl:text> this.update_DOM(this.curr_value, this.handle_elt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> set_scroll(){
+</xsl:text>
+ <xsl:text> //check if range is bigger than visible and set scroll size
+</xsl:text>
+ <xsl:text> if(this.scroll_range > this.scroll_visible){
+</xsl:text>
+ <xsl:text> this.scroll_size = this.scroll_range - this.scroll_visible;
+</xsl:text>
+ <xsl:text> this.range[0] = 0;
+</xsl:text>
+ <xsl:text> this.range[1] = this.scroll_size;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> this.scroll_size = 1;
+</xsl:text>
+ <xsl:text> this.range[0] = 0;
+</xsl:text>
+ <xsl:text> this.range[1] = 1;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update_DOM(value, elt){
+</xsl:text>
+ <xsl:text> let [min,max,start,totallength] = this.range;
+</xsl:text>
+ <xsl:text> // check if handle is resizeable
+</xsl:text>
+ <xsl:text> if (this.scroll_size != undefined){ //size changes
+</xsl:text>
+ <xsl:text> //get parameters
+</xsl:text>
+ <xsl:text> let length = Math.max(min,Math.min(max,(Number(value)-min)*max/(max-min)));
+</xsl:text>
+ <xsl:text> let tip = this.range_elt.getPointAtLength(length);
+</xsl:text>
+ <xsl:text> let handle_min = totallength*this.min_size;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let step = 1;
+</xsl:text>
+ <xsl:text> //check if range is bigger than max displayed and recalculate step
+</xsl:text>
+ <xsl:text> if ((totallength/handle_min) < (max-min+1)){
+</xsl:text>
+ <xsl:text> step = (max-min+1)/(totallength/handle_min-1);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let kx,ky,offseY,offseX = undefined;
+</xsl:text>
+ <xsl:text> //scale on x or y axes
+</xsl:text>
+ <xsl:text> if (this.fi > 0.75){
+</xsl:text>
+ <xsl:text> //get scale factor
+</xsl:text>
+ <xsl:text> if(step > 1){
+</xsl:text>
+ <xsl:text> ky = handle_min/this.handle_orig.height;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> ky = (totallength-handle_min*(max-min))/this.handle_orig.height;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> kx = 1;
+</xsl:text>
+ <xsl:text> //get 0 offset to stay inside range
+</xsl:text>
+ <xsl:text> offseY = start.y - (this.handle_orig.height + this.handle_orig.y) * ky;
+</xsl:text>
+ <xsl:text> offseX = 0;
+</xsl:text>
+ <xsl:text> //get distance from value
+</xsl:text>
+ <xsl:text> tip.y =this.range_elt.getPointAtLength(0).y - length/step *handle_min;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> //get scale factor
+</xsl:text>
+ <xsl:text> if(step > 1){
+</xsl:text>
+ <xsl:text> kx = handle_min/this.handle_orig.width;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> kx = (totallength-handle_min*(max-min))/this.handle_orig.width;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> ky = 1;
+</xsl:text>
+ <xsl:text> //get 0 offset to stay inside range
+</xsl:text>
+ <xsl:text> offseX = start.x - (this.handle_orig.x * kx);
+</xsl:text>
+ <xsl:text> offseY = 0;
+</xsl:text>
+ <xsl:text> //get distance from value
+</xsl:text>
+ <xsl:text> tip.x =this.range_elt.getPointAtLength(0).x + length/step *handle_min;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> elt.setAttribute('transform',"matrix("+(kx)+" 0 0 "+(ky)+" "+(tip.x-start.x+offseX)+" "+(tip.y-start.y+offseY)+")");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{ //size stays the same
+</xsl:text>
+ <xsl:text> let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min)));
+</xsl:text>
+ <xsl:text> let tip = this.range_elt.getPointAtLength(length);
+</xsl:text>
+ <xsl:text> elt.setAttribute('transform',"translate("+(tip.x-start.x)+","+(tip.y-start.y)+")");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // show or hide ghost if exists
+</xsl:text>
+ <xsl:text> if(this.setpoint_elt != undefined){
+</xsl:text>
+ <xsl:text> if(this.last_drag!= this.drag){
+</xsl:text>
+ <xsl:text> if(this.drag){
+</xsl:text>
+ <xsl:text> this.setpoint_elt.setAttribute("style", this.setpoint_style);
+</xsl:text>
+ <xsl:text> }else{
+</xsl:text>
+ <xsl:text> this.setpoint_elt.setAttribute("style", "display:none");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> this.last_drag = this.drag;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_release(evt) {
+</xsl:text>
+ <xsl:text> //unbind events
+</xsl:text>
+ <xsl:text> window.removeEventListener("touchmove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text> window.removeEventListener("mousemove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text> window.removeEventListener("touchend", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text> window.removeEventListener("touchcancel", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //reset drag flag
+</xsl:text>
+ <xsl:text> if(this.drag){
+</xsl:text>
+ <xsl:text> this.drag = false;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // get final position
+</xsl:text>
+ <xsl:text> this.update_position(evt);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_drag(evt){
+</xsl:text>
+ <xsl:text> //ignore drag event for X amount of time and if not selected
+</xsl:text>
+ <xsl:text> if(this.enTimer && this.drag){
+</xsl:text>
+ <xsl:text> this.update_position(evt);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //reset timer
+</xsl:text>
+ <xsl:text> this.enTimer = false;
+</xsl:text>
+ <xsl:text> setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update_position(evt){
+</xsl:text>
+ <xsl:text> var html_dist = 0;
+</xsl:text>
+ <xsl:text> let [min,max,start,totallength] = this.range;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //calculate size of widget in html
+</xsl:text>
+ <xsl:text> var range_borders = this.range_elt.getBoundingClientRect();
+</xsl:text>
+ <xsl:text> var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top];
+</xsl:text>
+ <xsl:text> var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width );
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //get range and mouse coordinates
+</xsl:text>
+ <xsl:text> var mouseX = undefined;
+</xsl:text>
+ <xsl:text> var mouseY = undefined;
+</xsl:text>
+ <xsl:text> if (evt.type.startsWith("touch")){
+</xsl:text>
+ <xsl:text> mouseX = Math.ceil(evt.touches[0].clientX);
+</xsl:text>
+ <xsl:text> mouseY = Math.ceil(evt.touches[0].clientY);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> mouseX = evt.pageX;
+</xsl:text>
+ <xsl:text> mouseY = evt.pageY;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // calculate position
+</xsl:text>
+ <xsl:text> if (this.handle_click){ //if clicked on handle
+</xsl:text>
+ <xsl:text> let moveDist = 0, resizeAdd = 0;
+</xsl:text>
+ <xsl:text> let range_percent = 1;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //set paramters for resizeable handle
+</xsl:text>
+ <xsl:text> if (this.scroll_size != undefined){
+</xsl:text>
+ <xsl:text> // add one more object to stay inside range
+</xsl:text>
+ <xsl:text> resizeAdd = 1;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //chack if range is bigger than display option and
+</xsl:text>
+ <xsl:text> // calculate percent of range with out handle
+</xsl:text>
+ <xsl:text> if(((max/(max*this.min_size)) < (max-min+1))){
+</xsl:text>
+ <xsl:text> range_percent = 1-this.min_size;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> range_percent = 1-(max-max*this.min_size*(max-min))/max;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //calculate value difference on x or y axis
+</xsl:text>
+ <xsl:text> if(this.fi > 0.7){
+</xsl:text>
+ <xsl:text> moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((this.handle_click[1]-mouseY)/Math.sin(this.fi));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((mouseX-this.handle_click[0])/Math.cos(this.fi));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.curr_value = Math.ceil(this.handle_click[2] + moveDist);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{ //if clicked on widget
+</xsl:text>
+ <xsl:text> //get handle distance from mouse position
+</xsl:text>
+ <xsl:text> if (minX > mouseX && minY < mouseY){
+</xsl:text>
+ <xsl:text> html_dist = 0;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if (maxX < mouseX && maxY > mouseY){
+</xsl:text>
+ <xsl:text> html_dist = range_length;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> if(this.fi > 0.7){
+</xsl:text>
+ <xsl:text> html_dist = (minY - mouseY)/Math.sin(this.fi);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> html_dist = (mouseX - minX)/Math.cos(this.fi);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> //calculate distance
+</xsl:text>
+ <xsl:text> this.curr_value=Math.ceil((html_dist/range_length)*(this.range[1]-this.range[0])+this.range[0]);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //check if in range and apply
+</xsl:text>
+ <xsl:text> if (this.curr_value > max){
+</xsl:text>
+ <xsl:text> this.curr_value = max;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else if (this.curr_value < min){
+</xsl:text>
+ <xsl:text> this.curr_value = min;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, this.curr_value);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //redraw handle
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> // redraw handle on screen refresh
+</xsl:text>
+ <xsl:text> // check if setpoint(ghost) handle exsist otherwise update main handle
+</xsl:text>
+ <xsl:text> if(this.setpoint_elt != undefined){
+</xsl:text>
+ <xsl:text> this.update_DOM(this.curr_value, this.setpoint_elt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> this.update_DOM(this.curr_value, this.handle_elt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_select(evt){
+</xsl:text>
+ <xsl:text> //enable drag flag and timer
+</xsl:text>
+ <xsl:text> this.drag = true;
+</xsl:text>
+ <xsl:text> this.enTimer = true;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //bind events
+</xsl:text>
+ <xsl:text> window.addEventListener("touchmove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text> window.addEventListener("mousemove", this.on_bound_drag, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> window.addEventListener("mouseup", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text> window.addEventListener("touchend", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text> window.addEventListener("touchcancel", this.bound_on_release, true);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // check if handle was pressed
+</xsl:text>
+ <xsl:text> if (evt.currentTarget == this.handle_elt){
+</xsl:text>
+ <xsl:text> //get mouse position on the handle
+</xsl:text>
+ <xsl:text> let mouseX = undefined;
+</xsl:text>
+ <xsl:text> let mouseY = undefined;
+</xsl:text>
+ <xsl:text> if (evt.type.startsWith("touch")){
+</xsl:text>
+ <xsl:text> mouseX = Math.ceil(evt.touches[0].clientX);
+</xsl:text>
+ <xsl:text> mouseY = Math.ceil(evt.touches[0].clientY);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> mouseX = evt.pageX;
+</xsl:text>
+ <xsl:text> mouseY = evt.pageY;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> //save coordinates and orig value
+</xsl:text>
+ <xsl:text> this.handle_click = [mouseX,mouseY,this.curr_value];
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> else{
+</xsl:text>
+ <xsl:text> // get new handle position and reset if handle was not pressed
+</xsl:text>
+ <xsl:text> this.handle_click = undefined;
+</xsl:text>
+ <xsl:text> this.update_position(evt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //prevent next events
+</xsl:text>
+ <xsl:text> evt.stopPropagation();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> //set min max value if not defined
+</xsl:text>
+ <xsl:text> let min = this.min_elt ?
+</xsl:text>
+ <xsl:text> Number(this.min_elt.textContent) :
+</xsl:text>
+ <xsl:text> this.args.length >= 1 ? this.args[0] : 0;
+</xsl:text>
+ <xsl:text> let max = this.max_elt ?
+</xsl:text>
+ <xsl:text> Number(this.max_elt.textContent) :
+</xsl:text>
+ <xsl:text> this.args.length >= 2 ? this.args[1] : 100;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // save initial parameters
+</xsl:text>
+ <xsl:text> this.range_elt.style.strokeMiterlimit="0";
+</xsl:text>
+ <xsl:text> this.range = [min, max, this.range_elt.getPointAtLength(0),this.range_elt.getTotalLength()];
+</xsl:text>
+ <xsl:text> let start = this.range_elt.getPointAtLength(0);
+</xsl:text>
+ <xsl:text> let end = this.range_elt.getPointAtLength(this.range_elt.getTotalLength());
+</xsl:text>
+ <xsl:text> this.fi = Math.atan2(start.y-end.y, end.x-start.x);
+</xsl:text>
+ <xsl:text> this.handle_orig = this.handle_elt.getBBox();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //bind functions
+</xsl:text>
+ <xsl:text> this.bound_on_select = this.on_select.bind(this);
+</xsl:text>
+ <xsl:text> this.bound_on_release = this.on_release.bind(this);
+</xsl:text>
+ <xsl:text> this.on_bound_drag = this.on_drag.bind(this);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> this.handle_elt.addEventListener("mousedown", this.bound_on_select);
+</xsl:text>
+ <xsl:text> this.element.addEventListener("mousedown", this.bound_on_select);
+</xsl:text>
+ <xsl:text> this.element.addEventListener("touchstart", this.bound_on_select);
+</xsl:text>
+ <xsl:text> //touch recognised as page drag without next command
+</xsl:text>
+ <xsl:text> document.body.addEventListener("touchstart", function(e){}, false);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //save ghost style
+</xsl:text>
+ <xsl:text> if(this.setpoint_elt != undefined){
+</xsl:text>
+ <xsl:text> this.setpoint_style = this.setpoint_elt.getAttribute("style");
+</xsl:text>
+ <xsl:text> this.setpoint_elt.setAttribute("style", "display:none");
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Slider']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>handle range</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>value min max setpoint</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="widget[@type='Switch']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Switch widget hides all subelements whose label do not match given
+</xsl:text>
+ <xsl:text>variable current value representation. For exemple if given variable type
+</xsl:text>
+ <xsl:text>is HMI_INT and value is 1, then elements with label '1' will be displayed.
+</xsl:text>
+ <xsl:text>Label can have comments, so '1#some comment' would also match. If matching
+</xsl:text>
+ <xsl:text>variable of type HMI_STRING, then double quotes must be used. For exemple,
+</xsl:text>
+ <xsl:text>'"hello"' or '"hello"#another comment' match HMI_STRING 'hello'.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Show elements whose label match value.</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_INT,HMI_STRING">
+ <xsl:text>value to compare to labels</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='Switch']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>SwitchWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> for(let choice of this.choices){
+</xsl:text>
+ <xsl:text> if(value != choice.value){
+</xsl:text>
+ <xsl:text> choice.elt.setAttribute("style", "display:none");
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> choice.elt.setAttribute("style", choice.style);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='Switch']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:text> choices: [
+</xsl:text>
+ <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/>
+ <xsl:variable name="subelts" select="$result_widgets[@id = $hmi_element/@id]//*"/>
+ <xsl:variable name="subwidgets" select="$subelts//*[@id = $hmi_widgets/@id]"/>
+ <xsl:variable name="accepted" select="$subelts[not(ancestor-or-self::*/@id = $subwidgets/@id)]"/>
+ <xsl:for-each select="$accepted[regexp:test(@inkscape:label,$regex)]">
+ <xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/>
+ <xsl:text> {
+</xsl:text>
+ <xsl:text> elt:id("</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>"),
+</xsl:text>
+ <xsl:text> style:"</xsl:text>
+ <xsl:value-of select="@style"/>
+ <xsl:text>",
+</xsl:text>
+ <xsl:text> value:</xsl:text>
+ <xsl:value-of select="$literal"/>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> }</xsl:text>
+ <xsl:if test="position()!=last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ <xsl:text>
+</xsl:text>
+ </xsl:for-each>
+ <xsl:text> ],
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='ToggleButton']" mode="widget_desc">
+ <type>
+ <xsl:value-of select="@type"/>
+ </type>
+ <longdesc>
+ <xsl:text>Button widget takes one boolean variable path, and reflect current true
+</xsl:text>
+ <xsl:text>or false value by showing "active" or "inactive" labeled element
+</xsl:text>
+ <xsl:text>respectively. Clicking or touching button toggles variable.
+</xsl:text>
+ </longdesc>
+ <shortdesc>
+ <xsl:text>Toggle button reflecting given boolean variable</xsl:text>
+ </shortdesc>
+ <path name="value" accepts="HMI_BOOL">
+ <xsl:text>Boolean variable</xsl:text>
+ </path>
+ </xsl:template>
+ <xsl:template match="widget[@type='ToggleButton']" mode="widget_class">
+ <xsl:text>class </xsl:text>
+ <xsl:text>ToggleButtonWidget</xsl:text>
+ <xsl:text> extends Widget{
+</xsl:text>
+ <xsl:text> frequency = 5;
+</xsl:text>
+ <xsl:text> state = 0;
+</xsl:text>
+ <xsl:text> active_style = undefined;
+</xsl:text>
+ <xsl:text> inactive_style = undefined;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> dispatch(value) {
+</xsl:text>
+ <xsl:text> this.state = value;
+</xsl:text>
+ <xsl:text> //redraw toggle button
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> on_click(evt) {
+</xsl:text>
+ <xsl:text> //toggle state and apply
+</xsl:text>
+ <xsl:text> this.state = this.state ? false : true;
+</xsl:text>
+ <xsl:text> this.apply_hmi_value(0, this.state);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> //redraw toggle button
+</xsl:text>
+ <xsl:text> this.request_animate();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> activate(val) {
+</xsl:text>
+ <xsl:text> let [active, inactive] = val ? ["none",""] : ["", "none"];
+</xsl:text>
+ <xsl:text> if (this.active_elt)
+</xsl:text>
+ <xsl:text> this.active_elt.style.display = active;
+</xsl:text>
+ <xsl:text> if (this.inactive_elt)
+</xsl:text>
+ <xsl:text> this.inactive_elt.style.display = inactive;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> animate(){
+</xsl:text>
+ <xsl:text> // redraw toggle button on screen refresh
+</xsl:text>
+ <xsl:text> this.activate(this.state);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> init() {
+</xsl:text>
+ <xsl:text> this.activate(false);
+</xsl:text>
+ <xsl:text> this.element.onclick = (evt) => this.on_click(evt);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ </xsl:template>
+ <xsl:template match="widget[@type='ToggleButton']" mode="widget_defs">
+ <xsl:param name="hmi_element"/>
+ <xsl:call-template name="defs_by_labels">
+ <xsl:with-param name="hmi_element" select="$hmi_element"/>
+ <xsl:with-param name="labels">
+ <xsl:text>active inactive</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="mandatory" select="'no'"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="/">
+ <xsl:comment>
+ <xsl:text>Made with SVGHMI. https://beremiz.org</xsl:text>
+ </xsl:comment>
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <head>
+ <style type="text/css" media="screen">
+ <xsl:value-of select="ns:GetFonts()"/>
+ </style>
+ </head>
+ <body style="margin:0;overflow:hidden;user-select:none;touch-action:none;">
+ <xsl:copy-of select="$result_svg"/>
+ <script>
+ <xsl:text>
+//
+//
+// Early independent declarations
+//
+//
+</xsl:text>
+ <xsl:apply-templates select="document('')/*/preamble:*"/>
+ <xsl:text>
+//
+//
+// Declarations depending on preamble
+//
+//
+</xsl:text>
+ <xsl:apply-templates select="document('')/*/declarations:*"/>
+ <xsl:text>
+//
+//
+// Order independent declaration and code
+//
+//
+</xsl:text>
+ <xsl:apply-templates select="document('')/*/definitions:*"/>
+ <xsl:text>
+//
+//
+// Statements that needs to be at the end
+//
+//
+</xsl:text>
+ <xsl:apply-templates select="document('')/*/epilogue:*"/>
+ <xsl:text>// svghmi.js
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var need_cache_apply = [];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function dispatch_value(index, value) {
+</xsl:text>
+ <xsl:text> let widgets = subscribers(index);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let oldval = cache[index];
+</xsl:text>
+ <xsl:text> cache[index] = value;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(widgets.size > 0) {
+</xsl:text>
+ <xsl:text> for(let widget of widgets){
+</xsl:text>
+ <xsl:text> widget.new_hmi_value(index, value, oldval);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function init_widgets() {
+</xsl:text>
+ <xsl:text> Object.keys(hmi_widgets).forEach(function(id) {
+</xsl:text>
+ <xsl:text> let widget = hmi_widgets[id];
+</xsl:text>
+ <xsl:text> let init = widget.init;
+</xsl:text>
+ <xsl:text> if(typeof(init) == "function"){
+</xsl:text>
+ <xsl:text> try {
+</xsl:text>
+ <xsl:text> init.call(widget);
+</xsl:text>
+ <xsl:text> } catch(err) {
+</xsl:text>
+ <xsl:text> console.log(err);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> });
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>// Open WebSocket to relative "/ws" address
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var ws_url =
+</xsl:text>
+ <xsl:text> window.location.href.replace(/^http(s?:\/\/[^\/]*)\/.*$/, 'ws$1/ws')
+</xsl:text>
+ <xsl:text> + '?mode=' + (window.location.hash == "#watchdog"
+</xsl:text>
+ <xsl:text> ? "watchdog"
+</xsl:text>
+ <xsl:text> : "multiclient");
+</xsl:text>
+ <xsl:text>var ws = new WebSocket(ws_url);
+</xsl:text>
+ <xsl:text>ws.binaryType = 'arraybuffer';
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>const dvgetters = {
+</xsl:text>
+ <xsl:text> INT: (dv,offset) => [dv.getInt16(offset, true), 2],
+</xsl:text>
+ <xsl:text> BOOL: (dv,offset) => [dv.getInt8(offset, true), 1],
+</xsl:text>
+ <xsl:text> NODE: (dv,offset) => [dv.getInt8(offset, true), 1],
+</xsl:text>
+ <xsl:text> REAL: (dv,offset) => [dv.getFloat32(offset, true), 4],
+</xsl:text>
+ <xsl:text> STRING: (dv, offset) => {
+</xsl:text>
+ <xsl:text> const size = dv.getInt8(offset);
+</xsl:text>
+ <xsl:text> return [
+</xsl:text>
+ <xsl:text> String.fromCharCode.apply(null, new Uint8Array(
+</xsl:text>
+ <xsl:text> dv.buffer, /* original buffer */
+</xsl:text>
+ <xsl:text> offset + 1, /* string starts after size*/
+</xsl:text>
+ <xsl:text> size /* size of string */
+</xsl:text>
+ <xsl:text> )), size + 1]; /* total increment */
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>// Apply updates recieved through ws.onmessage to subscribed widgets
+</xsl:text>
+ <xsl:text>function apply_updates() {
+</xsl:text>
+ <xsl:text> updates.forEach((value, index) => {
+</xsl:text>
+ <xsl:text> dispatch_value(index, value);
+</xsl:text>
+ <xsl:text> });
+</xsl:text>
+ <xsl:text> updates.clear();
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>// Called on requestAnimationFrame, modifies DOM
+</xsl:text>
+ <xsl:text>var requestAnimationFrameID = null;
+</xsl:text>
+ <xsl:text>function animate() {
+</xsl:text>
+ <xsl:text> // Do the page swith if any one pending
+</xsl:text>
+ <xsl:text> if(current_subscribed_page != current_visible_page){
+</xsl:text>
+ <xsl:text> switch_visible_page(current_subscribed_page);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> while(widget = need_cache_apply.pop()){
+</xsl:text>
+ <xsl:text> widget.apply_cache();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(jumps_need_update) update_jumps();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> apply_updates();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> pending_widget_animates.forEach(widget => widget._animate());
+</xsl:text>
+ <xsl:text> pending_widget_animates = [];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> requestAnimationFrameID = null;
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function requestHMIAnimation() {
+</xsl:text>
+ <xsl:text> if(requestAnimationFrameID == null){
+</xsl:text>
+ <xsl:text> requestAnimationFrameID = window.requestAnimationFrame(animate);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>// Message reception handler
+</xsl:text>
+ <xsl:text>// Hash is verified and HMI values updates resulting from binary parsing
+</xsl:text>
+ <xsl:text>// are stored until browser can compute next frame, DOM is left untouched
+</xsl:text>
+ <xsl:text>ws.onmessage = function (evt) {
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let data = evt.data;
+</xsl:text>
+ <xsl:text> let dv = new DataView(data);
+</xsl:text>
+ <xsl:text> let i = 0;
+</xsl:text>
+ <xsl:text> try {
+</xsl:text>
+ <xsl:text> for(let hash_int of hmi_hash) {
+</xsl:text>
+ <xsl:text> if(hash_int != dv.getUint8(i)){
+</xsl:text>
+ <xsl:text> throw new Error("Hash doesn't match");
+</xsl:text>
+ <xsl:text> };
+</xsl:text>
+ <xsl:text> i++;
+</xsl:text>
+ <xsl:text> };
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> while(i < data.byteLength){
+</xsl:text>
+ <xsl:text> let index = dv.getUint32(i, true);
+</xsl:text>
+ <xsl:text> i += 4;
+</xsl:text>
+ <xsl:text> let iectype = hmitree_types[index];
+</xsl:text>
+ <xsl:text> if(iectype != undefined){
+</xsl:text>
+ <xsl:text> let dvgetter = dvgetters[iectype];
+</xsl:text>
+ <xsl:text> let [value, bytesize] = dvgetter(dv,i);
+</xsl:text>
+ <xsl:text> updates.set(index, value);
+</xsl:text>
+ <xsl:text> i += bytesize;
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> throw new Error("Unknown index "+index);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> };
+</xsl:text>
+ <xsl:text> // register for rendering on next frame, since there are updates
+</xsl:text>
+ <xsl:text> requestHMIAnimation();
+</xsl:text>
+ <xsl:text> } catch(err) {
+</xsl:text>
+ <xsl:text> // 1003 is for "Unsupported Data"
+</xsl:text>
+ <xsl:text> // ws.close(1003, err.message);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // TODO : remove debug alert ?
+</xsl:text>
+ <xsl:text> alert("Error : "+err.message+"\nHMI will be reloaded.");
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // force reload ignoring cache
+</xsl:text>
+ <xsl:text> location.reload(true);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>hmi_hash_u8 = new Uint8Array(hmi_hash);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function send_blob(data) {
+</xsl:text>
+ <xsl:text> if(data.length > 0) {
+</xsl:text>
+ <xsl:text> ws.send(new Blob([hmi_hash_u8].concat(data)));
+</xsl:text>
+ <xsl:text> };
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>const typedarray_types = {
+</xsl:text>
+ <xsl:text> INT: (number) => new Int16Array([number]),
+</xsl:text>
+ <xsl:text> BOOL: (truth) => new Int16Array([truth]),
+</xsl:text>
+ <xsl:text> NODE: (truth) => new Int16Array([truth]),
+</xsl:text>
+ <xsl:text> REAL: (number) => new Float32Array([number]),
+</xsl:text>
+ <xsl:text> STRING: (str) => {
+</xsl:text>
+ <xsl:text> // beremiz default string max size is 128
+</xsl:text>
+ <xsl:text> str = str.slice(0,128);
+</xsl:text>
+ <xsl:text> binary = new Uint8Array(str.length + 1);
+</xsl:text>
+ <xsl:text> binary[0] = str.length;
+</xsl:text>
+ <xsl:text> for(let i = 0; i < str.length; i++){
+</xsl:text>
+ <xsl:text> binary[i+1] = str.charCodeAt(i);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return binary;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> /* TODO */
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function send_reset() {
+</xsl:text>
+ <xsl:text> send_blob(new Uint8Array([1])); /* reset = 1 */
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var subscriptions = [];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function subscribers(index) {
+</xsl:text>
+ <xsl:text> let entry = subscriptions[index];
+</xsl:text>
+ <xsl:text> let res;
+</xsl:text>
+ <xsl:text> if(entry == undefined){
+</xsl:text>
+ <xsl:text> res = new Set();
+</xsl:text>
+ <xsl:text> subscriptions[index] = [res,0];
+</xsl:text>
+ <xsl:text> }else{
+</xsl:text>
+ <xsl:text> [res, _ign] = entry;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return res
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function get_subscription_period(index) {
+</xsl:text>
+ <xsl:text> let entry = subscriptions[index];
+</xsl:text>
+ <xsl:text> if(entry == undefined)
+</xsl:text>
+ <xsl:text> return 0;
+</xsl:text>
+ <xsl:text> let [_ign, period] = entry;
+</xsl:text>
+ <xsl:text> return period;
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function set_subscription_period(index, period) {
+</xsl:text>
+ <xsl:text> let entry = subscriptions[index];
+</xsl:text>
+ <xsl:text> if(entry == undefined){
+</xsl:text>
+ <xsl:text> subscriptions[index] = [new Set(), period];
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> entry[1] = period;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>// artificially subscribe the watchdog widget to "/heartbeat" hmi variable
+</xsl:text>
+ <xsl:text>// Since dispatch directly calls change_hmi_value,
+</xsl:text>
+ <xsl:text>// PLC will periodically send variable at given frequency
+</xsl:text>
+ <xsl:text>subscribers(heartbeat_index).add({
+</xsl:text>
+ <xsl:text> /* type: "Watchdog", */
+</xsl:text>
+ <xsl:text> frequency: 1,
+</xsl:text>
+ <xsl:text> indexes: [heartbeat_index],
+</xsl:text>
+ <xsl:text> new_hmi_value: function(index, value, oldval) {
+</xsl:text>
+ <xsl:text> apply_hmi_value(heartbeat_index, value+1);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>});
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function svg_text_to_multiline(elt) {
+</xsl:text>
+ <xsl:text> return(Array.prototype.map.call(elt.children, x=>x.textContent).join("\n"));
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function multiline_to_svg_text(elt, str) {
+</xsl:text>
+ <xsl:text> str.split('\n').map((line,i) => {elt.children[i].textContent = line;});
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function switch_langnum(langnum) {
+</xsl:text>
+ <xsl:text> langnum = Math.max(0, Math.min(langs.length - 1, langnum));
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> for (let translation of translations) {
+</xsl:text>
+ <xsl:text> let [objs, msgs] = translation;
+</xsl:text>
+ <xsl:text> let msg = msgs[langnum];
+</xsl:text>
+ <xsl:text> for (let obj of objs) {
+</xsl:text>
+ <xsl:text> multiline_to_svg_text(obj, msg);
+</xsl:text>
+ <xsl:text> obj.setAttribute("lang",langnum);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return langnum;
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>// backup original texts
+</xsl:text>
+ <xsl:text>for (let translation of translations) {
+</xsl:text>
+ <xsl:text> let [objs, msgs] = translation;
+</xsl:text>
+ <xsl:text> msgs.unshift(svg_text_to_multiline(objs[0]));
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var lang_local_index = hmi_local_index("lang");
+</xsl:text>
+ <xsl:text>var langcode_local_index = hmi_local_index("lang_code");
+</xsl:text>
+ <xsl:text>var langname_local_index = hmi_local_index("lang_name");
+</xsl:text>
+ <xsl:text>subscribers(lang_local_index).add({
+</xsl:text>
+ <xsl:text> indexes: [lang_local_index],
+</xsl:text>
+ <xsl:text> new_hmi_value: function(index, value, oldval) {
+</xsl:text>
+ <xsl:text> let current_lang = switch_langnum(value);
+</xsl:text>
+ <xsl:text> let [langname,langcode] = langs[current_lang];
+</xsl:text>
+ <xsl:text> apply_hmi_value(langcode_local_index, langcode);
+</xsl:text>
+ <xsl:text> apply_hmi_value(langname_local_index, langname);
+</xsl:text>
+ <xsl:text> switch_page();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>});
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function setup_lang(){
+</xsl:text>
+ <xsl:text> let current_lang = cache[lang_local_index];
+</xsl:text>
+ <xsl:text> let new_lang = switch_langnum(current_lang);
+</xsl:text>
+ <xsl:text> if(current_lang != new_lang){
+</xsl:text>
+ <xsl:text> apply_hmi_value(lang_local_index, new_lang);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>setup_lang();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function update_subscriptions() {
+</xsl:text>
+ <xsl:text> let delta = [];
+</xsl:text>
+ <xsl:text> for(let index in subscriptions){
+</xsl:text>
+ <xsl:text> let widgets = subscribers(index);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // periods are in ms
+</xsl:text>
+ <xsl:text> let previous_period = get_subscription_period(index);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // subscribing with a zero period is unsubscribing
+</xsl:text>
+ <xsl:text> let new_period = 0;
+</xsl:text>
+ <xsl:text> if(widgets.size > 0) {
+</xsl:text>
+ <xsl:text> let maxfreq = 0;
+</xsl:text>
+ <xsl:text> for(let widget of widgets){
+</xsl:text>
+ <xsl:text> let wf = widget.frequency;
+</xsl:text>
+ <xsl:text> if(wf != undefined && maxfreq < wf)
+</xsl:text>
+ <xsl:text> maxfreq = wf;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(maxfreq != 0)
+</xsl:text>
+ <xsl:text> new_period = 1000/maxfreq;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(previous_period != new_period) {
+</xsl:text>
+ <xsl:text> set_subscription_period(index, new_period);
+</xsl:text>
+ <xsl:text> if(index <= last_remote_index){
+</xsl:text>
+ <xsl:text> delta.push(
+</xsl:text>
+ <xsl:text> new Uint8Array([2]), /* subscribe = 2 */
+</xsl:text>
+ <xsl:text> new Uint32Array([index]),
+</xsl:text>
+ <xsl:text> new Uint16Array([new_period]));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> send_blob(delta);
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function send_hmi_value(index, value) {
+</xsl:text>
+ <xsl:text> if(index > last_remote_index){
+</xsl:text>
+ <xsl:text> updates.set(index, value);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(persistent_indexes.has(index)){
+</xsl:text>
+ <xsl:text> let varname = persistent_indexes.get(index);
+</xsl:text>
+ <xsl:text> document.cookie = varname+"="+value+"; max-age=3153600000";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> requestHMIAnimation();
+</xsl:text>
+ <xsl:text> return;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let iectype = hmitree_types[index];
+</xsl:text>
+ <xsl:text> let tobinary = typedarray_types[iectype];
+</xsl:text>
+ <xsl:text> send_blob([
+</xsl:text>
+ <xsl:text> new Uint8Array([0]), /* setval = 0 */
+</xsl:text>
+ <xsl:text> new Uint32Array([index]),
+</xsl:text>
+ <xsl:text> tobinary(value)]);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> // DON'T DO THAT unless read_iterator in svghmi.c modifies wbuf as well, not only rbuf
+</xsl:text>
+ <xsl:text> // cache[index] = value;
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function apply_hmi_value(index, new_val) {
+</xsl:text>
+ <xsl:text> let old_val = cache[index];
+</xsl:text>
+ <xsl:text> if(new_val != undefined && old_val != new_val)
+</xsl:text>
+ <xsl:text> send_hmi_value(index, new_val);
+</xsl:text>
+ <xsl:text> return new_val;
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>const quotes = {"'":null, '"':null};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function eval_operation_string(old_val, opstr) {
+</xsl:text>
+ <xsl:text> let op = opstr[0];
+</xsl:text>
+ <xsl:text> let given_val;
+</xsl:text>
+ <xsl:text> if(opstr.length < 2)
+</xsl:text>
+ <xsl:text> return undefined;
+</xsl:text>
+ <xsl:text> if(opstr[1] in quotes){
+</xsl:text>
+ <xsl:text> if(opstr.length < 3)
+</xsl:text>
+ <xsl:text> return undefined;
+</xsl:text>
+ <xsl:text> if(opstr[opstr.length-1] == opstr[1]){
+</xsl:text>
+ <xsl:text> given_val = opstr.slice(2,opstr.length-1);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> given_val = Number(opstr.slice(1));
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> let new_val;
+</xsl:text>
+ <xsl:text> switch(op){
+</xsl:text>
+ <xsl:text> case "=":
+</xsl:text>
+ <xsl:text> new_val = given_val;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> case "+":
+</xsl:text>
+ <xsl:text> new_val = old_val + given_val;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> case "-":
+</xsl:text>
+ <xsl:text> new_val = old_val - given_val;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> case "*":
+</xsl:text>
+ <xsl:text> new_val = old_val * given_val;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> case "/":
+</xsl:text>
+ <xsl:text> new_val = old_val / given_val;
+</xsl:text>
+ <xsl:text> break;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> return new_val;
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var current_visible_page;
+</xsl:text>
+ <xsl:text>var current_subscribed_page;
+</xsl:text>
+ <xsl:text>var current_page_index;
+</xsl:text>
+ <xsl:text>var page_node_local_index = hmi_local_index("page_node");
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function toggleFullscreen() {
+</xsl:text>
+ <xsl:text> let elem = document.documentElement;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if (!document.fullscreenElement) {
+</xsl:text>
+ <xsl:text> elem.requestFullscreen().catch(err => {
+</xsl:text>
+ <xsl:text> console.log("Error attempting to enable full-screen mode: "+err.message+" ("+err.name+")");
+</xsl:text>
+ <xsl:text> });
+</xsl:text>
+ <xsl:text> } else {
+</xsl:text>
+ <xsl:text> document.exitFullscreen();
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>}
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function prepare_svg() {
+</xsl:text>
+ <xsl:text> // prevents context menu from appearing on right click and long touch
+</xsl:text>
+ <xsl:text> document.body.addEventListener('contextmenu', e => {
+</xsl:text>
+ <xsl:text> toggleFullscreen();
+</xsl:text>
+ <xsl:text> e.preventDefault();
+</xsl:text>
+ <xsl:text> });
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> for(let eltid in detachable_elements){
+</xsl:text>
+ <xsl:text> let [element,parent] = detachable_elements[eltid];
+</xsl:text>
+ <xsl:text> parent.removeChild(element);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function switch_page(page_name, page_index) {
+</xsl:text>
+ <xsl:text> if(current_subscribed_page != current_visible_page){
+</xsl:text>
+ <xsl:text> /* page switch already going */
+</xsl:text>
+ <xsl:text> /* TODO LOG ERROR */
+</xsl:text>
+ <xsl:text> return false;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(page_name == undefined)
+</xsl:text>
+ <xsl:text> page_name = current_subscribed_page;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let old_desc = page_desc[current_subscribed_page];
+</xsl:text>
+ <xsl:text> let new_desc = page_desc[page_name];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(new_desc == undefined){
+</xsl:text>
+ <xsl:text> /* TODO LOG ERROR */
+</xsl:text>
+ <xsl:text> return false;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(page_index == undefined){
+</xsl:text>
+ <xsl:text> page_index = new_desc.page_index;
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(old_desc){
+</xsl:text>
+ <xsl:text> old_desc.widgets.map(([widget,relativeness])=>widget.unsub());
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> const new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> const container_id = page_name + (page_index != undefined ? page_index : "");
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> new_desc.widgets.map(([widget,relativeness])=>widget.sub(new_offset,relativeness,container_id));
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> update_subscriptions();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> current_subscribed_page = page_name;
+</xsl:text>
+ <xsl:text> current_page_index = page_index;
+</xsl:text>
+ <xsl:text> let page_node;
+</xsl:text>
+ <xsl:text> if(page_index != undefined){
+</xsl:text>
+ <xsl:text> page_node = hmitree_paths[page_index];
+</xsl:text>
+ <xsl:text> }else{
+</xsl:text>
+ <xsl:text> page_node = "";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> apply_hmi_value(page_node_local_index, page_node);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> jumps_need_update = true;
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> requestHMIAnimation();
+</xsl:text>
+ <xsl:text> jump_history.push([page_name, page_index]);
+</xsl:text>
+ <xsl:text> if(jump_history.length > 42)
+</xsl:text>
+ <xsl:text> jump_history.shift();
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> return true;
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function switch_visible_page(page_name) {
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> let old_desc = page_desc[current_visible_page];
+</xsl:text>
+ <xsl:text> let new_desc = page_desc[page_name];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> if(old_desc){
+</xsl:text>
+ <xsl:text> for(let eltid in old_desc.required_detachables){
+</xsl:text>
+ <xsl:text> if(!(eltid in new_desc.required_detachables)){
+</xsl:text>
+ <xsl:text> let [element, parent] = old_desc.required_detachables[eltid];
+</xsl:text>
+ <xsl:text> parent.removeChild(element);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> for(let eltid in new_desc.required_detachables){
+</xsl:text>
+ <xsl:text> if(!(eltid in old_desc.required_detachables)){
+</xsl:text>
+ <xsl:text> let [element, parent] = new_desc.required_detachables[eltid];
+</xsl:text>
+ <xsl:text> parent.appendChild(element);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }else{
+</xsl:text>
+ <xsl:text> for(let eltid in new_desc.required_detachables){
+</xsl:text>
+ <xsl:text> let [element, parent] = new_desc.required_detachables[eltid];
+</xsl:text>
+ <xsl:text> parent.appendChild(element);
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> svg_root.setAttribute('viewBox',new_desc.bbox.join(" "));
+</xsl:text>
+ <xsl:text> current_visible_page = page_name;
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>// Once connection established
+</xsl:text>
+ <xsl:text>ws.onopen = function (evt) {
+</xsl:text>
+ <xsl:text> init_widgets();
+</xsl:text>
+ <xsl:text> send_reset();
+</xsl:text>
+ <xsl:text> // show main page
+</xsl:text>
+ <xsl:text> prepare_svg();
+</xsl:text>
+ <xsl:text> switch_page(default_page);
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>ws.onclose = function (evt) {
+</xsl:text>
+ <xsl:text> // TODO : add visible notification while waiting for reload
+</xsl:text>
+ <xsl:text> console.log("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+" Reload in 10s.");
+</xsl:text>
+ <xsl:text> // TODO : re-enable auto reload when not in debug
+</xsl:text>
+ <xsl:text> //window.setTimeout(() => location.reload(true), 10000);
+</xsl:text>
+ <xsl:text> alert("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+".");
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>const xmlns = "http://www.w3.org/2000/svg";
+</xsl:text>
+ <xsl:text>var edit_callback;
+</xsl:text>
+ <xsl:text>const localtypes = {"PAGE_LOCAL":null, "HMI_LOCAL":null}
+</xsl:text>
+ <xsl:text>function edit_value(path, valuetype, callback, initial) {
+</xsl:text>
+ <xsl:text> if(valuetype in localtypes){
+</xsl:text>
+ <xsl:text> valuetype = (typeof initial) == "number" ? "HMI_REAL" : "HMI_STRING";
+</xsl:text>
+ <xsl:text> }
+</xsl:text>
+ <xsl:text> let [keypadid, xcoord, ycoord] = keypads[valuetype];
+</xsl:text>
+ <xsl:text> edit_callback = callback;
+</xsl:text>
+ <xsl:text> let widget = hmi_widgets[keypadid];
+</xsl:text>
+ <xsl:text> widget.start_edit(path, valuetype, callback, initial);
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>var current_modal; /* TODO stack ?*/
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function show_modal() {
+</xsl:text>
+ <xsl:text> let [element, parent] = detachable_elements[this.element.id];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> tmpgrp = document.createElementNS(xmlns,"g");
+</xsl:text>
+ <xsl:text> tmpgrpattr = document.createAttribute("transform");
+</xsl:text>
+ <xsl:text> let [xcoord,ycoord] = this.coordinates;
+</xsl:text>
+ <xsl:text> let [xdest,ydest] = page_desc[current_visible_page].bbox;
+</xsl:text>
+ <xsl:text> tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")";
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> tmpgrp.setAttributeNode(tmpgrpattr);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> tmpgrp.appendChild(element);
+</xsl:text>
+ <xsl:text> parent.appendChild(tmpgrp);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> current_modal = [this.element.id, tmpgrp];
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text>function end_modal() {
+</xsl:text>
+ <xsl:text> let [eltid, tmpgrp] = current_modal;
+</xsl:text>
+ <xsl:text> let [element, parent] = detachable_elements[this.element.id];
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> parent.removeChild(tmpgrp);
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ <xsl:text> current_modal = undefined;
+</xsl:text>
+ <xsl:text>};
+</xsl:text>
+ <xsl:text>
+</xsl:text>
+ </script>
+ </body>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/gen_index_xhtml.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,101 @@
+include yslt_noindent.yml2
+
+// overrides yslt's output function to set CDATA
+decl output(method, cdata-section-elements="xhtml:script");
+
+// helper to emit some content to internal namespaces
+decl emit(*name) alias - {
+ *name;
+ template *name {
+ // value "ns:ProgressStart(name())";
+ |
+ | /* «local-name()» */
+ |
+ content;
+ |
+ // value "ns:ProgressEnd(name())";
+ }
+};
+
+istylesheet
+ /* From Inkscape */
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
+
+ /* Internal namespaces to allow emit code/content from anywhere */
+ xmlns:debug="debug"
+ xmlns:preamble="preamble"
+ xmlns:declarations="declarations"
+ xmlns:definitions="definitions"
+ xmlns:epilogue="epilogue"
+
+ /* Namespace to invoke python code */
+ xmlns:ns="beremiz"
+
+ extension-element-prefixes="ns func exsl regexp str dyn"
+ exclude-result-prefixes="ns func exsl regexp str dyn debug preamble epilogue declarations definitions" {
+
+ const "svg", "/svg:svg";
+ const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]";
+
+
+ include hmi_tree.ysl2
+
+ include geometry.ysl2
+
+ include detachable_pages.ysl2
+
+ include inline_svg.ysl2
+
+ include i18n.ysl2
+
+ include widgets_common.ysl2
+
+ include widget_*.ysl2
+
+
+ template "/" {
+ comment > Made with SVGHMI. https://beremiz.org
+
+ // all debug output from included definitions, as comments
+ // comment apply "document('')/*/debug:*";
+
+ html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" {
+ head {
+ style type="text/css" media="screen" {
+ value "ns:GetFonts()";
+ }
+ }
+ // prevents user selection by mouse click / touch and drag
+ // prevents pinch zoom and other accidental panning panning with touch devices
+ body style="margin:0;overflow:hidden;user-select:none;touch-action:none;" {
+ // Inline SVG
+ copy "$result_svg";
+ script{
+ | \n//\n//\n// Early independent declarations \n//\n//
+ apply "document('')/*/preamble:*";
+
+ | \n//\n//\n// Declarations depending on preamble \n//\n//
+ apply "document('')/*/declarations:*";
+
+ | \n//\n//\n// Order independent declaration and code \n//\n//
+ apply "document('')/*/definitions:*";
+
+ | \n//\n//\n// Statements that needs to be at the end \n//\n//
+ apply "document('')/*/epilogue:*";
+
+ include text svghmi.js
+
+ }
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/geometry.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,147 @@
+// geometry.ysl2
+//
+// Geometry (bounding box intersection) definitions
+
+// This retrieves geometry obtained through "inkscape -S"
+// already parsed by python and presented as a list of
+// <bbox x="0" y="0" w="42" h="42">
+const "all_geometry", "ns:GetSVGGeometry()";
+const "defs", "//svg:defs/descendant-or-self::svg:*";
+const "geometry", "$all_geometry[not(@Id = $defs/@id)]";
+
+// Debug data
+emit "debug:geometry" {
+ | ID, x, y, w, h
+ foreach "$geometry"
+ | «@Id» «@x» «@y» «@w» «@h»
+}
+
+// Rates 1D intersection of 2 segments A and B
+// described respectively with a0,a1 and b0,b1
+def "func:intersect_1d" {
+ // it is assumed that a1 > a0 and b1 > b0
+ param "a0";
+ param "a1";
+ param "b0";
+ param "b1";
+
+ const "d0", "$a0 >= $b0";
+ const "d1", "$a1 >= $b1";
+ choose {
+ when "not($d0) and $d1"
+ // b contained in a
+ // a0<b0 b1<a1
+ // a +--------+
+ // b +--+
+ result "3";
+ when "$d0 and not($d1)"
+ // a contained in b
+ // b0<a0 a1<b1
+ // a +--+
+ // b +--------+
+ result "2";
+ when "$d0 and $d1 and $a0 < $b1"
+ // a and b are overlapped
+ // b0<a0<b1<a1
+ // a +-----+
+ // b +-----+
+ result "1";
+ when "not($d0) and not($d1) and $b0 < $a1"
+ // a and b are overlapped
+ // a0<b0<a1<b1
+ // a +-----+
+ // b +-----+
+ result "1";
+ // since orientation doesn't matter,
+ // rated same as previous symetrical overlapping
+ otherwise
+ result "0"; /* no intersection*/
+ }
+}
+
+
+// Rates intersection A and B areas described with x,y,w and h
+// attributes passed as $a and $b parameters.
+//
+// returns :
+// 0 - no intersection
+// .-----.
+// .-----. | b|
+// | | | |
+// | | '-----'
+// |a |
+// '-----'
+//
+// 1 - overlapping
+// .-----.
+// .---|--. b|
+// | | | |
+// | '-----'
+// |a |
+// '------'
+//
+// 2 - overlapping
+// .-----.
+// | a |
+// .---|-----|---.
+// | '-----' |
+// | b |
+// '-------------'
+//
+// 3 - overlapping
+// .-----.
+// | b |
+// .---|-----|---.
+// | '-----' |
+// | a |
+// '-------------'
+//
+// 4 - a contained in b
+// .-------------.
+// | .-----. |
+// | | a | |
+// |b '-----' |
+// '-------------'
+//
+// 6 - overlapping
+// .----.
+// | b|
+// .---|----|---.
+// |a | | |
+// '---|----|---'
+// '----'
+//
+// 9 - b contained in a
+// .-------------.
+// | .-----. |
+// | | b | |
+// |a '-----' |
+// '-------------'
+//
+def "func:intersect" {
+ param "a";
+ param "b";
+
+ const "x_intersect", "func:intersect_1d($a/@x, $a/@x+$a/@w, $b/@x, $b/@x+$b/@w)";
+
+ choose{
+ when "$x_intersect != 0"{
+ const "y_intersect", "func:intersect_1d($a/@y, $a/@y+$a/@h, $b/@y, $b/@y+$b/@h)";
+ result "$x_intersect * $y_intersect";
+ }
+ otherwise result "0";
+ }
+}
+
+const "groups", "/svg:svg | //svg:g";
+
+// return overlapping geometry for a given element
+// all intersercting element are returned
+// except groups, that must be contained to be counted in
+def "func:overlapping_geometry" {
+ param "elt";
+ const "g", "$geometry[@Id = $elt/@id]";
+ const "candidates", "$geometry[@Id != $elt/@id]";
+ result """$candidates[(@Id = $groups/@id and (func:intersect($g, .) = 9)) or
+ (not(@Id = $groups/@id) and (func:intersect($g, .) > 0 ))]""";
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/hmi_tree.py Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This file is part of Beremiz
+# Copyright (C) 2021: Edouard TISSERANT
+#
+# See COPYING file for copyrights details.
+
+from __future__ import absolute_import
+from itertools import izip, imap
+from pprint import pformat
+import weakref
+import hashlib
+
+from lxml import etree
+
+HMI_TYPES_DESC = {
+ "HMI_NODE":{},
+ "HMI_STRING":{},
+ "HMI_INT":{},
+ "HMI_BOOL":{},
+ "HMI_REAL":{}
+}
+
+HMI_TYPES = HMI_TYPES_DESC.keys()
+
+class HMITreeNode(object):
+ def __init__(self, path, name, nodetype, iectype = None, vartype = None, cpath = None, hmiclass = None):
+ self.path = path
+ self.name = name
+ self.nodetype = nodetype
+ self.hmiclass = hmiclass
+ self.parent = None
+
+ if iectype is not None:
+ self.iectype = iectype
+ self.vartype = vartype
+ self.cpath = cpath
+
+ if nodetype in ["HMI_NODE"]:
+ self.children = []
+
+ def pprint(self, indent = 0):
+ res = ">"*indent + pformat(self.__dict__, indent = indent, depth = 1) + "\n"
+ if hasattr(self, "children"):
+ res += "\n".join([child.pprint(indent = indent + 1)
+ for child in self.children])
+ res += "\n"
+
+ return res
+
+ def place_node(self, node):
+ best_child = None
+ known_best_match = 0
+ potential_siblings = {}
+ for child in self.children:
+ if child.path is not None:
+ in_common = 0
+ for child_path_item, node_path_item in izip(child.path, node.path):
+ if child_path_item == node_path_item:
+ in_common +=1
+ else:
+ break
+ # Match can only be HMI_NODE, and the whole path of node
+ # must match candidate node (except for name part)
+ # since candidate would become child of that node
+ if in_common > known_best_match and \
+ child.nodetype == "HMI_NODE" and \
+ in_common == len(child.path) - 1:
+ known_best_match = in_common
+ best_child = child
+ else:
+ potential_siblings[child.path[
+ -2 if child.nodetype == "HMI_NODE" else -1]] = child
+ if best_child is not None:
+ if node.nodetype == "HMI_NODE" and best_child.path[:-1] == node.path[:-1]:
+ return "Duplicate_HMI_NODE", best_child
+ return best_child.place_node(node)
+ else:
+ candidate_name = node.path[-2 if node.nodetype == "HMI_NODE" else -1]
+ if candidate_name in potential_siblings:
+ return "Non_Unique", potential_siblings[candidate_name]
+
+ if node.nodetype == "HMI_NODE" and len(self.children) > 0:
+ prev = self.children[-1]
+ if prev.path[:-1] == node.path[:-1]:
+ return "Late_HMI_NODE",prev
+
+ node.parent = weakref.ref(self)
+ self.children.append(node)
+ return None
+
+ def etree(self, add_hash=False):
+
+ attribs = dict(name=self.name)
+ if self.path is not None:
+ attribs["path"] = ".".join(self.path)
+
+ if self.hmiclass is not None:
+ attribs["class"] = self.hmiclass
+
+ if add_hash:
+ attribs["hash"] = ",".join(map(str,self.hash()))
+
+ res = etree.Element(self.nodetype, **attribs)
+
+ if hasattr(self, "children"):
+ for child_etree in imap(lambda c:c.etree(), self.children):
+ res.append(child_etree)
+
+ return res
+
+ @classmethod
+ def from_etree(cls, enode):
+ """
+ alternative constructor, restoring HMI Tree from XML backup
+ note: all C-related information is gone,
+ this restore is only for tree display and widget picking
+ """
+ nodetype = enode.tag
+ attributes = enode.attrib
+ name = attributes["name"]
+ path = attributes["path"].split('.') if "path" in attributes else None
+ hmiclass = attributes.get("class", None)
+ # hash is computed on demand
+ node = cls(path, name, nodetype, hmiclass=hmiclass)
+ for child in enode.iterchildren():
+ newnode = cls.from_etree(child)
+ newnode.parent = weakref.ref(node)
+ node.children.append(newnode)
+ return node
+
+ def traverse(self):
+ yield self
+ if hasattr(self, "children"):
+ for c in self.children:
+ for yoodl in c.traverse():
+ yield yoodl
+
+ def hmi_path(self):
+ if self.parent is None:
+ return "/"
+ p = self.parent()
+ if p.parent is None:
+ return "/" + self.name
+ return p.hmi_path() + "/" + self.name
+
+ def hash(self):
+ """ Produce a hash, any change in HMI tree structure change that hash """
+ s = hashlib.new('md5')
+ self._hash(s)
+ # limit size to HMI_HASH_SIZE as in svghmi.c
+ return map(ord,s.digest())[:8]
+
+ def _hash(self, s):
+ s.update(str((self.name,self.nodetype)))
+ if hasattr(self, "children"):
+ for c in self.children:
+ c._hash(s)
+
+SPECIAL_NODES = [("HMI_ROOT", "HMI_NODE"),
+ ("heartbeat", "HMI_INT")]
+ # ("current_page", "HMI_STRING")])
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/hmi_tree.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,129 @@
+// hmi_tree.ysl2
+
+
+// HMI Tree computed from VARIABLES.CSV in svghmi.py
+const "hmitree", "ns:GetHMITree()";
+
+const "_categories" {
+ noindex > HMI_PLC_STATUS
+ noindex > HMI_CURRENT_PAGE
+}
+const "categories", "exsl:node-set($_categories)";
+
+// HMI Tree Index
+const "_indexed_hmitree" apply "$hmitree", mode="index";
+const "indexed_hmitree", "exsl:node-set($_indexed_hmitree)";
+
+emit "preamble:hmi-tree" {
+ | var hmi_hash = [«$hmitree/@hash»];
+ |
+ | var heartbeat_index = «$indexed_hmitree/*[@hmipath = '/HEARTBEAT']/@index»;
+ |
+ | var hmitree_types = [
+
+ foreach "$indexed_hmitree/*"
+ | /* «@index» */ "«substring(local-name(), 5)»"`if "position()!=last()" > ,`
+
+ | ];
+ |
+ | var hmitree_paths = [
+
+ foreach "$indexed_hmitree/*"
+ | /* «@index» */ "«@hmipath»"`if "position()!=last()" > ,`
+
+ | ];
+ |
+}
+
+template "*", mode="index" {
+ param "index", "0";
+ param "parentpath", "''";
+ const "content" {
+ const "path"
+ choose {
+ when "count(ancestor::*)=0" > /
+ when "count(ancestor::*)=1" > /«@name»
+ otherwise > «$parentpath»/«@name»
+ }
+ choose {
+ when "not(local-name() = $categories/noindex)" {
+ xsl:copy {
+ attrib "index" > «$index»
+ attrib "hmipath" > «$path»
+ foreach "@*" xsl:copy;
+ }
+ apply "*[1]", mode="index"{
+ with "index", "$index + 1";
+ with "parentpath" > «$path»
+ }
+ }
+ otherwise {
+ apply "*[1]", mode="index"{
+ with "index", "$index";
+ with "parentpath" > «$path»
+ }
+ }
+ }
+ }
+
+ copy "$content";
+ apply "following-sibling::*[1]", mode="index" {
+ with "index", "$index + count(exsl:node-set($content)/*)";
+ with "parentpath" > «$parentpath»
+ }
+}
+
+include parse_labels.ysl2
+
+const "_parsed_widgets" {
+ widget type="VarInitPersistent" {
+ arg value="0";
+ path value="lang";
+ }
+ apply "$hmi_elements", mode="parselabel";
+}
+
+const "parsed_widgets","exsl:node-set($_parsed_widgets)";
+
+def "func:widget" {
+ param "id";
+ result "$parsed_widgets/widget[@id = $id]";
+}
+
+def "func:is_descendant_path" {
+ param "descend";
+ param "ancest";
+ // TODO : use HMI tree to answer more accurately
+ result "string-length($ancest) > 0 and starts-with($descend,$ancest)";
+}
+
+def "func:same_class_paths" {
+ param "a";
+ param "b";
+ const "class_a", "$indexed_hmitree/*[@hmipath = $a]/@class";
+ const "class_b", "$indexed_hmitree/*[@hmipath = $b]/@class";
+ result "$class_a and $class_b and $class_a = $class_b";
+}
+
+// Debug data
+template "*", mode="testtree"{
+ param "indent", "''";
+ > «$indent» «local-name()»
+ foreach "@*" > «local-name()»="«.»"
+ > \n
+ apply "*", mode="testtree" {
+ with "indent" value "concat($indent,'>')"
+ };
+}
+
+emit "debug:hmi-tree" {
+ | Raw HMI tree
+ apply "$hmitree", mode="testtree";
+ |
+ | Indexed HMI tree
+ apply "$indexed_hmitree", mode="testtree";
+ |
+ | Parsed Widgets
+ copy "_parsed_widgets";
+ apply "$parsed_widgets", mode="testtree";
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/i18n.py Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,353 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This file is part of Beremiz
+# Copyright (C) 2021: Edouard TISSERANT
+#
+# See COPYING file for copyrights details.
+
+from __future__ import absolute_import
+from lxml import etree
+import os
+import sys
+import subprocess
+import time
+import ast
+import wx
+import re
+
+# to have it for python 2, had to install
+# https://pypi.org/project/pycountry/18.12.8/
+# python2 -m pip install pycountry==18.12.8 --user
+import pycountry
+
+cmd_parser = re.compile(r'(?:"([^"]+)"\s*|([^\s]+)\s*)?')
+
+def open_pofile(pofile):
+ """ Opens PO file with POEdit """
+
+ if sys.platform.startswith('win'):
+ from six.moves import winreg
+ poedit_cmd = None
+ try:
+ poedit_cmd = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE,
+ 'SOFTWARE\\Classes\\poedit\\shell\\open\\command')
+ cmd = re.findall(cmd_parser, poedit_cmd)
+ dblquote_value,smpl_value = cmd[0]
+ poedit_path = dblquote_value+smpl_value
+ except OSError:
+ poedit_path = None
+
+ else:
+ try:
+ poedit_path = subprocess.check_output("command -v poedit", shell=True).strip()
+ except subprocess.CalledProcessError:
+ poedit_path = None
+
+ if poedit_path is None:
+ wx.MessageBox("POEdit is not found or installed !")
+ else:
+ subprocess.Popen([poedit_path,pofile])
+
+def EtreeToMessages(msgs):
+ """ Converts XML tree from 'extract_i18n' templates into a list of tuples """
+ messages = []
+
+ for msg in msgs:
+ messages.append((
+ "\n".join([line.text for line in msg]),
+ msg.get("label"), msg.get("id")))
+
+ return messages
+
+def SaveCatalog(fname, messages):
+ """ Save messages given as list of tupple (msg,label,id) in POT file """
+ w = POTWriter()
+ w.ImportMessages(messages)
+
+ with open(fname, 'w') as POT_file:
+ w.write(POT_file)
+
+def GetPoFiles(dirpath):
+ po_files = [fname for fname in os.listdir(dirpath) if fname.endswith(".po")]
+ po_files.sort()
+ return [(po_fname[:-3],os.path.join(dirpath, po_fname)) for po_fname in po_files]
+
+def ReadTranslations(dirpath):
+ """ Read all PO files from a directory and return a list of (langcode, translation_dict) tuples """
+
+ translations = []
+ for translation_name, po_path in GetPoFiles(dirpath):
+ r = POReader()
+ with open(po_path, 'r') as PO_file:
+ r.read(PO_file)
+ translations.append((translation_name, r.get_messages()))
+ return translations
+
+def MatchTranslations(translations, messages, errcallback):
+ """
+ Matches translations against original message catalog,
+ warn about inconsistancies,
+ returns list of langs, and a list of (msgid, [translations]) tuples
+ """
+ translated_messages = []
+ broken_lang = set()
+ for msgid,label,svgid in messages:
+ translated_message = []
+ for langcode,translation in translations:
+ msg = translation.pop(msgid, None)
+ if msg is None:
+ broken_lang.add(langcode)
+ errcallback(_('{}: Missing translation for "{}" (label:{}, id:{})\n').format(langcode,msgid,label,svgid))
+ translated_message.append(msgid)
+ else:
+ translated_message.append(msg)
+ translated_messages.append((msgid,translated_message))
+ langs = []
+ for langcode,translation in translations:
+ try:
+ l,c = langcode.split("_")
+ language_name = pycountry.languages.get(alpha_2 = l).name
+ country_name = pycountry.countries.get(alpha_2 = c).name
+ langname = "{} ({})".format(language_name, country_name)
+ except:
+ try:
+ langname = pycountry.languages.get(alpha_2 = langcode).name
+ except:
+ langname = langcode
+
+ langs.append((langname,langcode))
+
+ broken = False
+ for msgid, msg in translation.iteritems():
+ broken = True
+ errcallback(_('{}: Unused translation "{}":"{}"\n').format(langcode,msgid,msg))
+ if broken or langcode in broken_lang:
+ errcallback(_('Translation for {} is outdated, please edit {}.po, click "Catalog -> Update from POT File..." and select messages.pot.\n').format(langcode,langcode))
+
+
+ return langs,translated_messages
+
+
+def TranslationToEtree(langs,translated_messages):
+
+ result = etree.Element("translations")
+
+ langsroot = etree.SubElement(result, "langs")
+ for name, code in langs:
+ langel = etree.SubElement(langsroot, "lang", {"code":code})
+ langel.text = name
+
+ msgsroot = etree.SubElement(result, "messages")
+ for msgid, msgs in translated_messages:
+ msgidel = etree.SubElement(msgsroot, "msgid")
+ for msg in msgs:
+ msgel = etree.SubElement(msgidel, "msg")
+ for line in msg.split("\n"):
+ lineel = etree.SubElement(msgel, "line")
+ lineel.text = escape(line.encode("utf-8")).decode("utf-8")
+
+ return result
+
+
+
+locpfx = '#:svghmi.svg:'
+
+pot_header = '''\
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\\n"
+"POT-Creation-Date: %(time)s\\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
+"Language-Team: LANGUAGE <LL@li.org>\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"
+"Generated-By: SVGHMI 1.0\\n"
+
+'''
+escapes = []
+
+def make_escapes(pass_iso8859):
+ global escapes
+ escapes = [chr(i) for i in range(256)]
+ if pass_iso8859:
+ # Allow iso-8859 characters to pass through so that e.g. 'msgid
+ # "Höhe"' would result not result in 'msgid "H\366he"'. Otherwise we
+ # escape any character outside the 32..126 range.
+ mod = 128
+ else:
+ mod = 256
+ for i in range(mod):
+ if not(32 <= i <= 126):
+ escapes[i] = "\\%03o" % i
+ escapes[ord('\\')] = '\\\\'
+ escapes[ord('\t')] = '\\t'
+ escapes[ord('\r')] = '\\r'
+ escapes[ord('\n')] = '\\n'
+ escapes[ord('\"')] = '\\"'
+
+make_escapes(pass_iso8859 = True)
+
+EMPTYSTRING = ''
+
+def escape(s):
+ global escapes
+ s = list(s)
+ for i in range(len(s)):
+ s[i] = escapes[ord(s[i])]
+ return EMPTYSTRING.join(s)
+
+def normalize(s):
+ # This converts the various Python string types into a format that is
+ # appropriate for .po files, namely much closer to C style.
+ lines = s.split('\n')
+ if len(lines) == 1:
+ s = '"' + escape(s) + '"'
+ else:
+ if not lines[-1]:
+ del lines[-1]
+ lines[-1] = lines[-1] + '\n'
+ for i in range(len(lines)):
+ lines[i] = escape(lines[i])
+ lineterm = '\\n"\n"'
+ s = '""\n"' + lineterm.join(lines) + '"'
+ return s
+
+
+class POTWriter:
+ def __init__(self):
+ self.__messages = {}
+
+ def ImportMessages(self, msgs):
+ for msg, label, svgid in msgs:
+ self.addentry(msg.encode("utf-8"), label, svgid)
+
+ def addentry(self, msg, label, svgid):
+ entry = (label, svgid)
+ self.__messages.setdefault(msg, set()).add(entry)
+
+ def write(self, fp):
+ timestamp = time.strftime('%Y-%m-%d %H:%M+%Z')
+ print >> fp, pot_header % {'time': timestamp}
+ reverse = {}
+ for k, v in self.__messages.items():
+ keys = list(v)
+ keys.sort()
+ reverse.setdefault(tuple(keys), []).append((k, v))
+ rkeys = reverse.keys()
+ rkeys.sort()
+ for rkey in rkeys:
+ rentries = reverse[rkey]
+ rentries.sort()
+ for k, v in rentries:
+ v = list(v)
+ v.sort()
+ locline = locpfx
+ for label, svgid in v:
+ d = {'label': label, 'svgid': svgid}
+ s = _(' %(label)s:%(svgid)s') % d
+ if len(locline) + len(s) <= 78:
+ locline = locline + s
+ else:
+ print >> fp, locline
+ locline = locpfx + s
+ if len(locline) > len(locpfx):
+ print >> fp, locline
+ print >> fp, 'msgid', normalize(k)
+ print >> fp, 'msgstr ""\n'
+
+
+class POReader:
+ def __init__(self):
+ self.__messages = {}
+
+ def get_messages(self):
+ return self.__messages
+
+ def add(self, msgid, msgstr, fuzzy):
+ "Add a non-fuzzy translation to the dictionary."
+ if not fuzzy and msgstr and msgid:
+ self.__messages[msgid.decode('utf-8')] = msgstr.decode('utf-8')
+
+ def read(self, fp):
+ ID = 1
+ STR = 2
+
+ lines = fp.readlines()
+ section = None
+ fuzzy = 0
+
+ # Parse the catalog
+ lno = 0
+ for l in lines:
+ lno += 1
+ # If we get a comment line after a msgstr, this is a new entry
+ if l[0] == '#' and section == STR:
+ self.add(msgid, msgstr, fuzzy)
+ section = None
+ fuzzy = 0
+ # Record a fuzzy mark
+ if l[:2] == '#,' and 'fuzzy' in l:
+ fuzzy = 1
+ # Skip comments
+ if l[0] == '#':
+ continue
+ # Now we are in a msgid section, output previous section
+ if l.startswith('msgid') and not l.startswith('msgid_plural'):
+ if section == STR:
+ self.add(msgid, msgstr, fuzzy)
+ section = ID
+ l = l[5:]
+ msgid = msgstr = ''
+ is_plural = False
+ # This is a message with plural forms
+ elif l.startswith('msgid_plural'):
+ if section != ID:
+ print >> sys.stderr, 'msgid_plural not preceded by msgid on %s:%d' %\
+ (infile, lno)
+ sys.exit(1)
+ l = l[12:]
+ msgid += '\0' # separator of singular and plural
+ is_plural = True
+ # Now we are in a msgstr section
+ elif l.startswith('msgstr'):
+ section = STR
+ if l.startswith('msgstr['):
+ if not is_plural:
+ print >> sys.stderr, 'plural without msgid_plural on %s:%d' %\
+ (infile, lno)
+ sys.exit(1)
+ l = l.split(']', 1)[1]
+ if msgstr:
+ msgstr += '\0' # Separator of the various plural forms
+ else:
+ if is_plural:
+ print >> sys.stderr, 'indexed msgstr required for plural on %s:%d' %\
+ (infile, lno)
+ sys.exit(1)
+ l = l[6:]
+ # Skip empty lines
+ l = l.strip()
+ if not l:
+ continue
+ l = ast.literal_eval(l)
+ if section == ID:
+ msgid += l
+ elif section == STR:
+ msgstr += l
+ else:
+ print >> sys.stderr, 'Syntax error on %s:%d' % (infile, lno), \
+ 'before:'
+ print >> sys.stderr, l
+ sys.exit(1)
+ # Add last entry
+ if section == STR:
+ self.add(msgid, msgstr, fuzzy)
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/i18n.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,54 @@
+// i18n.ysl2
+
+
+template "svg:tspan", mode="extract_i18n" {
+ if "string-length(.) > 0" line {
+ value ".";
+ }
+}
+
+template "svg:text", mode="extract_i18n" {
+ msg {
+ attrib "id" value "@id";
+ attrib "label" value "substring(@inkscape:label,2)";
+ apply "svg:*", mode="extract_i18n";
+ }
+}
+
+const "translatable_texts", "//svg:text[starts-with(@inkscape:label, '_')]";
+const "translatable_strings" apply "$translatable_texts", mode="extract_i18n";
+
+emit "preamble:i18n" {
+ const "translations", "ns:GetTranslations($translatable_strings)";
+ > var langs = [ ["Default", "C"],
+ foreach "$translations/langs/lang" {
+ > ["«.»","«@code»"]
+ if "position()!=last()" > ,
+ }
+ | ];
+ | var translations = [
+ foreach "$translatable_texts" {
+ const "n","position()";
+ const "current_id","@id";
+ const "text_unlinked_uses","$result_svg_ns//svg:text[@original = $current_id]/@id";
+ > [[
+ foreach "@id | $text_unlinked_uses" {
+ > id("«.»")
+ if "position()!=last()" > ,
+ }
+ > ],[
+ foreach "$translations/messages/msgid[$n]/msg" {
+ > "
+ foreach "line" {
+ value ".";
+ if "position()!=last()" > \\\\n
+ }
+ > "
+ if "position()!=last()" > ,
+ }
+ > ]]
+ if "position()!=last()" > ,
+ > \n
+ }
+ | ]
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/inline_svg.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,209 @@
+// inline_svg.ysl2
+//
+// Produce Inline SVG element of resulting XHTML page.
+
+// Since stylesheet output namespace is xhtml, templates that output svg have to be explicitely declared as such
+in xsl decl svgtmpl(match, xmlns="http://www.w3.org/2000/svg") alias template;
+in xsl decl svgfunc(name, xmlns="http://www.w3.org/2000/svg") alias template;
+
+
+// Identity template :
+// - copy every attributes
+// - copy every sub-elements
+
+svgtmpl "@*", mode="inline_svg" xsl:copy;
+
+template "node()", mode="inline_svg" {
+ // use real xsl:copy instead copy-of alias from yslt.yml2
+ if "not(@id = $discardable_elements/@id)"
+ xsl:copy apply "@* | node()", mode="inline_svg";
+}
+
+// replaces inkscape's height and width hints. forces fit
+template "svg:svg/@width", mode="inline_svg";
+template "svg:svg/@height", mode="inline_svg";
+svgtmpl "svg:svg", mode="inline_svg" svg {
+ attrib "preserveAspectRatio" > none
+ attrib "height" > 100vh
+ attrib "width" > 100vw
+ apply "@* | node()", mode="inline_svg";
+}
+// ensure that coordinate in CSV file generated by inkscape are in default reference frame
+template "svg:svg[@viewBox!=concat('0 0 ', @width, ' ', @height)]", mode="inline_svg" {
+ error > ViewBox settings other than X=0, Y=0 and Scale=1 are not supported
+}
+// ensure that coordinate in CSV file generated by inkscape match svg default unit
+template "sodipodi:namedview[@units!='px' or @inkscape:document-units!='px']", mode="inline_svg" {
+ error > All units must be set to "px" in Inkscape's document properties
+}
+
+// remove i18n markers, so that defs_by_labels can find text elements
+svgtmpl "svg:text/@inkscape:label[starts-with(., '_')]", mode="inline_svg" {
+ attrib "{name()}" > «substring(., 2)»
+}
+
+////// Clone unlinking
+//
+// svg:use (inkscape's clones) inside a widgets are
+// replaced by real elements they refer in order to :
+// - allow finding "needle" element in "meter" widget,
+// even if "needle" is in a group refered by a svg use.
+// - if "needle" is visible through a svg:use for
+// each instance of the widget, then needle would show
+// the same position in all instances
+//
+// For now, clone unlinkink applies to descendants of all widget except HMI:Page
+// TODO: narrow application of clone unlinking to active elements,
+// while keeping static decoration cloned
+const "targets_not_to_unlink", "$hmi_lists/descendant-or-self::svg:*";
+const "to_unlink", "$hmi_elements[not(@id = $hmi_pages/@id)]/descendant-or-self::svg:use";
+
+def "func:is_unlinkable" {
+ param "targetid";
+ param "eltid";
+ result "$eltid = $to_unlink/@id and not($targetid = $targets_not_to_unlink/@id)";
+}
+
+svgtmpl "svg:use", mode="inline_svg"{
+ const "targetid","substring-after(@xlink:href,'#')";
+ choose {
+ when "func:is_unlinkable($targetid, @id)" {
+ call "unlink_clone" {
+ with "targetid", "$targetid";
+ }
+ }
+ otherwise xsl:copy apply "@*", mode="inline_svg";
+ }
+}
+
+// to unlink a clone, an group containing a copy of target element is created
+// that way, style and transforms can be preserved
+const "_excluded_use_attrs" {
+ name > href
+ name > width
+ name > height
+ name > x
+ name > y
+ name > id
+}
+const "excluded_use_attrs","exsl:node-set($_excluded_use_attrs)";
+
+const "_merge_use_attrs" {
+ name > transform
+ name > style
+}
+const "merge_use_attrs","exsl:node-set($_merge_use_attrs)";
+
+svgfunc "unlink_clone"{
+ param "targetid";
+ param "seed","''";
+ const "target", "//svg:*[@id = $targetid]";
+ const "seeded_id" choose {
+ when "string-length($seed) > 0" > «$seed»_«@id»
+ otherwise value "@id";
+ }
+ g{
+ attrib "id" value "$seeded_id";
+ attrib "original" value "@id";
+
+ choose {
+ when "$target[self::svg:g]" {
+ foreach "@*[not(local-name() = $excluded_use_attrs/name | $merge_use_attrs)]"
+ attrib "{name()}" > «.»
+
+ if "@style | $target/@style"
+ attrib "style" {
+ > «@style»
+ if "@style and $target/@style" > ;
+ > «$target/@style»
+ }
+
+ if "@transform | $target/@transform"
+ attrib "transform" {
+ > «@transform»
+ if "@transform and $target/@transform" >
+ > «$target/@transform»
+ }
+
+ apply "$target/*", mode="unlink_clone"{
+ with "seed","$seeded_id";
+ }
+ }
+ otherwise {
+ // include non excluded attributes
+ foreach "@*[not(local-name() = $excluded_use_attrs/name)]"
+ attrib "{name()}" > «.»
+
+ apply "$target", mode="unlink_clone"{
+ with "seed","$seeded_id";
+ }
+ }
+ }
+ }
+}
+
+// clone unlinking is really similar to deep-copy
+// all nodes are sytematically copied
+svgtmpl "@id", mode="unlink_clone" {
+ param "seed";
+ attrib "id" > «$seed»_«.»
+ attrib "original" > «.»
+}
+
+svgtmpl "@*", mode="unlink_clone" xsl:copy;
+
+svgtmpl "svg:use", mode="unlink_clone" {
+ param "seed";
+ const "targetid","substring-after(@xlink:href,'#')";
+ choose {
+ when "func:is_unlinkable($targetid, @id)" {
+ call "unlink_clone" {
+ with "targetid", "$targetid";
+ with "seed","$seed";
+ }
+ }
+ otherwise xsl:copy apply "@*", mode="unlink_clone" {
+ with "seed","$seed";
+ }
+ }
+}
+
+// copying widgets would have unwanted effect
+// instead widget is refered through a svg:use.
+svgtmpl "svg:*", mode="unlink_clone" {
+ param "seed";
+ choose {
+ // node recursive copy ends when finding a widget
+ when "@id = $hmi_elements/@id" {
+ // place a clone instead of copying
+ use{
+ attrib "xlink:href" > «concat('#',@id)»
+ }
+ }
+ otherwise {
+ xsl:copy apply "@* | node()", mode="unlink_clone" {
+ with "seed","$seed";
+ }
+ }
+ }
+}
+
+const "result_svg" apply "/", mode="inline_svg";
+const "result_svg_ns", "exsl:node-set($result_svg)";
+
+emit "preamble:inline-svg" {
+ | let id = document.getElementById.bind(document);
+ | var svg_root = id("«$svg/@id»");
+}
+
+emit "debug:clone-unlinking" {
+ |
+ | Unlinked :
+ foreach "$to_unlink"{
+ | «@id»
+ }
+ | Not to unlink :
+ foreach "$targets_not_to_unlink"{
+ | «@id»
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/parse_labels.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,108 @@
+// parse_labels.ysl2
+
+
+// Parses:
+// "HMI:WidgetType:param1:param2@path1,path1min,path1max@path2"
+//
+// Into:
+// widget type="WidgetType" id="blah456" {
+// arg value="param1";
+// arg value="param2";
+// path value=".path1" index=".path1" min="path1min" max="path1max" type="PAGE_LOCAL";
+// path value="/path1" index="348" type="HMI_INT";
+// path value="path4" index="path4" type="HMI_LOCAL";
+// }
+//
+const "pathregex",!"'^([^\[,]+)(\[[^\]]+\])?([\d,]*)$'"!;
+
+template "*", mode="parselabel"
+{
+ const "label","@inkscape:label";
+ const "id","@id";
+
+ const "description", "substring-after($label,'HMI:')";
+
+ const "_args", "substring-before($description,'@')";
+ const "args" choose {
+ when "$_args" value "$_args";
+ otherwise value "$description";
+ }
+
+ const "_type", "substring-before($args,':')";
+ const "type" choose {
+ when "$_type" value "$_type";
+ otherwise value "$args";
+ }
+
+ if "$type" widget {
+ attrib "id" > «$id»
+ attrib "type" > «$type»
+ foreach "str:split(substring-after($args, ':'), ':')" {
+ arg {
+ attrib "value" > «.»
+ }
+ }
+ const "paths", "substring-after($description,'@')";
+ foreach "str:split($paths, '@')" {
+ if "string-length(.) > 0" path {
+ // 1 : global match
+ // 2 : /path
+ // 3 : [accepts]
+ // 4 : min,max
+ const "path_match", "regexp:match(.,$pathregex)";
+ const "pathminmax", "str:split($path_match[4],',')";
+ const "path", "$path_match[2]";
+ const "path_accepts", "$path_match[3]";
+ const "pathminmaxcount", "count($pathminmax)";
+ attrib "value" > «$path»
+ if "string-length($path_accepts)"
+ attrib "accepts" > «$path_accepts»
+ choose {
+ when "$pathminmaxcount = 2" {
+ attrib "min" > «$pathminmax[1]»
+ attrib "max" > «$pathminmax[2]»
+ }
+ when "$pathminmaxcount = 1 or $pathminmaxcount > 2" {
+ error > Widget id:«$id» label:«$label» has wrong syntax of path section «$pathminmax»
+ }
+ }
+ if "$indexed_hmitree" choose {
+ when "regexp:test($path,'^\.[a-zA-Z0-9_]+$')" {
+ attrib "type" > PAGE_LOCAL
+ }
+ when "regexp:test($path,'^[a-zA-Z0-9_]+$')" {
+ attrib "type" > HMI_LOCAL
+ }
+ otherwise {
+ const "item", "$indexed_hmitree/*[@hmipath = $path]";
+ const "pathtype", "local-name($item)";
+ if "$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')" {
+ error > Widget id:«$id» label:«$label» path section «$pathminmax» use min and max on non mumeric value
+ }
+ if "count($item) = 1" {
+ attrib "index" > «$item/@index»
+ attrib "type" > «$pathtype»
+ }
+ }
+ }
+ }
+ }
+ if "svg:desc" desc value "svg:desc/text()";
+ }
+}
+
+
+// Templates to generate label back from parsed tree
+template "arg", mode="genlabel" > :«@value»
+
+template "path", mode="genlabel" {
+ > @«@value»
+ if "string-length(@min)>0 or string-length(@max)>0" > ,«@min»,«@max»
+}
+
+template "widget", mode="genlabel" {
+ > HMI:«@type»
+ apply "arg", mode="genlabel";
+ apply "path", mode="genlabel";
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/pous.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Beremiz" productName="Beremiz" productVersion="0.0" creationDateTime="2008-12-14T16:53:26"/>
+ <contentHeader name="Beremiz non-standard POUs library" modificationDateTime="2019-08-06T14:08:26">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="0" y="0"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes>
+ <dataType name="HMI_INT">
+ <baseType>
+ <INT/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_REAL">
+ <baseType>
+ <REAL/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_STRING">
+ <baseType>
+ <string/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_BOOL">
+ <baseType>
+ <BOOL/>
+ </baseType>
+ </dataType>
+ <dataType name="HMI_NODE">
+ <baseType>
+ <BOOL/>
+ </baseType>
+ </dataType>
+ </dataTypes>
+ <pous/>
+ </types>
+ <instances>
+ <configurations/>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/svghmi.c Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,409 @@
+#include <pthread.h>
+#include <errno.h>
+#include "iec_types_all.h"
+#include "POUS.h"
+#include "config.h"
+#include "beremiz.h"
+
+#define DEFAULT_REFRESH_PERIOD_MS 100
+#define HMI_BUFFER_SIZE %(buffer_size)d
+#define HMI_ITEM_COUNT %(item_count)d
+#define HMI_HASH_SIZE 8
+#define MAX_CONNECTIONS %(max_connections)d
+
+static uint8_t hmi_hash[HMI_HASH_SIZE] = {%(hmi_hash_ints)s};
+
+/* PLC reads from that buffer */
+static char rbuf[HMI_BUFFER_SIZE];
+
+/* PLC writes to that buffer */
+static char wbuf[HMI_BUFFER_SIZE];
+
+/* TODO change that in case of multiclient... */
+/* worst biggest send buffer. FIXME : use dynamic alloc ? */
+static char sbuf[HMI_HASH_SIZE + HMI_BUFFER_SIZE + (HMI_ITEM_COUNT * sizeof(uint32_t))];
+static unsigned int sbufidx;
+
+%(extern_variables_declarations)s
+
+#define ticktime_ns %(PLC_ticktime)d
+static uint16_t ticktime_ms = (ticktime_ns>1000000)?
+ ticktime_ns/1000000:
+ 1;
+
+typedef enum {
+ buf_free = 0,
+ buf_new,
+ buf_set,
+ buf_tosend
+} buf_state_t;
+
+static int global_write_dirty = 0;
+
+typedef struct {
+ void *ptr;
+ __IEC_types_enum type;
+ uint32_t buf_index;
+
+ /* publish/write/send */
+ long wlock;
+ buf_state_t wstate[MAX_CONNECTIONS];
+
+ /* zero means not subscribed */
+ uint16_t refresh_period_ms[MAX_CONNECTIONS];
+ uint16_t age_ms[MAX_CONNECTIONS];
+
+ /* retrieve/read/recv */
+ long rlock;
+ buf_state_t rstate;
+
+} hmi_tree_item_t;
+
+static hmi_tree_item_t hmi_tree_item[] = {
+%(variable_decl_array)s
+};
+
+typedef int(*hmi_tree_iterator)(uint32_t, hmi_tree_item_t*);
+static int traverse_hmi_tree(hmi_tree_iterator fp)
+{
+ unsigned int i;
+ for(i = 0; i < sizeof(hmi_tree_item)/sizeof(hmi_tree_item_t); i++){
+ hmi_tree_item_t *dsc = &hmi_tree_item[i];
+ int res = (*fp)(i, dsc);
+ if(res != 0){
+ return res;
+ }
+ }
+ return 0;
+}
+
+#define __Unpack_desc_type hmi_tree_item_t
+
+%(var_access_code)s
+
+static int write_iterator(uint32_t index, hmi_tree_item_t *dsc)
+{
+ uint32_t session_index = 0;
+ int value_changed = 0;
+ if(AtomicCompareExchange(&dsc->wlock, 0, 1) == 0) {
+ void *dest_p = &wbuf[dsc->buf_index];
+ void *real_value_p = NULL;
+ char flags = 0;
+ void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags);
+ USINT sz = __get_type_enum_size(dsc->type);
+ if(__Is_a_string(dsc)){
+ sz = ((STRING*)visible_value_p)->len + 1;
+ }
+ while(session_index < MAX_CONNECTIONS) {
+ if(dsc->wstate[session_index] == buf_set){
+ /* if being subscribed */
+ if(dsc->refresh_period_ms[session_index]){
+ if(dsc->age_ms[session_index] + ticktime_ms < dsc->refresh_period_ms[session_index]){
+ dsc->age_ms[session_index] += ticktime_ms;
+ }else{
+ dsc->wstate[session_index] = buf_tosend;
+ global_write_dirty = 1;
+ }
+ }
+ }
+
+ if(dsc->wstate[session_index] == buf_new /* just subscribed
+ or already subscribed having value change */
+ || (dsc->refresh_period_ms[session_index] > 0
+ && (value_changed || (value_changed=memcmp(dest_p, visible_value_p, sz))) != 0)){
+ /* if not already marked/signaled, do it */
+ if(dsc->wstate[session_index] != buf_set && dsc->wstate[session_index] != buf_tosend) {
+ if(dsc->wstate[session_index] == buf_new || ticktime_ms > dsc->refresh_period_ms[session_index]){
+ dsc->wstate[session_index] = buf_tosend;
+ global_write_dirty = 1;
+ } else {
+ dsc->wstate[session_index] = buf_set;
+ }
+ dsc->age_ms[session_index] = 0;
+ }
+ }
+
+ session_index++;
+ }
+ /* copy value if changed (and subscribed) */
+ if(value_changed)
+ memcpy(dest_p, visible_value_p, sz);
+ AtomicCompareExchange(&dsc->wlock, 1, 0);
+ }
+ // else ... : PLC can't wait, variable will be updated next turn
+ return 0;
+}
+
+static uint32_t send_session_index;
+static int send_iterator(uint32_t index, hmi_tree_item_t *dsc)
+{
+ while(AtomicCompareExchange(&dsc->wlock, 0, 1))
+ nRT_reschedule();
+
+ if(dsc->wstate[send_session_index] == buf_tosend)
+ {
+ uint32_t sz = __get_type_enum_size(dsc->type);
+ if(sbufidx + sizeof(uint32_t) + sz <= sizeof(sbuf))
+ {
+ void *src_p = &wbuf[dsc->buf_index];
+ void *dst_p = &sbuf[sbufidx];
+ if(__Is_a_string(dsc)){
+ sz = ((STRING*)src_p)->len + 1;
+ }
+ /* TODO : force into little endian */
+ memcpy(dst_p, &index, sizeof(uint32_t));
+ memcpy(dst_p + sizeof(uint32_t), src_p, sz);
+ dsc->wstate[send_session_index] = buf_free;
+ sbufidx += sizeof(uint32_t) /* index */ + sz;
+ }
+ else
+ {
+ printf("BUG!!! %%d + %%ld + %%d > %%ld \n", sbufidx, sizeof(uint32_t), sz, sizeof(sbuf));
+ AtomicCompareExchange(&dsc->wlock, 1, 0);
+ return EOVERFLOW;
+ }
+ }
+
+ AtomicCompareExchange(&dsc->wlock, 1, 0);
+ return 0;
+}
+
+static int read_iterator(uint32_t index, hmi_tree_item_t *dsc)
+{
+ if(AtomicCompareExchange(&dsc->rlock, 0, 1) == 0)
+ {
+ if(dsc->rstate == buf_set)
+ {
+ void *src_p = &rbuf[dsc->buf_index];
+ void *real_value_p = NULL;
+ char flags = 0;
+ void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags);
+ memcpy(real_value_p, src_p, __get_type_enum_size(dsc->type));
+ dsc->rstate = buf_free;
+ }
+ AtomicCompareExchange(&dsc->rlock, 1, 0);
+ }
+ // else ... : PLC can't wait, variable will be updated next turn
+ return 0;
+}
+
+void update_refresh_period(hmi_tree_item_t *dsc, uint32_t session_index, uint16_t refresh_period_ms)
+{
+ while(AtomicCompareExchange(&dsc->wlock, 0, 1))
+ nRT_reschedule();
+
+ if(refresh_period_ms) {
+ if(!dsc->refresh_period_ms[session_index])
+ {
+ dsc->wstate[session_index] = buf_new;
+ }
+ } else {
+ dsc->wstate[session_index] = buf_free;
+ }
+ dsc->refresh_period_ms[session_index] = refresh_period_ms;
+ AtomicCompareExchange(&dsc->wlock, 1, 0);
+}
+
+static uint32_t reset_session_index;
+static int reset_iterator(uint32_t index, hmi_tree_item_t *dsc)
+{
+ update_refresh_period(dsc, reset_session_index, 0);
+ return 0;
+}
+
+static void *svghmi_handle;
+
+void SVGHMI_SuspendFromPythonThread(void)
+{
+ wait_RT_to_nRT_signal(svghmi_handle);
+}
+
+void SVGHMI_WakeupFromRTThread(void)
+{
+ unblock_RT_to_nRT_signal(svghmi_handle);
+}
+
+int svghmi_continue_collect;
+
+int __init_svghmi()
+{
+ memset(rbuf,0,sizeof(rbuf));
+ memset(wbuf,0,sizeof(wbuf));
+
+ svghmi_continue_collect = 1;
+
+ /* create svghmi_pipe */
+ svghmi_handle = create_RT_to_nRT_signal("SVGHMI_pipe");
+
+ if(!svghmi_handle)
+ return 1;
+
+ return 0;
+}
+
+void __cleanup_svghmi()
+{
+ svghmi_continue_collect = 0;
+ SVGHMI_WakeupFromRTThread();
+ delete_RT_to_nRT_signal(svghmi_handle);
+}
+
+void __retrieve_svghmi()
+{
+ traverse_hmi_tree(read_iterator);
+}
+
+void __publish_svghmi()
+{
+ global_write_dirty = 0;
+ traverse_hmi_tree(write_iterator);
+ if(global_write_dirty) {
+ SVGHMI_WakeupFromRTThread();
+ }
+}
+
+/* PYTHON CALLS */
+int svghmi_wait(void){
+
+ SVGHMI_SuspendFromPythonThread();
+}
+
+int svghmi_send_collect(uint32_t session_index, uint32_t *size, char **ptr){
+
+ if(svghmi_continue_collect) {
+ int res;
+ sbufidx = HMI_HASH_SIZE;
+ send_session_index = session_index;
+ if((res = traverse_hmi_tree(send_iterator)) == 0)
+ {
+ if(sbufidx > HMI_HASH_SIZE){
+ memcpy(&sbuf[0], &hmi_hash[0], HMI_HASH_SIZE);
+ *ptr = &sbuf[0];
+ *size = sbufidx;
+ return 0;
+ }
+ return ENODATA;
+ }
+ // printf("collected BAD result %%d\n", res);
+ return res;
+ }
+ else
+ {
+ return EINTR;
+ }
+}
+
+typedef enum {
+ setval = 0,
+ reset = 1,
+ subscribe = 2
+} cmd_from_JS;
+
+int svghmi_reset(uint32_t session_index){
+ reset_session_index = session_index;
+ traverse_hmi_tree(reset_iterator);
+ return 1;
+}
+
+// Returns :
+// 0 is OK, <0 is error, 1 is heartbeat
+int svghmi_recv_dispatch(uint32_t session_index, uint32_t size, const uint8_t *ptr){
+ const uint8_t* cursor = ptr + HMI_HASH_SIZE;
+ const uint8_t* end = ptr + size;
+
+ int was_hearbeat = 0;
+
+ /* match hmitree fingerprint */
+ if(size <= HMI_HASH_SIZE || memcmp(ptr, hmi_hash, HMI_HASH_SIZE) != 0)
+ {
+ printf("svghmi_recv_dispatch MISMATCH !!\n");
+ return -EINVAL;
+ }
+
+ while(cursor < end)
+ {
+ uint32_t progress;
+ cmd_from_JS cmd = *(cursor++);
+ switch(cmd)
+ {
+ case setval:
+ {
+ uint32_t index = *(uint32_t*)(cursor);
+ uint8_t const *valptr = cursor + sizeof(uint32_t);
+
+ if(index == heartbeat_index)
+ was_hearbeat = 1;
+
+ if(index < HMI_ITEM_COUNT)
+ {
+ hmi_tree_item_t *dsc = &hmi_tree_item[index];
+ void *real_value_p = NULL;
+ char flags = 0;
+ void *visible_value_p = UnpackVar(dsc, &real_value_p, &flags);
+ void *dst_p = &rbuf[dsc->buf_index];
+ uint32_t sz = __get_type_enum_size(dsc->type);
+
+ if(__Is_a_string(dsc)){
+ sz = ((STRING*)valptr)->len + 1;
+ }
+
+ if((valptr + sz) <= end)
+ {
+ // rescheduling spinlock until free
+ while(AtomicCompareExchange(&dsc->rlock, 0, 1))
+ nRT_reschedule();
+
+ memcpy(dst_p, valptr, sz);
+ dsc->rstate = buf_set;
+
+ AtomicCompareExchange(&dsc->rlock, 1, 0);
+ progress = sz + sizeof(uint32_t) /* index */;
+ }
+ else
+ {
+ return -EINVAL;
+ }
+ }
+ else
+ {
+ return -EINVAL;
+ }
+ }
+ break;
+
+ case reset:
+ {
+ progress = 0;
+ reset_session_index = session_index;
+ traverse_hmi_tree(reset_iterator);
+ }
+ break;
+
+ case subscribe:
+ {
+ uint32_t index = *(uint32_t*)(cursor);
+ uint16_t refresh_period_ms = *(uint32_t*)(cursor + sizeof(uint32_t));
+
+ if(index < HMI_ITEM_COUNT)
+ {
+ hmi_tree_item_t *dsc = &hmi_tree_item[index];
+ update_refresh_period(dsc, session_index, refresh_period_ms);
+ }
+ else
+ {
+ return -EINVAL;
+ }
+
+ progress = sizeof(uint32_t) /* index */ +
+ sizeof(uint16_t) /* refresh period */;
+ }
+ break;
+ default:
+ printf("svghmi_recv_dispatch unknown %%d\n",cmd);
+
+ }
+ cursor += progress;
+ }
+ return was_hearbeat;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/svghmi.js Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,536 @@
+// svghmi.js
+
+var need_cache_apply = [];
+
+function dispatch_value(index, value) {
+ let widgets = subscribers(index);
+
+ let oldval = cache[index];
+ cache[index] = value;
+
+ if(widgets.size > 0) {
+ for(let widget of widgets){
+ widget.new_hmi_value(index, value, oldval);
+ }
+ }
+};
+
+function init_widgets() {
+ Object.keys(hmi_widgets).forEach(function(id) {
+ let widget = hmi_widgets[id];
+ let init = widget.init;
+ if(typeof(init) == "function"){
+ try {
+ init.call(widget);
+ } catch(err) {
+ console.log(err);
+ }
+ }
+ });
+};
+
+// Open WebSocket to relative "/ws" address
+
+var ws_url =
+ window.location.href.replace(/^http(s?:\/\/[^\/]*)\/.*$/, 'ws$1/ws')
+ + '?mode=' + (window.location.hash == "#watchdog"
+ ? "watchdog"
+ : "multiclient");
+var ws = new WebSocket(ws_url);
+ws.binaryType = 'arraybuffer';
+
+const dvgetters = {
+ INT: (dv,offset) => [dv.getInt16(offset, true), 2],
+ BOOL: (dv,offset) => [dv.getInt8(offset, true), 1],
+ NODE: (dv,offset) => [dv.getInt8(offset, true), 1],
+ REAL: (dv,offset) => [dv.getFloat32(offset, true), 4],
+ STRING: (dv, offset) => {
+ const size = dv.getInt8(offset);
+ return [
+ String.fromCharCode.apply(null, new Uint8Array(
+ dv.buffer, /* original buffer */
+ offset + 1, /* string starts after size*/
+ size /* size of string */
+ )), size + 1]; /* total increment */
+ }
+};
+
+// Apply updates recieved through ws.onmessage to subscribed widgets
+function apply_updates() {
+ updates.forEach((value, index) => {
+ dispatch_value(index, value);
+ });
+ updates.clear();
+}
+
+// Called on requestAnimationFrame, modifies DOM
+var requestAnimationFrameID = null;
+function animate() {
+ // Do the page swith if any one pending
+ if(current_subscribed_page != current_visible_page){
+ switch_visible_page(current_subscribed_page);
+ }
+
+ while(widget = need_cache_apply.pop()){
+ widget.apply_cache();
+ }
+
+ if(jumps_need_update) update_jumps();
+
+ apply_updates();
+
+ pending_widget_animates.forEach(widget => widget._animate());
+ pending_widget_animates = [];
+
+ requestAnimationFrameID = null;
+}
+
+function requestHMIAnimation() {
+ if(requestAnimationFrameID == null){
+ requestAnimationFrameID = window.requestAnimationFrame(animate);
+ }
+}
+
+// Message reception handler
+// Hash is verified and HMI values updates resulting from binary parsing
+// are stored until browser can compute next frame, DOM is left untouched
+ws.onmessage = function (evt) {
+
+ let data = evt.data;
+ let dv = new DataView(data);
+ let i = 0;
+ try {
+ for(let hash_int of hmi_hash) {
+ if(hash_int != dv.getUint8(i)){
+ throw new Error("Hash doesn't match");
+ };
+ i++;
+ };
+
+ while(i < data.byteLength){
+ let index = dv.getUint32(i, true);
+ i += 4;
+ let iectype = hmitree_types[index];
+ if(iectype != undefined){
+ let dvgetter = dvgetters[iectype];
+ let [value, bytesize] = dvgetter(dv,i);
+ updates.set(index, value);
+ i += bytesize;
+ } else {
+ throw new Error("Unknown index "+index);
+ }
+ };
+ // register for rendering on next frame, since there are updates
+ requestHMIAnimation();
+ } catch(err) {
+ // 1003 is for "Unsupported Data"
+ // ws.close(1003, err.message);
+
+ // TODO : remove debug alert ?
+ alert("Error : "+err.message+"\\\\nHMI will be reloaded.");
+
+ // force reload ignoring cache
+ location.reload(true);
+ }
+};
+
+hmi_hash_u8 = new Uint8Array(hmi_hash);
+
+function send_blob(data) {
+ if(data.length > 0) {
+ ws.send(new Blob([hmi_hash_u8].concat(data)));
+ };
+};
+
+const typedarray_types = {
+ INT: (number) => new Int16Array([number]),
+ BOOL: (truth) => new Int16Array([truth]),
+ NODE: (truth) => new Int16Array([truth]),
+ REAL: (number) => new Float32Array([number]),
+ STRING: (str) => {
+ // beremiz default string max size is 128
+ str = str.slice(0,128);
+ binary = new Uint8Array(str.length + 1);
+ binary[0] = str.length;
+ for(let i = 0; i < str.length; i++){
+ binary[i+1] = str.charCodeAt(i);
+ }
+ return binary;
+ }
+ /* TODO */
+};
+
+function send_reset() {
+ send_blob(new Uint8Array([1])); /* reset = 1 */
+};
+
+var subscriptions = [];
+
+function subscribers(index) {
+ let entry = subscriptions[index];
+ let res;
+ if(entry == undefined){
+ res = new Set();
+ subscriptions[index] = [res,0];
+ }else{
+ [res, _ign] = entry;
+ }
+ return res
+}
+
+function get_subscription_period(index) {
+ let entry = subscriptions[index];
+ if(entry == undefined)
+ return 0;
+ let [_ign, period] = entry;
+ return period;
+}
+
+function set_subscription_period(index, period) {
+ let entry = subscriptions[index];
+ if(entry == undefined){
+ subscriptions[index] = [new Set(), period];
+ } else {
+ entry[1] = period;
+ }
+}
+
+// artificially subscribe the watchdog widget to "/heartbeat" hmi variable
+// Since dispatch directly calls change_hmi_value,
+// PLC will periodically send variable at given frequency
+subscribers(heartbeat_index).add({
+ /* type: "Watchdog", */
+ frequency: 1,
+ indexes: [heartbeat_index],
+ new_hmi_value: function(index, value, oldval) {
+ apply_hmi_value(heartbeat_index, value+1);
+ }
+});
+
+function svg_text_to_multiline(elt) {
+ return(Array.prototype.map.call(elt.children, x=>x.textContent).join("\\\\n"));
+}
+
+function multiline_to_svg_text(elt, str) {
+ str.split('\\\\n').map((line,i) => {elt.children[i].textContent = line;});
+}
+
+function switch_langnum(langnum) {
+ langnum = Math.max(0, Math.min(langs.length - 1, langnum));
+
+ for (let translation of translations) {
+ let [objs, msgs] = translation;
+ let msg = msgs[langnum];
+ for (let obj of objs) {
+ multiline_to_svg_text(obj, msg);
+ obj.setAttribute("lang",langnum);
+ }
+ }
+ return langnum;
+}
+
+// backup original texts
+for (let translation of translations) {
+ let [objs, msgs] = translation;
+ msgs.unshift(svg_text_to_multiline(objs[0]));
+}
+
+var lang_local_index = hmi_local_index("lang");
+var langcode_local_index = hmi_local_index("lang_code");
+var langname_local_index = hmi_local_index("lang_name");
+subscribers(lang_local_index).add({
+ indexes: [lang_local_index],
+ new_hmi_value: function(index, value, oldval) {
+ let current_lang = switch_langnum(value);
+ let [langname,langcode] = langs[current_lang];
+ apply_hmi_value(langcode_local_index, langcode);
+ apply_hmi_value(langname_local_index, langname);
+ switch_page();
+ }
+});
+
+function setup_lang(){
+ let current_lang = cache[lang_local_index];
+ let new_lang = switch_langnum(current_lang);
+ if(current_lang != new_lang){
+ apply_hmi_value(lang_local_index, new_lang);
+ }
+}
+
+setup_lang();
+
+function update_subscriptions() {
+ let delta = [];
+ for(let index in subscriptions){
+ let widgets = subscribers(index);
+
+ // periods are in ms
+ let previous_period = get_subscription_period(index);
+
+ // subscribing with a zero period is unsubscribing
+ let new_period = 0;
+ if(widgets.size > 0) {
+ let maxfreq = 0;
+ for(let widget of widgets){
+ let wf = widget.frequency;
+ if(wf != undefined && maxfreq < wf)
+ maxfreq = wf;
+ }
+
+ if(maxfreq != 0)
+ new_period = 1000/maxfreq;
+ }
+
+ if(previous_period != new_period) {
+ set_subscription_period(index, new_period);
+ if(index <= last_remote_index){
+ delta.push(
+ new Uint8Array([2]), /* subscribe = 2 */
+ new Uint32Array([index]),
+ new Uint16Array([new_period]));
+ }
+ }
+ }
+ send_blob(delta);
+};
+
+function send_hmi_value(index, value) {
+ if(index > last_remote_index){
+ updates.set(index, value);
+
+ if(persistent_indexes.has(index)){
+ let varname = persistent_indexes.get(index);
+ document.cookie = varname+"="+value+"; max-age=3153600000";
+ }
+
+ requestHMIAnimation();
+ return;
+ }
+
+ let iectype = hmitree_types[index];
+ let tobinary = typedarray_types[iectype];
+ send_blob([
+ new Uint8Array([0]), /* setval = 0 */
+ new Uint32Array([index]),
+ tobinary(value)]);
+
+ // DON'T DO THAT unless read_iterator in svghmi.c modifies wbuf as well, not only rbuf
+ // cache[index] = value;
+};
+
+function apply_hmi_value(index, new_val) {
+ let old_val = cache[index];
+ if(new_val != undefined && old_val != new_val)
+ send_hmi_value(index, new_val);
+ return new_val;
+}
+
+const quotes = {"'":null, '"':null};
+
+function eval_operation_string(old_val, opstr) {
+ let op = opstr[0];
+ let given_val;
+ if(opstr.length < 2)
+ return undefined;
+ if(opstr[1] in quotes){
+ if(opstr.length < 3)
+ return undefined;
+ if(opstr[opstr.length-1] == opstr[1]){
+ given_val = opstr.slice(2,opstr.length-1);
+ }
+ } else {
+ given_val = Number(opstr.slice(1));
+ }
+ let new_val;
+ switch(op){
+ case "=":
+ new_val = given_val;
+ break;
+ case "+":
+ new_val = old_val + given_val;
+ break;
+ case "-":
+ new_val = old_val - given_val;
+ break;
+ case "*":
+ new_val = old_val * given_val;
+ break;
+ case "/":
+ new_val = old_val / given_val;
+ break;
+ }
+ return new_val;
+}
+
+var current_visible_page;
+var current_subscribed_page;
+var current_page_index;
+var page_node_local_index = hmi_local_index("page_node");
+
+function toggleFullscreen() {
+ let elem = document.documentElement;
+
+ if (!document.fullscreenElement) {
+ elem.requestFullscreen().catch(err => {
+ console.log("Error attempting to enable full-screen mode: "+err.message+" ("+err.name+")");
+ });
+ } else {
+ document.exitFullscreen();
+ }
+}
+
+function prepare_svg() {
+ // prevents context menu from appearing on right click and long touch
+ document.body.addEventListener('contextmenu', e => {
+ toggleFullscreen();
+ e.preventDefault();
+ });
+
+ for(let eltid in detachable_elements){
+ let [element,parent] = detachable_elements[eltid];
+ parent.removeChild(element);
+ }
+};
+
+function switch_page(page_name, page_index) {
+ if(current_subscribed_page != current_visible_page){
+ /* page switch already going */
+ /* TODO LOG ERROR */
+ return false;
+ }
+
+ if(page_name == undefined)
+ page_name = current_subscribed_page;
+
+
+ let old_desc = page_desc[current_subscribed_page];
+ let new_desc = page_desc[page_name];
+
+ if(new_desc == undefined){
+ /* TODO LOG ERROR */
+ return false;
+ }
+
+ if(page_index == undefined){
+ page_index = new_desc.page_index;
+ }
+
+ if(old_desc){
+ old_desc.widgets.map(([widget,relativeness])=>widget.unsub());
+ }
+ const new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index;
+
+ const container_id = page_name + (page_index != undefined ? page_index : "");
+
+ new_desc.widgets.map(([widget,relativeness])=>widget.sub(new_offset,relativeness,container_id));
+
+ update_subscriptions();
+
+ current_subscribed_page = page_name;
+ current_page_index = page_index;
+ let page_node;
+ if(page_index != undefined){
+ page_node = hmitree_paths[page_index];
+ }else{
+ page_node = "";
+ }
+ apply_hmi_value(page_node_local_index, page_node);
+
+ jumps_need_update = true;
+
+ requestHMIAnimation();
+ jump_history.push([page_name, page_index]);
+ if(jump_history.length > 42)
+ jump_history.shift();
+
+ return true;
+};
+
+function switch_visible_page(page_name) {
+
+ let old_desc = page_desc[current_visible_page];
+ let new_desc = page_desc[page_name];
+
+ if(old_desc){
+ for(let eltid in old_desc.required_detachables){
+ if(!(eltid in new_desc.required_detachables)){
+ let [element, parent] = old_desc.required_detachables[eltid];
+ parent.removeChild(element);
+ }
+ }
+ for(let eltid in new_desc.required_detachables){
+ if(!(eltid in old_desc.required_detachables)){
+ let [element, parent] = new_desc.required_detachables[eltid];
+ parent.appendChild(element);
+ }
+ }
+ }else{
+ for(let eltid in new_desc.required_detachables){
+ let [element, parent] = new_desc.required_detachables[eltid];
+ parent.appendChild(element);
+ }
+ }
+
+ svg_root.setAttribute('viewBox',new_desc.bbox.join(" "));
+ current_visible_page = page_name;
+};
+
+// Once connection established
+ws.onopen = function (evt) {
+ init_widgets();
+ send_reset();
+ // show main page
+ prepare_svg();
+ switch_page(default_page);
+};
+
+ws.onclose = function (evt) {
+ // TODO : add visible notification while waiting for reload
+ console.log("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+" Reload in 10s.");
+ // TODO : re-enable auto reload when not in debug
+ //window.setTimeout(() => location.reload(true), 10000);
+ alert("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+".");
+
+};
+
+const xmlns = "http://www.w3.org/2000/svg";
+var edit_callback;
+const localtypes = {"PAGE_LOCAL":null, "HMI_LOCAL":null}
+function edit_value(path, valuetype, callback, initial) {
+ if(valuetype in localtypes){
+ valuetype = (typeof initial) == "number" ? "HMI_REAL" : "HMI_STRING";
+ }
+ let [keypadid, xcoord, ycoord] = keypads[valuetype];
+ edit_callback = callback;
+ let widget = hmi_widgets[keypadid];
+ widget.start_edit(path, valuetype, callback, initial);
+};
+
+var current_modal; /* TODO stack ?*/
+
+function show_modal() {
+ let [element, parent] = detachable_elements[this.element.id];
+
+ tmpgrp = document.createElementNS(xmlns,"g");
+ tmpgrpattr = document.createAttribute("transform");
+ let [xcoord,ycoord] = this.coordinates;
+ let [xdest,ydest] = page_desc[current_visible_page].bbox;
+ tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")";
+
+ tmpgrp.setAttributeNode(tmpgrpattr);
+
+ tmpgrp.appendChild(element);
+ parent.appendChild(tmpgrp);
+
+ current_modal = [this.element.id, tmpgrp];
+};
+
+function end_modal() {
+ let [eltid, tmpgrp] = current_modal;
+ let [element, parent] = detachable_elements[this.element.id];
+
+ parent.removeChild(tmpgrp);
+
+ current_modal = undefined;
+};
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/svghmi.py Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,825 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This file is part of Beremiz
+# Copyright (C) 2021: Edouard TISSERANT
+#
+# See COPYING file for copyrights details.
+
+from __future__ import absolute_import
+import os
+import shutil
+import hashlib
+import shlex
+import time
+
+import wx
+
+from lxml import etree
+from lxml.etree import XSLTApplyError
+
+import util.paths as paths
+from POULibrary import POULibrary
+from docutil import open_svg, get_inkscape_path
+
+from util.ProcessLogger import ProcessLogger
+from runtime.typemapping import DebugTypesSize
+import targets
+from editors.ConfTreeNodeEditor import ConfTreeNodeEditor
+from XSLTransform import XSLTransform
+from svghmi.i18n import EtreeToMessages, SaveCatalog, ReadTranslations,\
+ MatchTranslations, TranslationToEtree, open_pofile,\
+ GetPoFiles
+from svghmi.hmi_tree import HMI_TYPES, HMITreeNode, SPECIAL_NODES
+from svghmi.ui import SVGHMI_UI
+from svghmi.fonts import GetFontTypeAndFamilyName, GetCSSFontFaceFromFontFile
+
+
+ScriptDirectory = paths.AbsDir(__file__)
+
+
+# module scope for HMITree root
+# so that CTN can use HMITree deduced in Library
+# note: this only works because library's Generate_C is
+# systematicaly invoked before CTN's CTNGenerate_C
+
+hmi_tree_root = None
+
+on_hmitree_update = None
+
+maxConnectionsTotal = 0
+
+class SVGHMILibrary(POULibrary):
+ def GetLibraryPath(self):
+ return paths.AbsNeighbourFile(__file__, "pous.xml")
+
+ def Generate_C(self, buildpath, varlist, IECCFLAGS):
+ global hmi_tree_root, on_hmitree_update, maxConnectionsTotal
+
+ already_found_watchdog = False
+ found_SVGHMI_instance = False
+ for CTNChild in self.GetCTR().IterChildren():
+ if isinstance(CTNChild, SVGHMI):
+ found_SVGHMI_instance = True
+ # collect maximum connection total for all svghmi nodes
+ maxConnectionsTotal += CTNChild.GetParamsAttributes("SVGHMI.MaxConnections")["value"]
+
+ # spot watchdog abuse
+ if CTNChild.GetParamsAttributes("SVGHMI.EnableWatchdog")["value"]:
+ if already_found_watchdog:
+ self.FatalError("SVGHMI: Only one watchdog enabled HMI allowed")
+ already_found_watchdog = True
+
+ if not found_SVGHMI_instance:
+ self.FatalError("SVGHMI : Library is selected but not used. Please either deselect it in project config or add a SVGHMI node to project.")
+
+
+ """
+ PLC Instance Tree:
+ prog0
+ +->v1 HMI_INT
+ +->v2 HMI_INT
+ +->fb0 (type mhoo)
+ | +->va HMI_NODE
+ | +->v3 HMI_INT
+ | +->v4 HMI_INT
+ |
+ +->fb1 (type mhoo)
+ | +->va HMI_NODE
+ | +->v3 HMI_INT
+ | +->v4 HMI_INT
+ |
+ +->fb2
+ +->v5 HMI_IN
+
+ HMI tree:
+ hmi0
+ +->v1
+ +->v2
+ +->fb0 class:va
+ | +-> v3
+ | +-> v4
+ |
+ +->fb1 class:va
+ | +-> v3
+ | +-> v4
+ |
+ +->v5
+
+ """
+
+ # Filter known HMI types
+ hmi_types_instances = [v for v in varlist if v["derived"] in HMI_TYPES]
+
+ hmi_tree_root = None
+
+ # take first HMI_NODE (placed as special node), make it root
+ for i,v in enumerate(hmi_types_instances):
+ path = v["IEC_path"].split(".")
+ derived = v["derived"]
+ if derived == "HMI_NODE":
+ hmi_tree_root = HMITreeNode(path, "", derived, v["type"], v["vartype"], v["C_path"])
+ hmi_types_instances.pop(i)
+ break
+
+ # deduce HMI tree from PLC HMI_* instances
+ for v in hmi_types_instances:
+ path = v["IEC_path"].split(".")
+ # ignores variables starting with _TMP_
+ if path[-1].startswith("_TMP_"):
+ continue
+ derived = v["derived"]
+ kwargs={}
+ if derived == "HMI_NODE":
+ # TODO : make problem if HMI_NODE used in CONFIG or RESOURCE
+ name = path[-2]
+ kwargs['hmiclass'] = path[-1]
+ else:
+ name = path[-1]
+ new_node = HMITreeNode(path, name, derived, v["type"], v["vartype"], v["C_path"], **kwargs)
+ placement_result = hmi_tree_root.place_node(new_node)
+ if placement_result is not None:
+ cause, problematic_node = placement_result
+ if cause == "Non_Unique":
+ message = _("HMI tree nodes paths are not unique.\nConflicting variable: {} {}").format(
+ ".".join(problematic_node.path),
+ ".".join(new_node.path))
+
+ last_FB = None
+ for v in varlist:
+ if v["vartype"] == "FB":
+ last_FB = v
+ if v["C_path"] == problematic_node:
+ break
+ if last_FB is not None:
+ failing_parent = last_FB["type"]
+ message += "\n"
+ message += _("Solution: Add HMI_NODE at beginning of {}").format(failing_parent)
+
+ elif cause in ["Late_HMI_NODE", "Duplicate_HMI_NODE"]:
+ cause, problematic_node = placement_result
+ message = _("There must be only one occurrence of HMI_NODE before any HMI_* variable in POU.\nConflicting variable: {} {}").format(
+ ".".join(problematic_node.path),
+ ".".join(new_node.path))
+
+ self.FatalError("SVGHMI : " + message)
+
+ if on_hmitree_update is not None:
+ on_hmitree_update(hmi_tree_root)
+
+ variable_decl_array = []
+ extern_variables_declarations = []
+ buf_index = 0
+ item_count = 0
+ found_heartbeat = False
+
+ hearbeat_IEC_path = ['CONFIG', 'HEARTBEAT']
+
+ for node in hmi_tree_root.traverse():
+ if not found_heartbeat and node.path == hearbeat_IEC_path:
+ hmi_tree_hearbeat_index = item_count
+ found_heartbeat = True
+ extern_variables_declarations += [
+ "#define heartbeat_index "+str(hmi_tree_hearbeat_index)
+ ]
+ if hasattr(node, "iectype"):
+ sz = DebugTypesSize.get(node.iectype, 0)
+ variable_decl_array += [
+ "{&(" + node.cpath + "), " + node.iectype + {
+ "EXT": "_P_ENUM",
+ "IN": "_P_ENUM",
+ "MEM": "_O_ENUM",
+ "OUT": "_O_ENUM",
+ "VAR": "_ENUM"
+ }[node.vartype] + ", " +
+ str(buf_index) + ", 0, }"]
+ buf_index += sz
+ item_count += 1
+ if len(node.path) == 1:
+ extern_variables_declarations += [
+ "extern __IEC_" + node.iectype + "_" +
+ "t" if node.vartype is "VAR" else "p"
+ + node.cpath + ";"]
+
+ assert(found_heartbeat)
+
+ # TODO : filter only requiered external declarations
+ for v in varlist:
+ if v["C_path"].find('.') < 0:
+ extern_variables_declarations += [
+ "extern %(type)s %(C_path)s;" % v]
+
+ # TODO check if programs need to be declared separately
+ # "programs_declarations": "\n".join(["extern %(type)s %(C_path)s;" %
+ # p for p in self._ProgramList]),
+
+ # C code to observe/access HMI tree variables
+ svghmi_c_filepath = paths.AbsNeighbourFile(__file__, "svghmi.c")
+ svghmi_c_file = open(svghmi_c_filepath, 'r')
+ svghmi_c_code = svghmi_c_file.read()
+ svghmi_c_file.close()
+ svghmi_c_code = svghmi_c_code % {
+ "variable_decl_array": ",\n".join(variable_decl_array),
+ "extern_variables_declarations": "\n".join(extern_variables_declarations),
+ "buffer_size": buf_index,
+ "item_count": item_count,
+ "var_access_code": targets.GetCode("var_access.c"),
+ "PLC_ticktime": self.GetCTR().GetTicktime(),
+ "hmi_hash_ints": ",".join(map(str,hmi_tree_root.hash())),
+ "max_connections": maxConnectionsTotal
+ }
+
+ gen_svghmi_c_path = os.path.join(buildpath, "svghmi.c")
+ gen_svghmi_c = open(gen_svghmi_c_path, 'w')
+ gen_svghmi_c.write(svghmi_c_code)
+ gen_svghmi_c.close()
+
+ # Python based WebSocket HMITree Server
+ svghmiserverfile = open(paths.AbsNeighbourFile(__file__, "svghmi_server.py"), 'r')
+ svghmiservercode = svghmiserverfile.read()
+ svghmiserverfile.close()
+
+ runtimefile_path = os.path.join(buildpath, "runtime_00_svghmi.py")
+ runtimefile = open(runtimefile_path, 'w')
+ runtimefile.write(svghmiservercode)
+ runtimefile.close()
+
+ # Backup HMI Tree in XML form so that it can be loaded without building
+ hmitree_backup_path = os.path.join(buildpath, "hmitree.xml")
+ hmitree_backup_file = open(hmitree_backup_path, 'wb')
+ hmitree_backup_file.write(etree.tostring(hmi_tree_root.etree()))
+ hmitree_backup_file.close()
+
+ return ((["svghmi"], [(gen_svghmi_c_path, IECCFLAGS)], True), "",
+ ("runtime_00_svghmi.py", open(runtimefile_path, "rb")))
+ # ^
+ # note the double zero after "runtime_",
+ # to ensure placement before other CTN generated code in execution order
+
+ def GlobalInstances(self):
+ """ Adds HMI tree root and hearbeat to PLC Configuration's globals """
+ return [(name, iec_type, "") for name, iec_type in SPECIAL_NODES]
+
+
+
+def Register_SVGHMI_UI_for_HMI_tree_updates(ref):
+ global on_hmitree_update
+ def HMITreeUpdate(_hmi_tree_root):
+ obj = ref()
+ if obj is not None:
+ obj.HMITreeUpdate(_hmi_tree_root)
+
+ on_hmitree_update = HMITreeUpdate
+
+
+class SVGHMIEditor(ConfTreeNodeEditor):
+ CONFNODEEDITOR_TABS = [
+ (_("HMI Tree"), "CreateSVGHMI_UI")]
+
+ def CreateSVGHMI_UI(self, parent):
+ global hmi_tree_root
+
+ if hmi_tree_root is None:
+ buildpath = self.Controler.GetCTRoot()._getBuildPath()
+ hmitree_backup_path = os.path.join(buildpath, "hmitree.xml")
+ if os.path.exists(hmitree_backup_path):
+ hmitree_backup_file = open(hmitree_backup_path, 'rb')
+ hmi_tree_root = HMITreeNode.from_etree(etree.parse(hmitree_backup_file).getroot())
+
+ ret = SVGHMI_UI(parent, Register_SVGHMI_UI_for_HMI_tree_updates)
+
+ on_hmitree_update(hmi_tree_root)
+
+ return ret
+
+class SVGHMI(object):
+ XSD = """<?xml version="1.0" encoding="utf-8" ?>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="SVGHMI">
+ <xsd:complexType>
+ <xsd:attribute name="OnStart" type="xsd:string" use="optional" default="chromium {url}"/>
+ <xsd:attribute name="OnStop" type="xsd:string" use="optional" default="echo 'please close chromium window at {url}'"/>
+ <xsd:attribute name="OnWatchdog" type="xsd:string" use="optional" default="echo 'Watchdog for {name} !'"/>
+ <xsd:attribute name="EnableWatchdog" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="WatchdogInitial" use="optional" default="30">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:integer">
+ <xsd:minInclusive value="2"/>
+ <xsd:maxInclusive value="600"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="WatchdogInterval" use="optional" default="5">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:integer">
+ <xsd:minInclusive value="2"/>
+ <xsd:maxInclusive value="60"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="Port" type="xsd:integer" use="optional" default="8008"/>
+ <xsd:attribute name="Interface" type="xsd:string" use="optional" default="localhost"/>
+ <xsd:attribute name="Path" type="xsd:string" use="optional" default="{name}"/>
+ <xsd:attribute name="MaxConnections" use="optional" default="16">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:integer">
+ <xsd:minInclusive value="1"/>
+ <xsd:maxInclusive value="1024"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ """
+
+ EditorType = SVGHMIEditor
+
+ ConfNodeMethods = [
+ {
+ "bitmap": "ImportSVG",
+ "name": _("Import SVG"),
+ "tooltip": _("Import SVG"),
+ "method": "_ImportSVG"
+ },
+ {
+ "bitmap": "EditSVG",
+ "name": _("Inkscape"),
+ "tooltip": _("Edit HMI"),
+ "method": "_StartInkscape"
+ },
+ {
+ "bitmap": "OpenPOT",
+ "name": _("New lang"),
+ "tooltip": _("Open non translated message catalog (POT) to start new language"),
+ "method": "_OpenPOT"
+ },
+ {
+ "bitmap": "EditPO",
+ "name": _("Edit lang"),
+ "tooltip": _("Edit existing message catalog (PO) for specific language"),
+ "method": "_EditPO"
+ },
+ {
+ "bitmap": "AddFont",
+ "name": _("Add Font"),
+ "tooltip": _("Add TTF, OTF or WOFF font to be embedded in HMI"),
+ "method": "_AddFont"
+ },
+ {
+ "bitmap": "DelFont",
+ "name": _("Delete Font"),
+ "tooltip": _("Remove font previously added to HMI"),
+ "method": "_DelFont"
+ },
+ ]
+
+ def _getSVGpath(self, project_path=None):
+ if project_path is None:
+ project_path = self.CTNPath()
+ return os.path.join(project_path, "svghmi.svg")
+
+ def _getPOTpath(self, project_path=None):
+ if project_path is None:
+ project_path = self.CTNPath()
+ return os.path.join(project_path, "messages.pot")
+
+ def OnCTNSave(self, from_project_path=None):
+ if from_project_path is not None:
+ shutil.copyfile(self._getSVGpath(from_project_path),
+ self._getSVGpath())
+ shutil.copyfile(self._getPOTpath(from_project_path),
+ self._getPOTpath())
+ # XXX TODO copy .PO files
+ return True
+
+ def GetSVGGeometry(self):
+ self.ProgressStart("inkscape", "collecting SVG geometry (Inkscape)")
+ # invoke inskscape -S, csv-parse output, produce elements
+ InkscapeGeomColumns = ["Id", "x", "y", "w", "h"]
+
+ inkpath = get_inkscape_path()
+
+ if inkpath is None:
+ self.FatalError("SVGHMI: inkscape is not installed.")
+
+ svgpath = self._getSVGpath()
+ status, result, _err_result = ProcessLogger(self.GetCTRoot().logger,
+ '"' + inkpath + '" -S "' + svgpath + '"',
+ no_stdout=True,
+ no_stderr=True).spin()
+ if status != 0:
+ self.FatalError("SVGHMI: inkscape couldn't extract geometry from given SVG.")
+
+ res = []
+ for line in result.split():
+ strippedline = line.strip()
+ attrs = dict(
+ zip(InkscapeGeomColumns, line.strip().split(',')))
+
+ res.append(etree.Element("bbox", **attrs))
+
+ self.ProgressEnd("inkscape")
+ return res
+
+ def GetHMITree(self):
+ global hmi_tree_root
+ self.ProgressStart("hmitree", "getting HMI tree")
+ res = [hmi_tree_root.etree(add_hash=True)]
+ self.ProgressEnd("hmitree")
+ return res
+
+ def GetTranslations(self, _context, msgs):
+ self.ProgressStart("i18n", "getting Translations")
+ messages = EtreeToMessages(msgs)
+
+ if len(messages) == 0:
+ self.ProgressEnd("i18n")
+ return
+
+ SaveCatalog(self._getPOTpath(), messages)
+
+ translations = ReadTranslations(self.CTNPath())
+
+ langs,translated_messages = MatchTranslations(translations, messages,
+ errcallback=self.GetCTRoot().logger.write_warning)
+
+ ret = TranslationToEtree(langs,translated_messages)
+
+ self.ProgressEnd("i18n")
+
+ return ret
+
+ def GetFontsFiles(self):
+ project_path = self.CTNPath()
+ fontdir = os.path.join(project_path, "fonts")
+ if os.path.isdir(fontdir):
+ return [os.path.join(fontdir,f) for f in sorted(os.listdir(fontdir))]
+ return []
+
+ def GetFonts(self, _context):
+ css_parts = []
+
+ for fontfile in self.GetFontsFiles():
+ if os.path.isfile(fontfile):
+ css_parts.append(GetCSSFontFaceFromFontFile(fontfile))
+
+ return "".join(css_parts)
+
+ times_msgs = {}
+ indent = 1
+ def ProgressStart(self, k, m):
+ self.times_msgs[k] = (time.time(), m)
+ self.GetCTRoot().logger.write(" "*self.indent + "Start %s...\n"%m)
+ self.indent = self.indent + 1
+
+ def ProgressEnd(self, k):
+ t = time.time()
+ oldt, m = self.times_msgs[k]
+ self.indent = self.indent - 1
+ self.GetCTRoot().logger.write(" "*self.indent + "... finished in %.3fs\n"%(t - oldt))
+
+ def get_SVGHMI_options(self):
+ name = self.BaseParams.getName()
+ port = self.GetParamsAttributes("SVGHMI.Port")["value"]
+ interface = self.GetParamsAttributes("SVGHMI.Interface")["value"]
+ path = self.GetParamsAttributes("SVGHMI.Path")["value"].format(name=name)
+ if path and path[0]=='/':
+ path = path[1:]
+ enable_watchdog = self.GetParamsAttributes("SVGHMI.EnableWatchdog")["value"]
+ url="http://"+interface+("" if port==80 else (":"+str(port))
+ ) + (("/"+path) if path else ""
+ ) + ("#watchdog" if enable_watchdog else "")
+
+ return dict(
+ name=name,
+ port=port,
+ interface=interface,
+ path=path,
+ enable_watchdog=enable_watchdog,
+ url=url)
+
+ def CTNGenerate_C(self, buildpath, locations):
+ global hmi_tree_root
+
+ if hmi_tree_root is None:
+ self.FatalError("SVGHMI : Library is not selected. Please select it in project config.")
+
+ location_str = "_".join(map(str, self.GetCurrentLocation()))
+ svghmi_options = self.get_SVGHMI_options()
+
+ svgfile = self._getSVGpath()
+
+ res = ([], "", False)
+
+ target_fname = "svghmi_"+location_str+".xhtml"
+
+ build_path = self._getBuildPath()
+ target_path = os.path.join(build_path, target_fname)
+ hash_path = os.path.join(build_path, "svghmi.md5")
+
+ self.GetCTRoot().logger.write("SVGHMI:\n")
+
+ if os.path.exists(svgfile):
+
+ hasher = hashlib.md5()
+ hmi_tree_root._hash(hasher)
+ pofiles = GetPoFiles(self.CTNPath())
+ filestocheck = [svgfile] + \
+ (list(zip(*pofiles)[1]) if pofiles else []) + \
+ self.GetFontsFiles()
+
+ for filetocheck in filestocheck:
+ with open(filetocheck, 'rb') as afile:
+ while True:
+ buf = afile.read(65536)
+ if len(buf) > 0:
+ hasher.update(buf)
+ else:
+ break
+ digest = hasher.hexdigest()
+
+ if os.path.exists(hash_path):
+ with open(hash_path, 'rb') as digest_file:
+ last_digest = digest_file.read()
+ else:
+ last_digest = None
+
+ if digest != last_digest:
+
+ transform = XSLTransform(os.path.join(ScriptDirectory, "gen_index_xhtml.xslt"),
+ [("GetSVGGeometry", lambda *_ignored:self.GetSVGGeometry()),
+ ("GetHMITree", lambda *_ignored:self.GetHMITree()),
+ ("GetTranslations", self.GetTranslations),
+ ("GetFonts", self.GetFonts),
+ ("ProgressStart", lambda _ign,k,m:self.ProgressStart(str(k),str(m))),
+ ("ProgressEnd", lambda _ign,k:self.ProgressEnd(str(k)))])
+
+ self.ProgressStart("svg", "source SVG parsing")
+
+ # load svg as a DOM with Etree
+ svgdom = etree.parse(svgfile)
+
+ self.ProgressEnd("svg")
+
+ # call xslt transform on Inkscape's SVG to generate XHTML
+ try:
+ self.ProgressStart("xslt", "XSLT transform")
+ result = transform.transform(svgdom) # , profile_run=True)
+ self.ProgressEnd("xslt")
+ except XSLTApplyError as e:
+ self.FatalError("SVGHMI " + svghmi_options["name"] + ": " + e.message)
+ finally:
+ for entry in transform.get_error_log():
+ message = "SVGHMI: "+ entry.message + "\n"
+ self.GetCTRoot().logger.write_warning(message)
+
+ target_file = open(target_path, 'wb')
+ result.write(target_file, encoding="utf-8")
+ target_file.close()
+
+ # print(str(result))
+ # print(transform.xslt.error_log)
+ # print(etree.tostring(result.xslt_profile,pretty_print=True))
+
+ with open(hash_path, 'wb') as digest_file:
+ digest_file.write(digest)
+ else:
+ self.GetCTRoot().logger.write(" No changes - XSLT transformation skipped\n")
+
+ else:
+ target_file = open(target_path, 'wb')
+ target_file.write("""<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>SVGHMI</title>
+</head>
+<body>
+<h1> No SVG file provided </h1>
+</body>
+</html>
+""")
+ target_file.close()
+
+ res += ((target_fname, open(target_path, "rb")),)
+
+ svghmi_cmds = {}
+ for thing in ["Start", "Stop", "Watchdog"]:
+ given_command = self.GetParamsAttributes("SVGHMI.On"+thing)["value"]
+ svghmi_cmds[thing] = (
+ "Popen(" +
+ repr(shlex.split(given_command.format(**svghmi_options))) +
+ ")") if given_command else "pass # no command given"
+
+ runtimefile_path = os.path.join(buildpath, "runtime_%s_svghmi_.py" % location_str)
+ runtimefile = open(runtimefile_path, 'w')
+ runtimefile.write("""
+# TODO : multiple watchdog (one for each svghmi instance)
+def svghmi_{location}_watchdog_trigger():
+ {svghmi_cmds[Watchdog]}
+
+max_svghmi_sessions = {maxConnections_total}
+
+def _runtime_{location}_svghmi_start():
+ global svghmi_watchdog, svghmi_servers
+
+ srv = svghmi_servers.get("{interface}:{port}", None)
+ if srv is not None:
+ svghmi_root, svghmi_listener, path_list = srv
+ if '{path}' in path_list:
+ raise Exception("SVGHMI {name}: path {path} already used on {interface}:{port}")
+ else:
+ svghmi_root = Resource()
+ factory = HMIWebSocketServerFactory()
+ factory.setProtocolOptions(maxConnections={maxConnections})
+
+ svghmi_root.putChild("ws", WebSocketResource(factory))
+
+ svghmi_listener = reactor.listenTCP({port}, Site(svghmi_root), interface='{interface}')
+ path_list = []
+ svghmi_servers["{interface}:{port}"] = (svghmi_root, svghmi_listener, path_list)
+
+ svghmi_root.putChild(
+ '{path}',
+ NoCacheFile('{xhtml}',
+ defaultType='application/xhtml+xml'))
+
+ path_list.append("{path}")
+
+ {svghmi_cmds[Start]}
+
+ if {enable_watchdog}:
+ if svghmi_watchdog is None:
+ svghmi_watchdog = Watchdog(
+ {watchdog_initial},
+ {watchdog_interval},
+ svghmi_{location}_watchdog_trigger)
+ else:
+ raise Exception("SVGHMI {name}: only one watchdog allowed")
+
+
+def _runtime_{location}_svghmi_stop():
+ global svghmi_watchdog, svghmi_servers
+
+ if svghmi_watchdog is not None:
+ svghmi_watchdog.cancel()
+ svghmi_watchdog = None
+
+ svghmi_root, svghmi_listener, path_list = svghmi_servers["{interface}:{port}"]
+ svghmi_root.delEntity('{path}')
+
+ path_list.remove('{path}')
+
+ if len(path_list)==0:
+ svghmi_root.delEntity("ws")
+ svghmi_listener.stopListening()
+ svghmi_servers.pop("{interface}:{port}")
+
+ {svghmi_cmds[Stop]}
+
+ """.format(location=location_str,
+ xhtml=target_fname,
+ svghmi_cmds=svghmi_cmds,
+ watchdog_initial = self.GetParamsAttributes("SVGHMI.WatchdogInitial")["value"],
+ watchdog_interval = self.GetParamsAttributes("SVGHMI.WatchdogInterval")["value"],
+ maxConnections = self.GetParamsAttributes("SVGHMI.MaxConnections")["value"],
+ maxConnections_total = maxConnectionsTotal,
+ **svghmi_options
+ ))
+
+ runtimefile.close()
+
+ res += (("runtime_%s_svghmi.py" % location_str, open(runtimefile_path, "rb")),)
+
+ return res
+
+ def _ImportSVG(self):
+ dialog = wx.FileDialog(self.GetCTRoot().AppFrame, _("Choose a SVG file"), os.getcwd(), "", _("SVG files (*.svg)|*.svg|All files|*.*"), wx.OPEN)
+ if dialog.ShowModal() == wx.ID_OK:
+ svgpath = dialog.GetPath()
+ if os.path.isfile(svgpath):
+ shutil.copy(svgpath, self._getSVGpath())
+ else:
+ self.GetCTRoot().logger.write_error(_("No such SVG file: %s\n") % svgpath)
+ dialog.Destroy()
+
+ def getDefaultSVG(self):
+ return os.path.join(ScriptDirectory, "default.svg")
+
+ def _StartInkscape(self):
+ svgfile = self._getSVGpath()
+ open_inkscape = True
+ if not self.GetCTRoot().CheckProjectPathPerm():
+ dialog = wx.MessageDialog(self.GetCTRoot().AppFrame,
+ _("You don't have write permissions.\nOpen Inkscape anyway ?"),
+ _("Open Inkscape"),
+ wx.YES_NO | wx.ICON_QUESTION)
+ open_inkscape = dialog.ShowModal() == wx.ID_YES
+ dialog.Destroy()
+ if open_inkscape:
+ if not os.path.isfile(svgfile):
+ # make a copy of default svg from source
+ default = self.getDefaultSVG()
+ shutil.copyfile(default, svgfile)
+ open_svg(svgfile)
+
+ def _StartPOEdit(self, POFile):
+ open_poedit = True
+ if not self.GetCTRoot().CheckProjectPathPerm():
+ dialog = wx.MessageDialog(self.GetCTRoot().AppFrame,
+ _("You don't have write permissions.\nOpen POEdit anyway ?"),
+ _("Open POEdit"),
+ wx.YES_NO | wx.ICON_QUESTION)
+ open_poedit = dialog.ShowModal() == wx.ID_YES
+ dialog.Destroy()
+ if open_poedit:
+ open_pofile(POFile)
+
+ def _EditPO(self):
+ """ Select a specific translation and edit it with POEdit """
+ project_path = self.CTNPath()
+ dialog = wx.FileDialog(self.GetCTRoot().AppFrame, _("Choose a PO file"), project_path, "", _("PO files (*.po)|*.po"), wx.OPEN)
+ if dialog.ShowModal() == wx.ID_OK:
+ POFile = dialog.GetPath()
+ if os.path.isfile(POFile):
+ if os.path.relpath(POFile, project_path) == os.path.basename(POFile):
+ self._StartPOEdit(POFile)
+ else:
+ self.GetCTRoot().logger.write_error(_("PO file misplaced: %s is not in %s\n") % (POFile,project_path))
+ else:
+ self.GetCTRoot().logger.write_error(_("PO file does not exist: %s\n") % POFile)
+ dialog.Destroy()
+
+ def _OpenPOT(self):
+ """ Start POEdit with untouched empty catalog """
+ POFile = self._getPOTpath()
+ if os.path.isfile(POFile):
+ self._StartPOEdit(POFile)
+ else:
+ self.GetCTRoot().logger.write_error(_("POT file does not exist, add translatable text (label starting with '_') in Inkscape first\n"))
+
+ def _AddFont(self):
+ dialog = wx.FileDialog(
+ self.GetCTRoot().AppFrame,
+ _("Choose a font"),
+ os.path.expanduser("~"),
+ "",
+ _("Font files (*.ttf;*.otf;*.woff;*.woff2)|*.ttf;*.otf;*.woff;*.woff2"), wx.OPEN)
+
+ if dialog.ShowModal() == wx.ID_OK:
+ fontfile = dialog.GetPath()
+ if os.path.isfile(fontfile):
+ familyname, uniquename, formatname, mimetype = GetFontTypeAndFamilyName(fontfile)
+ else:
+ self.GetCTRoot().logger.write_error(
+ _('Selected font %s is not a readable file\n')%fontfile)
+ return
+ if familyname is None or uniquename is None or formatname is None or mimetype is None:
+ self.GetCTRoot().logger.write_error(
+ _('Selected font file %s is invalid or incompatible\n')%fontfile)
+ return
+
+ project_path = self.CTNPath()
+
+ fontfname = uniquename + "." + mimetype.split('/')[1]
+ fontdir = os.path.join(project_path, "fonts")
+ newfontfile = os.path.join(fontdir, fontfname)
+
+ if not os.path.exists(fontdir):
+ os.mkdir(fontdir)
+
+ shutil.copyfile(fontfile, newfontfile)
+
+ self.GetCTRoot().logger.write(
+ _('Added font %s as %s\n')%(fontfile,newfontfile))
+
+ def _DelFont(self):
+ project_path = self.CTNPath()
+ fontdir = os.path.join(project_path, "fonts")
+ dialog = wx.FileDialog(
+ self.GetCTRoot().AppFrame,
+ _("Choose a font to remove"),
+ fontdir,
+ "",
+ _("Font files (*.ttf;*.otf;*.woff;*.woff2)|*.ttf;*.otf;*.woff;*.woff2"), wx.OPEN)
+ if dialog.ShowModal() == wx.ID_OK:
+ fontfile = dialog.GetPath()
+ if os.path.isfile(fontfile):
+ if os.path.relpath(fontfile, fontdir) == os.path.basename(fontfile):
+ os.remove(fontfile)
+ self.GetCTRoot().logger.write(
+ _('Removed font %s\n')%fontfile)
+ else:
+ self.GetCTRoot().logger.write_error(
+ _("Font to remove %s is not in %s\n") % (fontfile,fontdir))
+ else:
+ self.GetCTRoot().logger.write_error(
+ _("Font file does not exist: %s\n") % fontfile)
+
+ ## In case one day we support more than one heartbeat
+ # def CTNGlobalInstances(self):
+ # view_name = self.BaseParams.getName()
+ # return [(view_name + "_HEARTBEAT", "HMI_INT", "")]
+
+ def GetIconName(self):
+ return "SVGHMI"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/svghmi_server.py Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,298 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This file is part of Beremiz
+# Copyright (C) 2019: Edouard TISSERANT
+# See COPYING file for copyrights details.
+
+from __future__ import absolute_import
+import errno
+from threading import RLock, Timer
+
+try:
+ from runtime.spawn_subprocess import Popen
+except ImportError:
+ from subprocess import Popen
+
+from twisted.web.server import Site
+from twisted.web.resource import Resource
+from twisted.internet import reactor
+from twisted.web.static import File
+
+from autobahn.twisted.websocket import WebSocketServerFactory, WebSocketServerProtocol
+from autobahn.websocket.protocol import WebSocketProtocol
+from autobahn.twisted.resource import WebSocketResource
+
+max_svghmi_sessions = None
+svghmi_watchdog = None
+
+
+svghmi_wait = PLCBinary.svghmi_wait
+svghmi_wait.restype = ctypes.c_int # error or 0
+svghmi_wait.argtypes = []
+
+svghmi_continue_collect = ctypes.c_int.in_dll(PLCBinary, "svghmi_continue_collect")
+
+svghmi_send_collect = PLCBinary.svghmi_send_collect
+svghmi_send_collect.restype = ctypes.c_int # error or 0
+svghmi_send_collect.argtypes = [
+ ctypes.c_uint32, # index
+ ctypes.POINTER(ctypes.c_uint32), # size
+ ctypes.POINTER(ctypes.c_void_p)] # data ptr
+
+svghmi_reset = PLCBinary.svghmi_reset
+svghmi_reset.restype = ctypes.c_int # error or 0
+svghmi_reset.argtypes = [
+ ctypes.c_uint32] # index
+
+svghmi_recv_dispatch = PLCBinary.svghmi_recv_dispatch
+svghmi_recv_dispatch.restype = ctypes.c_int # error or 0
+svghmi_recv_dispatch.argtypes = [
+ ctypes.c_uint32, # index
+ ctypes.c_uint32, # size
+ ctypes.c_char_p] # data ptr
+
+class HMISessionMgr(object):
+ def __init__(self):
+ self.multiclient_sessions = set()
+ self.watchdog_session = None
+ self.session_count = 0
+ self.lock = RLock()
+ self.indexes = set()
+
+ def next_index(self):
+ if self.indexes:
+ greatest = max(self.indexes)
+ holes = set(range(greatest)) - self.indexes
+ index = min(holes) if holes else greatest+1
+ else:
+ index = 0
+ self.indexes.add(index)
+ return index
+
+ def free_index(self, index):
+ self.indexes.remove(index)
+
+ def register(self, session):
+ global max_svghmi_sessions
+ with self.lock:
+ if session.is_watchdog_session:
+ # Creating a new watchdog session closes pre-existing one
+ if self.watchdog_session is not None:
+ self.unregister(self.watchdog_session)
+ else:
+ assert(self.session_count < max_svghmi_sessions)
+ self.session_count += 1
+
+ self.watchdog_session = session
+ else:
+ assert(self.session_count < max_svghmi_sessions)
+ self.multiclient_sessions.add(session)
+ self.session_count += 1
+ session.session_index = self.next_index()
+
+ def unregister(self, session):
+ with self.lock:
+ if session.is_watchdog_session :
+ if self.watchdog_session != session:
+ return
+ self.watchdog_session = None
+ else:
+ try:
+ self.multiclient_sessions.remove(session)
+ except KeyError:
+ return
+ self.free_index(session.session_index)
+ self.session_count -= 1
+ session.kill()
+
+ def close_all(self):
+ for session in self.iter_sessions():
+ self.unregister(session)
+
+ def iter_sessions(self):
+ with self.lock:
+ lst = list(self.multiclient_sessions)
+ if self.watchdog_session is not None:
+ lst = [self.watchdog_session]+lst
+ for nxt_session in lst:
+ yield nxt_session
+
+
+svghmi_session_manager = HMISessionMgr()
+
+
+class HMISession(object):
+ def __init__(self, protocol_instance):
+ self.protocol_instance = protocol_instance
+ self._session_index = None
+ self.closed = False
+
+ @property
+ def is_watchdog_session(self):
+ return self.protocol_instance.has_watchdog
+
+ @property
+ def session_index(self):
+ return self._session_index
+
+ @session_index.setter
+ def session_index(self, value):
+ self._session_index = value
+
+ def reset(self):
+ return svghmi_reset(self.session_index)
+
+ def close(self):
+ if self.closed: return
+ self.protocol_instance.sendClose(WebSocketProtocol.CLOSE_STATUS_CODE_NORMAL)
+
+ def notify_closed(self):
+ self.closed = True
+
+ def kill(self):
+ self.close()
+ self.reset()
+
+ def onMessage(self, msg):
+ # pass message to the C side recieve_message()
+ if self.closed: return
+ return svghmi_recv_dispatch(self.session_index, len(msg), msg)
+
+ def sendMessage(self, msg):
+ if self.closed: return
+ self.protocol_instance.sendMessage(msg, True)
+ return 0
+
+class Watchdog(object):
+ def __init__(self, initial_timeout, interval, callback):
+ self._callback = callback
+ self.lock = RLock()
+ self.initial_timeout = initial_timeout
+ self.interval = interval
+ self.callback = callback
+ with self.lock:
+ self._start()
+
+ def _start(self, rearm=False):
+ duration = self.interval if rearm else self.initial_timeout
+ if duration:
+ self.timer = Timer(duration, self.trigger)
+ self.timer.start()
+ else:
+ self.timer = None
+
+ def _stop(self):
+ if self.timer is not None:
+ self.timer.cancel()
+ self.timer = None
+
+ def cancel(self):
+ with self.lock:
+ self._stop()
+
+ def feed(self, rearm=True):
+ with self.lock:
+ self._stop()
+ self._start(rearm)
+
+ def trigger(self):
+ self._callback()
+ # Don't repeat trigger periodically
+ # # wait for initial timeout on re-start
+ # self.feed(rearm=False)
+
+class HMIProtocol(WebSocketServerProtocol):
+
+ def __init__(self, *args, **kwargs):
+ self._hmi_session = None
+ self.has_watchdog = False
+ WebSocketServerProtocol.__init__(self, *args, **kwargs)
+
+ def onConnect(self, request):
+ self.has_watchdog = request.params.get("mode", [None])[0] == "watchdog"
+ return WebSocketServerProtocol.onConnect(self, request)
+
+ def onOpen(self):
+ global svghmi_session_manager
+ assert(self._hmi_session is None)
+ _hmi_session = HMISession(self)
+ registered = svghmi_session_manager.register(_hmi_session)
+ self._hmi_session = _hmi_session
+
+ def onClose(self, wasClean, code, reason):
+ global svghmi_session_manager
+ if self._hmi_session is None : return
+ self._hmi_session.notify_closed()
+ svghmi_session_manager.unregister(self._hmi_session)
+ self._hmi_session = None
+
+ def onMessage(self, msg, isBinary):
+ global svghmi_watchdog
+ if self._hmi_session is None : return
+ result = self._hmi_session.onMessage(msg)
+ if result == 1 and self.has_watchdog: # was heartbeat
+ if svghmi_watchdog is not None:
+ svghmi_watchdog.feed()
+
+class HMIWebSocketServerFactory(WebSocketServerFactory):
+ protocol = HMIProtocol
+
+svghmi_servers = {}
+svghmi_send_thread = None
+
+def SendThreadProc():
+ global svghmi_session_manager
+ size = ctypes.c_uint32()
+ ptr = ctypes.c_void_p()
+ res = 0
+ while svghmi_continue_collect:
+ svghmi_wait()
+ for svghmi_session in svghmi_session_manager.iter_sessions():
+ res = svghmi_send_collect(
+ svghmi_session.session_index,
+ ctypes.byref(size), ctypes.byref(ptr))
+ if res == 0:
+ svghmi_session.sendMessage(
+ ctypes.string_at(ptr.value,size.value))
+ elif res == errno.ENODATA:
+ # this happens when there is no data after wakeup
+ # because of hmi data refresh period longer than
+ # PLC common ticktime
+ pass
+ else:
+ # this happens when finishing
+ break
+
+def AddPathToSVGHMIServers(path, factory, *args, **kwargs):
+ for k,v in svghmi_servers.iteritems():
+ svghmi_root, svghmi_listener, path_list = v
+ svghmi_root.putChild(path, factory(*args, **kwargs))
+
+# Called by PLCObject at start
+def _runtime_00_svghmi_start():
+ global svghmi_send_thread
+
+ # start a thread that call the C part of SVGHMI
+ svghmi_send_thread = Thread(target=SendThreadProc, name="SVGHMI Send")
+ svghmi_send_thread.start()
+
+
+# Called by PLCObject at stop
+def _runtime_00_svghmi_stop():
+ global svghmi_send_thread, svghmi_session
+
+ svghmi_session_manager.close_all()
+
+ # plc cleanup calls svghmi_(locstring)_cleanup and unlocks send thread
+ svghmi_send_thread.join()
+ svghmi_send_thread = None
+
+
+class NoCacheFile(File):
+ def render_GET(self, request):
+ request.setHeader(b"Cache-Control", b"no-cache, no-store")
+ return File.render_GET(self, request)
+ render_HEAD = render_GET
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/ui.py Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,700 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# This file is part of Beremiz
+# Copyright (C) 2021: Edouard TISSERANT
+#
+# See COPYING file for copyrights details.
+
+from __future__ import absolute_import
+import os
+import hashlib
+import weakref
+import re
+from threading import Thread, Lock
+from functools import reduce
+from itertools import izip
+from operator import or_
+from tempfile import NamedTemporaryFile
+
+import wx
+from wx.lib.scrolledpanel import ScrolledPanel
+
+from lxml import etree
+from lxml.etree import XSLTApplyError
+from XSLTransform import XSLTransform
+
+import util.paths as paths
+from IDEFrame import EncodeFileSystemPath, DecodeFileSystemPath
+from docutil import get_inkscape_path
+
+from util.ProcessLogger import ProcessLogger
+
+ScriptDirectory = paths.AbsDir(__file__)
+
+HMITreeDndMagicWord = "text/beremiz-hmitree"
+
+class HMITreeSelector(wx.TreeCtrl):
+ def __init__(self, parent):
+
+ wx.TreeCtrl.__init__(self, parent, style=(
+ wx.TR_MULTIPLE |
+ wx.TR_HAS_BUTTONS |
+ wx.SUNKEN_BORDER |
+ wx.TR_LINES_AT_ROOT))
+
+ self.ordered_items = []
+ self.parent = parent
+
+ self.MakeTree()
+
+ self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnTreeNodeSelection)
+ self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnTreeBeginDrag)
+
+ def _recurseTree(self, current_hmitree_root, current_tc_root):
+ for c in current_hmitree_root.children:
+ if hasattr(c, "children"):
+ display_name = ('{} (class={})'.format(c.name, c.hmiclass)) \
+ if c.hmiclass is not None else c.name
+ tc_child = self.AppendItem(current_tc_root, display_name)
+ self.SetPyData(tc_child, c)
+
+ self._recurseTree(c,tc_child)
+ else:
+ display_name = '{} {}'.format(c.nodetype[4:], c.name)
+ tc_child = self.AppendItem(current_tc_root, display_name)
+ self.SetPyData(tc_child, c)
+
+ def OnTreeNodeSelection(self, event):
+ items = self.GetSelections()
+ items_pydata = [self.GetPyData(item) for item in items]
+
+ # append new items to ordered item list
+ for item_pydata in items_pydata:
+ if item_pydata not in self.ordered_items:
+ self.ordered_items.append(item_pydata)
+
+ # filter out vanished items
+ self.ordered_items = [
+ item_pydata
+ for item_pydata in self.ordered_items
+ if item_pydata in items_pydata]
+
+ self.parent.OnHMITreeNodeSelection(self.ordered_items)
+
+ def OnTreeBeginDrag(self, event):
+ """
+ Called when a drag is started in tree
+ @param event: wx.TreeEvent
+ """
+ if self.ordered_items:
+ # Just send a recognizable mime-type, drop destination
+ # will get python data from parent
+ data = wx.CustomDataObject(HMITreeDndMagicWord)
+ dragSource = wx.DropSource(self)
+ dragSource.SetData(data)
+ dragSource.DoDragDrop()
+
+ def MakeTree(self, hmi_tree_root=None):
+
+ self.Freeze()
+
+ self.root = None
+ self.DeleteAllItems()
+
+ root_display_name = _("Please build to see HMI Tree") \
+ if hmi_tree_root is None else "HMI"
+ self.root = self.AddRoot(root_display_name)
+ self.SetPyData(self.root, hmi_tree_root)
+
+ if hmi_tree_root is not None:
+ self._recurseTree(hmi_tree_root, self.root)
+ self.Expand(self.root)
+
+ self.Thaw()
+
+class WidgetPicker(wx.TreeCtrl):
+ def __init__(self, parent, initialdir=None):
+ wx.TreeCtrl.__init__(self, parent, style=(
+ wx.TR_MULTIPLE |
+ wx.TR_HAS_BUTTONS |
+ wx.SUNKEN_BORDER |
+ wx.TR_LINES_AT_ROOT))
+
+ self.MakeTree(initialdir)
+
+ def _recurseTree(self, current_dir, current_tc_root, dirlist):
+ """
+ recurse through subdirectories, but creates tree nodes
+ only when (sub)directory conbtains .svg file
+ """
+ res = []
+ for f in sorted(os.listdir(current_dir)):
+ p = os.path.join(current_dir,f)
+ if os.path.isdir(p):
+
+ r = self._recurseTree(p, current_tc_root, dirlist + [f])
+ if len(r) > 0 :
+ res = r
+ dirlist = []
+ current_tc_root = res.pop()
+
+ elif os.path.splitext(f)[1].upper() == ".SVG":
+ if len(dirlist) > 0 :
+ res = []
+ for d in dirlist:
+ current_tc_root = self.AppendItem(current_tc_root, d)
+ res.append(current_tc_root)
+ self.SetPyData(current_tc_root, None)
+ dirlist = []
+ res.pop()
+ tc_child = self.AppendItem(current_tc_root, f)
+ self.SetPyData(tc_child, p)
+ return res
+
+ def MakeTree(self, lib_dir = None):
+
+ self.Freeze()
+
+ self.root = None
+ self.DeleteAllItems()
+
+ root_display_name = _("Please select widget library directory") \
+ if lib_dir is None else os.path.basename(lib_dir)
+ self.root = self.AddRoot(root_display_name)
+ self.SetPyData(self.root, None)
+
+ if lib_dir is not None and os.path.exists(lib_dir):
+ self._recurseTree(lib_dir, self.root, [])
+ self.Expand(self.root)
+
+ self.Thaw()
+
+class PathDropTarget(wx.DropTarget):
+
+ def __init__(self, parent):
+ data = wx.CustomDataObject(HMITreeDndMagicWord)
+ wx.DropTarget.__init__(self, data)
+ self.ParentWindow = parent
+
+ def OnDrop(self, x, y):
+ self.ParentWindow.OnHMITreeDnD()
+ return True
+
+class ParamEditor(wx.Panel):
+ def __init__(self, parent, paramdesc):
+ wx.Panel.__init__(self, parent.main_panel)
+ label = paramdesc.get("name")+ ": " + paramdesc.get("accepts")
+ if paramdesc.text:
+ label += "\n\"" + paramdesc.text + "\""
+ self.desc = wx.StaticText(self, label=label)
+ self.valid_bmp = wx.ArtProvider.GetBitmap(wx.ART_TICK_MARK, wx.ART_TOOLBAR, (16,16))
+ self.invalid_bmp = wx.ArtProvider.GetBitmap(wx.ART_CROSS_MARK, wx.ART_TOOLBAR, (16,16))
+ self.validity_sbmp = wx.StaticBitmap(self, -1, self.invalid_bmp)
+ self.edit = wx.TextCtrl(self)
+ self.edit_sizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0)
+ self.edit_sizer.AddGrowableCol(0)
+ self.edit_sizer.AddGrowableRow(0)
+ self.edit_sizer.Add(self.edit, flag=wx.GROW)
+ self.edit_sizer.Add(self.validity_sbmp, flag=wx.GROW)
+ self.main_sizer = wx.BoxSizer(wx.VERTICAL)
+ self.main_sizer.Add(self.desc, flag=wx.GROW)
+ self.main_sizer.Add(self.edit_sizer, flag=wx.GROW)
+ self.SetSizer(self.main_sizer)
+ self.main_sizer.Fit(self)
+
+ def GetValue(self):
+ return self.edit.GetValue()
+
+ def setValidity(self, validity):
+ if validity is not None:
+ bmp = self.valid_bmp if validity else self.invalid_bmp
+ self.validity_sbmp.SetBitmap(bmp)
+ self.validity_sbmp.Show(True)
+ else :
+ self.validity_sbmp.Show(False)
+
+models = { typename: re.compile(regex) for typename, regex in [
+ ("string", r".*"),
+ ("int", r"^-?([1-9][0-9]*|0)$"),
+ ("real", r"^-?([1-9][0-9]*|0)(\.[0-9]+)?$")]}
+
+class ArgEditor(ParamEditor):
+ def __init__(self, parent, argdesc, prefillargdesc):
+ ParamEditor.__init__(self, parent, argdesc)
+ self.ParentObj = parent
+ self.argdesc = argdesc
+ self.Bind(wx.EVT_TEXT, self.OnArgChanged, self.edit)
+ prefill = "" if prefillargdesc is None else prefillargdesc.get("value")
+ self.edit.SetValue(prefill)
+ # TODO add a button to add more ArgEditror instance
+ # when ordinality is multiple
+
+ def OnArgChanged(self, event):
+ txt = self.edit.GetValue()
+ accepts = self.argdesc.get("accepts").split(',')
+ self.setValidity(
+ reduce(or_,
+ map(lambda typename:
+ models[typename].match(txt) is not None,
+ accepts),
+ False)
+ if accepts and txt else None)
+ self.ParentObj.RegenSVGLater()
+ event.Skip()
+
+class PathEditor(ParamEditor):
+ def __init__(self, parent, pathdesc):
+ ParamEditor.__init__(self, parent, pathdesc)
+ self.ParentObj = parent
+ self.pathdesc = pathdesc
+ DropTarget = PathDropTarget(self)
+ self.edit.SetDropTarget(DropTarget)
+ self.edit.SetHint(_("Drag'n'drop HMI variable here"))
+ self.Bind(wx.EVT_TEXT, self.OnPathChanged, self.edit)
+
+ def OnHMITreeDnD(self):
+ self.ParentObj.GotPathDnDOn(self)
+
+ def SetPath(self, hmitree_node):
+ self.edit.ChangeValue(hmitree_node.hmi_path())
+ self.setValidity(
+ hmitree_node.nodetype in self.pathdesc.get("accepts").split(","))
+
+ def OnPathChanged(self, event):
+ # TODO : find corresponding hmitre node and type to update validity
+ # Lazy way : hide validity
+ self.setValidity(None)
+ self.ParentObj.RegenSVGLater()
+ event.Skip()
+
+def KeepDoubleNewLines(txt):
+ return "\n\n".join(map(
+ lambda s:re.sub(r'\s+',' ',s),
+ txt.split("\n\n")))
+
+_conf_key = "SVGHMIWidgetLib"
+_preview_height = 200
+_preview_margin = 5
+class WidgetLibBrowser(wx.SplitterWindow):
+ def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition,
+ size=wx.DefaultSize):
+
+ wx.SplitterWindow.__init__(self, parent,
+ style=wx.SUNKEN_BORDER | wx.SP_3D)
+
+ self.bmp = None
+ self.msg = None
+ self.hmitree_nodes = []
+ self.selected_SVG = None
+
+ self.Config = wx.ConfigBase.Get()
+ self.libdir = self.RecallLibDir()
+ if self.libdir is None:
+ self.libdir = os.path.join(ScriptDirectory, "widgetlib")
+
+ self.picker_desc_splitter = wx.SplitterWindow(self, style=wx.SUNKEN_BORDER | wx.SP_3D)
+
+ self.picker_panel = wx.Panel(self.picker_desc_splitter)
+ self.picker_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
+ self.picker_sizer.AddGrowableCol(0)
+ self.picker_sizer.AddGrowableRow(1)
+
+ self.widgetpicker = WidgetPicker(self.picker_panel, self.libdir)
+ self.libbutton = wx.Button(self.picker_panel, -1, _("Select SVG widget library"))
+
+ self.picker_sizer.Add(self.libbutton, flag=wx.GROW)
+ self.picker_sizer.Add(self.widgetpicker, flag=wx.GROW)
+ self.picker_sizer.Layout()
+ self.picker_panel.SetAutoLayout(True)
+ self.picker_panel.SetSizer(self.picker_sizer)
+
+ self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnWidgetSelection, self.widgetpicker)
+ self.Bind(wx.EVT_BUTTON, self.OnSelectLibDir, self.libbutton)
+
+
+
+ self.main_panel = ScrolledPanel(parent=self,
+ name='MiscellaneousPanel',
+ style=wx.TAB_TRAVERSAL)
+
+ self.main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=0)
+ self.main_sizer.AddGrowableCol(0)
+ self.main_sizer.AddGrowableRow(2)
+
+ self.staticmsg = wx.StaticText(self, label = _("Drag selected Widget from here to Inkscape"))
+ self.preview = wx.Panel(self.main_panel, size=(-1, _preview_height + _preview_margin*2))
+ self.signature_sizer = wx.BoxSizer(wx.VERTICAL)
+ self.args_box = wx.StaticBox(self.main_panel, -1,
+ _("Widget's arguments"),
+ style = wx.ALIGN_CENTRE_HORIZONTAL)
+ self.args_sizer = wx.StaticBoxSizer(self.args_box, wx.VERTICAL)
+ self.paths_box = wx.StaticBox(self.main_panel, -1,
+ _("Widget's variables"),
+ style = wx.ALIGN_CENTRE_HORIZONTAL)
+ self.paths_sizer = wx.StaticBoxSizer(self.paths_box, wx.VERTICAL)
+ self.signature_sizer.Add(self.args_sizer, flag=wx.GROW)
+ self.signature_sizer.AddSpacer(5)
+ self.signature_sizer.Add(self.paths_sizer, flag=wx.GROW)
+ self.main_sizer.Add(self.staticmsg, flag=wx.GROW)
+ self.main_sizer.Add(self.preview, flag=wx.GROW)
+ self.main_sizer.Add(self.signature_sizer, flag=wx.GROW)
+ self.main_sizer.Layout()
+ self.main_panel.SetAutoLayout(True)
+ self.main_panel.SetSizer(self.main_sizer)
+ self.main_sizer.Fit(self.main_panel)
+ self.preview.Bind(wx.EVT_PAINT, self.OnPaint)
+ self.preview.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
+
+ self.desc = wx.TextCtrl(self.picker_desc_splitter, size=wx.Size(-1, 160),
+ style=wx.TE_READONLY | wx.TE_MULTILINE)
+
+ self.picker_desc_splitter.SplitHorizontally(self.picker_panel, self.desc, 400)
+ self.SplitVertically(self.main_panel, self.picker_desc_splitter, 300)
+
+ self.tempf = None
+
+ self.RegenSVGThread = None
+ self.RegenSVGLock = Lock()
+ self.RegenSVGTimer = wx.Timer(self, -1)
+ self.RegenSVGParams = None
+ self.Bind(wx.EVT_TIMER,
+ self.RegenSVG,
+ self.RegenSVGTimer)
+
+ self.args_editors = []
+ self.paths_editors = []
+
+ def SetMessage(self, msg):
+ self.staticmsg.SetLabel(msg)
+ self.main_sizer.Layout()
+
+ def ResetSignature(self):
+ self.args_sizer.Clear()
+ for editor in self.args_editors:
+ editor.Destroy()
+ self.args_editors = []
+
+ self.paths_sizer.Clear()
+ for editor in self.paths_editors:
+ editor.Destroy()
+ self.paths_editors = []
+
+ def AddArgToSignature(self, arg, prefillarg):
+ new_editor = ArgEditor(self, arg, prefillarg)
+ self.args_editors.append(new_editor)
+ self.args_sizer.Add(new_editor, flag=wx.GROW)
+
+ def AddPathToSignature(self, path):
+ new_editor = PathEditor(self, path)
+ self.paths_editors.append(new_editor)
+ self.paths_sizer.Add(new_editor, flag=wx.GROW)
+
+ def GotPathDnDOn(self, target_editor):
+ dndindex = self.paths_editors.index(target_editor)
+
+ for hmitree_node,editor in zip(self.hmitree_nodes,
+ self.paths_editors[dndindex:]):
+ editor.SetPath(hmitree_node)
+
+ self.RegenSVGNow()
+
+ def RecallLibDir(self):
+ conf = self.Config.Read(_conf_key)
+ if len(conf) == 0:
+ return None
+ else:
+ return DecodeFileSystemPath(conf)
+
+ def RememberLibDir(self, path):
+ self.Config.Write(_conf_key,
+ EncodeFileSystemPath(path))
+ self.Config.Flush()
+
+ def DrawPreview(self):
+ """
+ Refresh preview panel
+ """
+ # Init preview panel paint device context
+ dc = wx.PaintDC(self.preview)
+ dc.Clear()
+
+ if self.bmp:
+ # Get Preview panel size
+ sz = self.preview.GetClientSize()
+ w = self.bmp.GetWidth()
+ dc.DrawBitmap(self.bmp, (sz.width - w)/2, _preview_margin)
+
+
+
+ def OnSelectLibDir(self, event):
+ defaultpath = self.RecallLibDir()
+ if defaultpath == None:
+ defaultpath = os.path.expanduser("~")
+
+ dialog = wx.DirDialog(self, _("Choose a widget library"), defaultpath,
+ style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
+
+ if dialog.ShowModal() == wx.ID_OK:
+ self.libdir = dialog.GetPath()
+ self.RememberLibDir(self.libdir)
+ self.widgetpicker.MakeTree(self.libdir)
+
+ dialog.Destroy()
+
+ def OnPaint(self, event):
+ """
+ Called when Preview panel needs to be redrawn
+ @param event: wx.PaintEvent
+ """
+ self.DrawPreview()
+ event.Skip()
+
+ def GenThumbnail(self, svgpath, thumbpath):
+ inkpath = get_inkscape_path()
+ if inkpath is None:
+ self.msg = _("Inkscape is not installed.")
+ return False
+ # TODO: spawn a thread, to decouple thumbnail gen
+ status, result, _err_result = ProcessLogger(
+ None,
+ '"' + inkpath + '" "' + svgpath + '" -e "' + thumbpath +
+ '" -D -h ' + str(_preview_height)).spin()
+ if status != 0:
+ self.msg = _("Inkscape couldn't generate thumbnail.")
+ return False
+ return True
+
+ def OnWidgetSelection(self, event):
+ """
+ Called when tree item is selected
+ @param event: wx.TreeEvent
+ """
+ item_pydata = self.widgetpicker.GetPyData(event.GetItem())
+ if item_pydata is not None:
+ svgpath = item_pydata
+ dname = os.path.dirname(svgpath)
+ fname = os.path.basename(svgpath)
+ hasher = hashlib.new('md5')
+ with open(svgpath, 'rb') as afile:
+ while True:
+ buf = afile.read(65536)
+ if len(buf) > 0:
+ hasher.update(buf)
+ else:
+ break
+ digest = hasher.hexdigest()
+ thumbfname = os.path.splitext(fname)[0]+"_"+digest+".png"
+ thumbdir = os.path.join(dname, ".svghmithumbs")
+ thumbpath = os.path.join(thumbdir, thumbfname)
+
+ have_thumb = os.path.exists(thumbpath)
+
+ try:
+ if not have_thumb:
+ if not os.path.exists(thumbdir):
+ os.mkdir(thumbdir)
+ have_thumb = self.GenThumbnail(svgpath, thumbpath)
+
+ self.bmp = wx.Bitmap(thumbpath) if have_thumb else None
+
+ self.selected_SVG = svgpath if have_thumb else None
+
+ self.AnalyseWidgetAndUpdateUI(fname)
+
+ self.SetMessage(self.msg)
+
+ except IOError:
+ self.msg = _("Widget library must be writable")
+
+ self.Refresh()
+ event.Skip()
+
+ def OnHMITreeNodeSelection(self, hmitree_nodes):
+ self.hmitree_nodes = hmitree_nodes
+
+ def OnLeftDown(self, evt):
+ if self.tempf is not None:
+ filename = self.tempf.name
+ data = wx.FileDataObject()
+ data.AddFile(filename)
+ dropSource = wx.DropSource(self)
+ dropSource.SetData(data)
+ dropSource.DoDragDrop(wx.Drag_AllowMove)
+
+ def RegenSVGLater(self, when=1):
+ self.SetMessage(_("SVG generation pending"))
+ self.RegenSVGTimer.Start(milliseconds=when*1000, oneShot=True)
+
+ def RegenSVGNow(self):
+ self.RegenSVGLater(when=0)
+
+ def RegenSVG(self, event):
+ self.SetMessage(_("Generating SVG..."))
+ args = [arged.GetValue() for arged in self.args_editors]
+ while args and not args[-1]: args.pop(-1)
+ paths = [pathed.GetValue() for pathed in self.paths_editors]
+ while paths and not paths[-1]: paths.pop(-1)
+ if self.RegenSVGLock.acquire(True):
+ self.RegenSVGParams = (args, paths)
+ if self.RegenSVGThread is None:
+ self.RegenSVGThread = \
+ Thread(target=self.RegenSVGProc,
+ name="RegenSVGThread").start()
+ self.RegenSVGLock.release()
+ event.Skip()
+
+ def RegenSVGProc(self):
+ self.RegenSVGLock.acquire(True)
+
+ newparams = self.RegenSVGParams
+ self.RegenSVGParams = None
+
+ while newparams is not None:
+ self.RegenSVGLock.release()
+
+ res = self.GenDnDSVG(newparams)
+
+ self.RegenSVGLock.acquire(True)
+
+ newparams = self.RegenSVGParams
+ self.RegenSVGParams = None
+
+ self.RegenSVGThread = None
+
+ self.RegenSVGLock.release()
+
+ wx.CallAfter(self.DoneRegenSVG)
+
+ def DoneRegenSVG(self):
+ self.SetMessage(self.msg if self.msg else _("SVG ready for drag'n'drop"))
+
+ def AnalyseWidgetAndUpdateUI(self, fname):
+ self.msg = ""
+ self.ResetSignature()
+
+ try:
+ if self.selected_SVG is None:
+ raise Exception(_("No widget selected"))
+
+ transform = XSLTransform(
+ os.path.join(ScriptDirectory, "analyse_widget.xslt"),[])
+
+ svgdom = etree.parse(self.selected_SVG)
+
+ signature = transform.transform(svgdom)
+
+ for entry in transform.get_error_log():
+ self.msg += "XSLT: " + entry.message + "\n"
+
+ except Exception as e:
+ self.msg += str(e)
+ return
+ except XSLTApplyError as e:
+ self.msg += "Widget " + fname + " analysis error: " + e.message
+ return
+
+ self.msg += "Widget " + fname + ": OK"
+
+ widgets = signature.getroot()
+ widget = widgets.find("widget")
+ defs = widget.find("defs")
+ # Keep double newlines (to mark paragraphs)
+ widget_desc = widget.find("desc")
+ self.desc.SetValue(
+ fname + ":\n\n" + (
+ _("No description given") if widget_desc is None else
+ KeepDoubleNewLines(widget_desc.text)
+ ) + "\n\n" +
+ defs.find("type").text + " Widget: "+defs.find("shortdesc").text+"\n\n" +
+ KeepDoubleNewLines(defs.find("longdesc").text))
+ prefillargs = widget.findall("arg")
+ args = defs.findall("arg")
+ # extend args description in prefilled args in longer
+ # (case of variable list of args)
+ if len(prefillargs) < len(args):
+ prefillargs += [None]*(len(args)-len(prefillargs))
+ if args and len(prefillargs) > len(args):
+ # TODO: check ordinality of last arg
+ # TODO: check that only last arg has multiple ordinality
+ args += [args[-1]]*(len(prefillargs)-len(args))
+ self.args_box.Show(len(args)!=0)
+ for arg, prefillarg in izip(args,prefillargs):
+ self.AddArgToSignature(arg, prefillarg)
+ paths = defs.findall("path")
+ self.paths_box.Show(len(paths)!=0)
+ for path in paths:
+ self.AddPathToSignature(path)
+
+ for widget in widgets:
+ widget_type = widget.get("type")
+ for path in widget.iterchildren("path"):
+ path_value = path.get("value")
+ path_accepts = map(
+ str.strip, path.get("accepts", '')[1:-1].split(','))
+
+ self.main_panel.SetupScrolling(scroll_x=False)
+
+ def GetWidgetParams(self, _context):
+ args,paths = self.GenDnDSVGParams
+ root = etree.Element("params")
+ for arg in args:
+ etree.SubElement(root, "arg", value=arg)
+ for path in paths:
+ etree.SubElement(root, "path", value=path)
+ return root
+
+
+ def GenDnDSVG(self, newparams):
+ self.msg = ""
+
+ self.GenDnDSVGParams = newparams
+
+ if self.tempf is not None:
+ os.unlink(self.tempf.name)
+ self.tempf = None
+
+ try:
+ if self.selected_SVG is None:
+ raise Exception(_("No widget selected"))
+
+ transform = XSLTransform(
+ os.path.join(ScriptDirectory, "gen_dnd_widget_svg.xslt"),
+ [("GetWidgetParams", self.GetWidgetParams)])
+
+ svgdom = etree.parse(self.selected_SVG)
+
+ result = transform.transform(svgdom)
+
+ for entry in transform.get_error_log():
+ self.msg += "XSLT: " + entry.message + "\n"
+
+ self.tempf = NamedTemporaryFile(suffix='.svg', delete=False)
+ result.write(self.tempf, encoding="utf-8")
+ self.tempf.close()
+
+ except Exception as e:
+ self.msg += str(e)
+ except XSLTApplyError as e:
+ self.msg += "Widget transform error: " + e.message
+
+ def __del__(self):
+ if self.tempf is not None:
+ os.unlink(self.tempf.name)
+
+class SVGHMI_UI(wx.SplitterWindow):
+
+ def __init__(self, parent, register_for_HMI_tree_updates):
+ wx.SplitterWindow.__init__(self, parent,
+ style=wx.SUNKEN_BORDER | wx.SP_3D)
+
+ self.SelectionTree = HMITreeSelector(self)
+ self.Staging = WidgetLibBrowser(self)
+ self.SplitVertically(self.SelectionTree, self.Staging, 300)
+ register_for_HMI_tree_updates(weakref.ref(self))
+
+ def HMITreeUpdate(self, hmi_tree_root):
+ self.SelectionTree.MakeTree(hmi_tree_root)
+
+ def OnHMITreeNodeSelection(self, hmitree_nodes):
+ self.Staging.OnHMITreeNodeSelection(hmitree_nodes)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_animate.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,46 @@
+// widget_animate.ysl2
+
+widget_class("Animate") {
+ ||
+ frequency = 5;
+ speed = 0;
+ start = false;
+ widget_center = undefined;
+
+ dispatch(value) {
+ this.speed = value / 5;
+
+ //reconfigure animation
+ this.request_animate();
+ }
+
+ animate(){
+ // change animation properties
+ for(let child of this.element.children){
+ if(child.nodeName.startsWith("animate")){
+ if(this.speed != 0 && !this.start){
+ this.start = true;
+ this.element.beginElement();
+ }
+
+ if(this.speed > 0){
+ child.setAttribute("dur", this.speed+"s");
+ }
+ else if(this.speed < 0){
+ child.setAttribute("dur", (-1)*this.speed+"s");
+ }
+ else{
+ this.start = false;
+ this.element.endElement();
+ }
+ }
+ }
+ }
+
+ init() {
+ let widget_pos = this.element.getBBox();
+ this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)];
+ }
+ ||
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_animaterotation.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,58 @@
+// widget_animaterotation.ysl2
+
+widget_desc("AnimateRotation") {
+ longdesc
+ ||
+ AnimateRotation - DEPRECATED, do not use.
+ Doesn't follow WYSIWYG principle, and forces user to add animateTransform tag in SVG (using inkscape XML editor for exemple)
+ ||
+
+ shortdesc > AnimateRotation - DEPRECATED
+
+ path name="speed" accepts="HMI_INT,HMI_REAL" > speed
+
+}
+
+widget_class("AnimateRotation") {
+ ||
+ frequency = 5;
+ speed = 0;
+ widget_center = undefined;
+
+ dispatch(value) {
+ this.speed = value / 5;
+
+ //reconfigure animation
+ this.request_animate();
+ }
+
+ animate(){
+ // change animation properties
+ // TODO : rewrite with proper es6
+ for(let child of this.element.children){
+ if(child.nodeName == "animateTransform"){
+ if(this.speed > 0){
+ child.setAttribute("dur", this.speed+"s");
+ child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+ child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]);
+ }
+ else if(this.speed < 0){
+ child.setAttribute("dur", (-1)*this.speed+"s");
+ child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]);
+ child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+ }
+ else{
+ child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+ child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]);
+ }
+ }
+ }
+ }
+
+ init() {
+ let widget_pos = this.element.getBBox();
+ this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)];
+ }
+ ||
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_back.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,25 @@
+// widget_back.ysl2
+
+widget_desc("Back") {
+ longdesc
+ ||
+ Back widget brings focus back to previous page in history when clicked.
+ ||
+
+ shortdesc > Jump to previous page
+}
+
+// TODO: use es6
+widget_class("Back")
+ ||
+ on_click(evt) {
+ if(jump_history.length > 1){
+ jump_history.pop();
+ let [page_name, index] = jump_history.pop();
+ switch_page(page_name, index);
+ }
+ }
+ init() {
+ this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)");
+ }
+ ||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_button.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,172 @@
+// widget_button.ysl2
+
+widget_desc("Button") {
+ longdesc
+ ||
+ Button widget takes one boolean variable path, and reflect current true
+ or false value by showing "active" or "inactive" labeled element
+ respectively. Pressing and releasing button changes variable to true and
+ false respectively. Potential inconsistency caused by quick consecutive
+ presses on the button is mitigated by using a state machine that wait for
+ previous state change to be reflected on variable before applying next one.
+ ||
+
+ shortdesc > Push button reflecting consistently given boolean variable
+
+ path name="value" accepts="HMI_BOOL" > Boolean variable
+
+}
+
+// Finite state machine
+decl fsm(name);
+decl state(name);
+decl on_mouse(position);
+decl on_dispatch(value);
+decl jump(state);
+decl show(eltname);
+decl hmi_value(value);
+
+gen_index_xhtml {
+
+// State machine to drive HMI_BOOL on a potentially laggy connection
+const "_button_fsm" fsm {
+ state "init" {
+ on_dispatch "false" jump "released";
+ on_dispatch "true" jump "pressed";
+ }
+
+ state "pressing" {
+ // show "waitactive";
+ hmi_value "true";
+ on_dispatch "true" jump "pressed";
+ on_mouse "up" jump "shortpress";
+ }
+ state "pressed" {
+ show "active";
+ on_mouse "up" jump "releasing";
+ on_dispatch "false" jump "released";
+ }
+ state "shortpress" {
+ on_dispatch "true" jump "releasing";
+ on_mouse "down" jump "pressing";
+ }
+
+ state "releasing" {
+ // show "waitinactive";
+ hmi_value "false";
+ on_dispatch "false" jump "released";
+ on_mouse "down" jump "shortrelease";
+ }
+ state "released" {
+ show "inactive";
+ on_mouse "down" jump "pressing";
+ on_dispatch "true" jump "pressed";
+ }
+ state "shortrelease" {
+ on_dispatch "false" jump "pressing";
+ on_mouse "up" jump "releasing";
+ }
+}
+
+template "fsm", mode="dispatch_transition" {
+ | switch (this.state) {
+ apply "state", mode="dispatch_transition";
+ | }
+}
+template "state", mode="dispatch_transition" {
+ | case "«@name»":
+ apply "on-dispatch";
+ | break;
+}
+template "on-dispatch" {
+ | if(value == «@value») {
+ apply "jump", mode="transition";
+ | }
+}
+
+template "fsm", mode="mouse_transition" {
+ param "position";
+ | switch (this.state) {
+ apply "state", mode="mouse_transition" with "position", "$position";
+ | }
+}
+template "state", mode="mouse_transition" {
+ param "position";
+ | case "«@name»":
+ apply "on-mouse[@position = $position]";
+ | break;
+}
+template "on-mouse" {
+ // up or down state is already assumed because apply statement filters it
+ apply "jump", mode="transition";
+}
+
+template "jump", mode="transition" {
+ | this.state = "«@state»";
+ | this.«@state»_action();
+}
+
+template "fsm", mode="actions" {
+ apply "state", mode="actions";
+}
+template "state", mode="actions" {
+ | «@name»_action(){
+ //| console.log("Entering state «@name»");
+ apply "*", mode="actions";
+ | }
+}
+template "show", mode="actions" {
+ | this.display = "«@eltname»";
+ | this.request_animate();
+}
+template "hmi-value", mode="actions" {
+ | this.apply_hmi_value(0, «@value»);
+}
+
+}
+
+widget_class("Button"){
+ const "fsm","exsl:node-set($_button_fsm)";
+ | frequency = 5;
+
+ | display = "inactive";
+ | state = "init";
+
+ | dispatch(value) {
+ // | console.log("dispatch"+value);
+ apply "$fsm", mode="dispatch_transition";
+ | }
+
+ | onmouseup(evt) {
+ | svg_root.removeEventListener("pointerup", this.bound_onmouseup, true);
+ // | console.log("onmouseup");
+ apply "$fsm", mode="mouse_transition" with "position", "'up'";
+ | }
+ | onmousedown(evt) {
+ | svg_root.addEventListener("pointerup", this.bound_onmouseup, true);
+ // | console.log("onmousedown");
+ apply "$fsm", mode="mouse_transition" with "position", "'down'";
+ | }
+
+ apply "$fsm", mode="actions";
+
+ | animate(){
+ | if (this.active_elt && this.inactive_elt) {
+ foreach "str:split('active inactive')" {
+ | if(this.display == "«.»")
+ | this.«.»_elt.style.display = "";
+ | else
+ | this.«.»_elt.style.display = "none";
+ }
+ | }
+ | }
+
+ | init() {
+ | this.bound_onmouseup = this.onmouseup.bind(this);
+ | this.element.addEventListener("pointerdown", this.onmousedown.bind(this));
+ | }
+}
+
+widget_defs("Button") {
+ optional_labels("active inactive");
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_circularbar.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,78 @@
+// widget_circularbar.ysl2
+
+widget_desc("CircularBar") {
+ longdesc
+ ||
+ CircularBar widget changes the end angle of a "path" labeled arc according
+ to value of the single accepted variable.
+
+ If "min" a "max" labeled texts are provided, then they are used as
+ respective minimum and maximum value. Otherwise, value is expected to be
+ in between 0 and 100.
+
+ If "value" labeled text is found, then its content is replaced by value.
+ ||
+
+ shortdesc > Change end angle of Inkscape's arc
+
+ // TODO: add min/max arguments
+ // TODO: add printf-like format
+
+ path name="value" accepts="HMI_INT,HMI_REAL" > Value to display
+
+}
+widget_class("CircularBar") {
+ ||
+ frequency = 10;
+ range = undefined;
+
+ dispatch(value) {
+ this.display_val = value;
+ this.request_animate();
+ }
+
+ animate(){
+ if(this.value_elt)
+ this.value_elt.textContent = String(this.display_val);
+ let [min,max,start,end] = this.range;
+ let [cx,cy] = this.center;
+ let [rx,ry] = this.proportions;
+ let tip = start + (end-start)*Number(this.display_val)/(max-min);
+ let size = 0;
+
+ if (tip-start > Math.PI)
+ size = 1;
+ else
+ size = 0;
+
+ this.path_elt.setAttribute('d', "M "+(cx+rx*Math.cos(start))+","+(cy+ry*Math.sin(start))+
+ " A "+rx+","+ry+
+ " 0 "+size+
+ " 1 "+(cx+rx*Math.cos(tip))+","+(cy+ry*Math.sin(tip)));
+ }
+
+ init() {
+ let [start, end, cx, cy, rx, ry] = ["start", "end", "cx", "cy", "rx", "ry"].
+ map(tag=>Number(this.path_elt.getAttribute('sodipodi:'+tag)))
+
+ if (ry == 0)
+ ry = rx;
+
+ if (start > end)
+ end = end + 2*Math.PI;
+
+ let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt?
+ Number(elt.textContent) :
+ this.args.length >= i+1 ? this.args[i] : def);
+
+ this.range = [min, max, start, end];
+ this.center = [cx, cy];
+ this.proportions = [rx, ry];
+ }
+ ||
+}
+
+widget_defs("CircularBar") {
+ labels("path");
+ optional_labels("value min max");
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_circularslider.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,264 @@
+// widget_circuralslider.ysl2
+
+widget_desc("CircularSlider") {
+ longdesc
+ ||
+ CircularSlider - DEPRECATED, to be replaced by PathSlider
+ This widget moves "handle" labeled group along "range" labeled
+ arc, according to value of the single accepted variable.
+
+ If "min" a "max" labeled texts are provided, or if first and second
+ argument are given, then they are used as respective minimum and maximum
+ value. Otherwise, value is expected to be in between 0 and 100.
+
+ If "value" labeled text is found, then its content is replaced by value.
+ During drag, "setpoint" labeled group is moved to position defined by user
+ while "handle" reflects current value from variable.
+ ||
+
+ shortdesc > CircularSlider - DEPRECATED
+
+ arg name="min" count="optional" accepts="int,real" > minimum value
+
+ arg name="min" count="optional" accepts="int,real" > maximum value
+
+ // TODO: add printf-like format
+
+ path name="value" accepts="HMI_INT,HMI_REAL" > Value to display
+
+}
+
+widget_class("CircularSlider")
+ ||
+ frequency = 5;
+ range = undefined;
+ circle = undefined;
+ handle_pos = undefined;
+ curr_value = 0;
+ drag = false;
+ enTimer = false;
+ last_drag = false;
+
+ dispatch(value) {
+ let [min,max,start,totallength] = this.range;
+ //save current value inside widget
+ this.curr_value = value;
+
+ //check if in range
+ if (this.curr_value > max){
+ this.curr_value = max;
+ this.apply_hmi_value(0, this.curr_value);
+ }
+ else if (this.curr_value < min){
+ this.curr_value = min;
+ this.apply_hmi_value(0, this.curr_value);
+ }
+
+ if(this.value_elt)
+ this.value_elt.textContent = String(value);
+
+ //don't update if draging and setpoint ghost doesn't exist
+ if(!this.drag || (this.setpoint_elt != undefined)){
+ this.update_DOM(value, this.handle_elt);
+ }
+ }
+
+ update_DOM(value, elt){
+ let [min,max,totalDistance] = this.range;
+ let length = Math.max(0,Math.min((totalDistance),(Number(value)-min)/(max-min)*(totalDistance)));
+ let tip = this.range_elt.getPointAtLength(length);
+ elt.setAttribute('transform',"translate("+(tip.x-this.handle_pos.x)+","+(tip.y-this.handle_pos.y)+")");
+
+ // show or hide ghost if exists
+ if(this.setpoint_elt != undefined){
+ if(this.last_drag!= this.drag){
+ if(this.drag){
+ this.setpoint_elt.setAttribute("style", this.setpoint_style);
+ }else{
+ this.setpoint_elt.setAttribute("style", "display:none");
+ }
+ this.last_drag = this.drag;
+ }
+ }
+ }
+
+ on_release(evt) {
+ //unbind events
+ window.removeEventListener("touchmove", this.on_bound_drag, true);
+ window.removeEventListener("mousemove", this.on_bound_drag, true);
+
+ window.removeEventListener("mouseup", this.bound_on_release, true)
+ window.removeEventListener("touchend", this.bound_on_release, true);
+ window.removeEventListener("touchcancel", this.bound_on_release, true);
+
+ //reset drag flag
+ if(this.drag){
+ this.drag = false;
+ }
+
+ // get final position
+ this.update_position(evt);
+ }
+
+ on_drag(evt){
+ //ignore drag event for X amount of time and if not selected
+ if(this.enTimer && this.drag){
+ this.update_position(evt);
+
+ //reset timer
+ this.enTimer = false;
+ setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100);
+ }
+ }
+
+ update_position(evt){
+ if(this.drag && this.enTimer){
+ var svg_dist = 0;
+
+ //calculate center of widget in html
+ // --TODO maybe it would be better to bind this part to window change size event ???
+ let [xdest,ydest,svgWidth,svgHeight] = page_desc[current_visible_page].bbox;
+ let [cX, cY,fiStart,fiEnd,minMax,x1,y1,width,height] = this.circle;
+ let htmlCirc = this.range_elt.getBoundingClientRect();
+ let cxHtml = ((htmlCirc.right-htmlCirc.left)/(width)*(cX-x1))+htmlCirc.left;
+ let cyHtml = ((htmlCirc.bottom-htmlCirc.top)/(height)*(cY-y1))+htmlCirc.top;
+
+
+ //get mouse coordinates
+ let mouseX = undefined;
+ let mouseY = undefined;
+ if (evt.type.startsWith("touch")){
+ mouseX = Math.ceil(evt.touches[0].clientX);
+ mouseY = Math.ceil(evt.touches[0].clientY);
+ }
+ else{
+ mouseX = evt.pageX;
+ mouseY = evt.pageY;
+ }
+
+ //calculate angle
+ let fi = Math.atan2(cyHtml-mouseY, mouseX-cxHtml);
+
+ // transform from 0 to 2PI
+ if (fi > 0){
+ fi = 2*Math.PI-fi;
+ }
+ else{
+ fi = -fi;
+ }
+
+ //offset it to 0
+ fi = fi - fiStart;
+ if (fi < 0){
+ fi = fi + 2*Math.PI;
+ }
+
+ //get handle distance from mouse position
+ if(fi<fiEnd){
+ this.curr_value=(fi)/(fiEnd)*(this.range[1]-this.range[0]);
+ }
+ else if(fiEnd<fi && fi<fiEnd+minMax){
+ this.curr_value = this.range[1];
+ }
+ else{
+ this.curr_value = this.range[0];
+ }
+
+ //apply value to hmi
+ this.apply_hmi_value(0, Math.ceil(this.curr_value));
+
+ //redraw handle
+ this.request_animate();
+
+ }
+
+ }
+
+ animate(){
+ // redraw handle on screen refresh
+ // check if setpoint(ghost) handle exsist otherwise update main handle
+ if(this.setpoint_elt != undefined){
+ this.update_DOM(this.curr_value, this.setpoint_elt);
+ }
+ else{
+ this.update_DOM(this.curr_value, this.handle_elt);
+ }
+ }
+
+ on_select(evt){
+ //enable drag flag and timer
+ this.drag = true;
+ this.enTimer = true;
+
+ //bind events
+ window.addEventListener("touchmove", this.on_bound_drag, true);
+ window.addEventListener("mousemove", this.on_bound_drag, true);
+
+ window.addEventListener("mouseup", this.bound_on_release, true);
+ window.addEventListener("touchend", this.bound_on_release, true);
+ window.addEventListener("touchcancel", this.bound_on_release, true);
+
+ //update postion on mouse press
+ this.update_position(evt);
+
+ //prevent next events
+ evt.stopPropagation();
+ }
+
+ init() {
+ //get min max
+ let min = this.min_elt ?
+ Number(this.min_elt.textContent) :
+ this.args.length >= 1 ? this.args[0] : 0;
+ let max = this.max_elt ?
+ Number(this.max_elt.textContent) :
+ this.args.length >= 2 ? this.args[1] : 100;
+
+ //fiStart ==> offset
+ let fiStart = Number(this.range_elt.getAttribute('sodipodi:start'));
+ let fiEnd = Number(this.range_elt.getAttribute('sodipodi:end'));
+ fiEnd = fiEnd - fiStart;
+
+ //fiEnd ==> size of angle
+ if (fiEnd < 0){
+ fiEnd = 2*Math.PI + fiEnd;
+ }
+
+ //min max barrier angle
+ let minMax = (2*Math.PI - fiEnd)/2;
+
+ //get parameters from svg
+ let cX = Number(this.range_elt.getAttribute('sodipodi:cx'));
+ let cY = Number(this.range_elt.getAttribute('sodipodi:cy'));
+ this.range_elt.style.strokeMiterlimit="0"; //eliminates some weird border around html object
+ this.range = [min, max,this.range_elt.getTotalLength()];
+ let cPos = this.range_elt.getBBox();
+ this.handle_pos = this.range_elt.getPointAtLength(0);
+ this.circle = [cX, cY,fiStart,fiEnd,minMax,cPos.x,cPos.y,cPos.width,cPos.height];
+
+ //bind functions
+ this.bound_on_select = this.on_select.bind(this);
+ this.bound_on_release = this.on_release.bind(this);
+ this.on_bound_drag = this.on_drag.bind(this);
+
+ this.handle_elt.addEventListener("mousedown", this.bound_on_select);
+ this.element.addEventListener("mousedown", this.bound_on_select);
+ this.element.addEventListener("touchstart", this.bound_on_select);
+ //touch recognised as page drag without next command
+ document.body.addEventListener("touchstart", function(e){}, false);
+
+ //save ghost style
+ //save ghost style
+ if(this.setpoint_elt != undefined){
+ this.setpoint_style = this.setpoint_elt.getAttribute("style");
+ this.setpoint_elt.setAttribute("style", "display:none");
+ }
+
+ }
+ ||
+
+widget_defs("CircularSlider") {
+ labels("handle range");
+ optional_labels("value min max setpoint");
+ |,
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_custom.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,62 @@
+// widget_custom.ysl2
+//
+// widget entierely defined from JS code in Inkscape description field
+
+// TODO
+
+// a preliminary implementation was initially attempted but disabled
+// code collected around before code refactoring
+
+
+/*const "mark" > =HMI=\n*/
+
+
+ /* TODO re-enable
+ ||
+ function evaluate_js_from_descriptions() {
+ var Page;
+ var Input;
+ var Display;
+ var res = [];
+ ||
+ const "midmark" > \n«$mark»
+ apply """//*[contains(child::svg:desc, $midmark) or \
+ starts-with(child::svg:desc, $mark)]""",2
+ mode="code_from_descs";
+ ||
+ return res;
+ }
+ ||
+ */
+
+ // template "*", mode="code_from_descs" {
+ // ||
+ // {
+ // var path, role, name, priv;
+ // var id = "«@id»";
+ // ||
+
+ // /* if label is used, use it as default name */
+ // if "@inkscape:label"
+ // |> name = "«@inkscape:label»";
+
+ // | /* -------------- */
+
+ // // this breaks indent, but fixing indent could break string literals
+ // value "substring-after(svg:desc, $mark)";
+ // // nobody reads generated code anyhow...
+
+ // ||
+
+ // /* -------------- */
+ // res.push({
+ // path:path,
+ // role:role,
+ // name:name,
+ // priv:priv
+ // })
+ // }
+ // ||
+ // }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_customhtml.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,43 @@
+// widget_customhtml.ysl2
+
+widget_desc("CustomHtml") {
+ longdesc
+ ||
+ CustomHtml widget allows insertion of HTML code in a svg:foreignObject.
+ Widget content is replaced by foreignObject. HTML code is obtained from
+ "code" labeled text content. HTML insert position and size is given with
+ "container" labeled element.
+ ||
+
+ shortdesc > Custom HTML insert
+
+ // TODO: support reload and POST based on variable content
+}
+
+widget_class("CustomHtml"){
+ ||
+ frequency = 5;
+ widget_size = undefined;
+
+ dispatch(value) {
+ this.request_animate();
+ }
+
+ animate(){
+ }
+
+ init() {
+ this.widget_size = this.container_elt.getBBox();
+ this.element.innerHTML ='<foreignObject x="'+
+ this.widget_size.x+'" y="'+this.widget_size.y+
+ '" width="'+this.widget_size.width+'" height="'+this.widget_size.height+'"> '+
+ this.code_elt.textContent+
+ ' </foreignObject>';
+ }
+ ||
+}
+
+
+widget_defs("CustomHtml") {
+ labels("container code");
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_display.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,310 @@
+// widget_display.ysl2
+
+widget_desc("Display") {
+ longdesc
+ ||
+ If Display widget is a svg:text element, then text content is replaced by
+ value of given variables, space separated.
+
+ Otherwise, if Display widget is a group containing a svg:text element
+ labelled "format", then text content is replaced by printf-like formated
+ string. In other words, if "format" labeled text is "%d %s %f", then 3
+ variables paths are expected : HMI_IN, HMI_STRING and HMI_REAL.
+
+ In case Display widget is a svg::text element, it is also possible to give
+ format string as first argument.
+ ||
+
+ shortdesc > Printf-like formated text display
+
+ arg name="format" count="optional" accepts="string" > printf-like format string when not given as svg:text
+
+ path name="fields" count="many" accepts="HMI_INT,HMI_REAL,HMI_STRING,HMI_BOOL" > variables to be displayed
+
+}
+
+
+widget_class("Display")
+ ||
+ frequency = 5;
+ dispatch(value, oldval, index) {
+ this.fields[index] = value;
+ this.request_animate();
+ }
+ ||
+
+widget_defs("Display") {
+ const "format" optional_labels("format");
+ const "has_format","string-length($format)>0";
+ value "$format";
+
+ if "$hmi_element[not(self::svg:text)] and not($has_format)"
+ error > Display Widget id="«$hmi_element/@id»" must be a svg::text element itself or a group containing a svg:text element labelled "format"
+
+ const "field_initializer" foreach "path" {
+ choose{
+ when "@type='HMI_STRING'" > ""
+ otherwise > 0
+ }
+ if "position()!=last()" > ,
+ }
+ | fields: [«$field_initializer»],
+ | animate: function(){
+ choose {
+ when "$has_format" {
+ | if(this.format_elt.getAttribute("lang")) {
+ | this.format = svg_text_to_multiline(this.format_elt);
+ | this.format_elt.removeAttribute("lang");
+ | }
+ | let str = vsprintf(this.format,this.fields);
+ | multiline_to_svg_text(this.format_elt, str);
+ }
+ otherwise {
+ | let str = this.args.length == 1 ? vsprintf(this.args[0],this.fields) : this.fields.join(' ');
+ | multiline_to_svg_text(this.element, str);
+ }
+ }
+ | },
+ |
+ if "$has_format" {
+ | init: function() {
+ | this.format = svg_text_to_multiline(this.format_elt);
+ | },
+ }
+}
+
+emit "preamble:display"
+||
+/* https://github.com/alexei/sprintf.js/blob/master/src/sprintf.js */
+/* global window, exports, define */
+
+!function() {
+ 'use strict'
+
+ var re = {
+ not_string: /[^s]/,
+ not_bool: /[^t]/,
+ not_type: /[^T]/,
+ not_primitive: /[^v]/,
+ number: /[diefg]/,
+ numeric_arg: /[bcdiefguxX]/,
+ json: /[j]/,
+ not_json: /[^j]/,
+ text: /^[^\x25]+/,
+ modulo: /^\x25{2}/,
+ placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,
+ key: /^([a-z_][a-z_\d]*)/i,
+ key_access: /^\.([a-z_][a-z_\d]*)/i,
+ index_access: /^\[(\d+)\]/,
+ sign: /^[+-]/
+ }
+
+ function sprintf(key) {
+ // arguments is not an array, but should be fine for this call
+ return sprintf_format(sprintf_parse(key), arguments)
+ }
+
+ function vsprintf(fmt, argv) {
+ return sprintf.apply(null, [fmt].concat(argv || []))
+ }
+
+ function sprintf_format(parse_tree, argv) {
+ var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign
+ for (i = 0; i < tree_length; i++) {
+ if (typeof parse_tree[i] === 'string') {
+ output += parse_tree[i]
+ }
+ else if (typeof parse_tree[i] === 'object') {
+ ph = parse_tree[i] // convenience purposes only
+ if (ph.keys) { // keyword argument
+ arg = argv[cursor]
+ for (k = 0; k < ph.keys.length; k++) {
+ if (arg == undefined) {
+ throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1]))
+ }
+ arg = arg[ph.keys[k]]
+ }
+ }
+ else if (ph.param_no) { // positional argument (explicit)
+ arg = argv[ph.param_no]
+ }
+ else { // positional argument (implicit)
+ arg = argv[cursor++]
+ }
+
+ if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {
+ arg = arg()
+ }
+
+ if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {
+ throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))
+ }
+
+ if (re.number.test(ph.type)) {
+ is_positive = arg >= 0
+ }
+
+ switch (ph.type) {
+ case 'b':
+ arg = parseInt(arg, 10).toString(2)
+ break
+ case 'c':
+ arg = String.fromCharCode(parseInt(arg, 10))
+ break
+ case 'd':
+ case 'i':
+ arg = parseInt(arg, 10)
+ break
+ case 'j':
+ arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)
+ break
+ case 'e':
+ arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()
+ break
+ case 'f':
+ arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)
+ break
+ case 'g':
+ arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)
+ break
+ case 'o':
+ arg = (parseInt(arg, 10) >>> 0).toString(8)
+ break
+ case 's':
+ arg = String(arg)
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 't':
+ arg = String(!!arg)
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 'T':
+ arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 'u':
+ arg = parseInt(arg, 10) >>> 0
+ break
+ case 'v':
+ arg = arg.valueOf()
+ arg = (ph.precision ? arg.substring(0, ph.precision) : arg)
+ break
+ case 'x':
+ arg = (parseInt(arg, 10) >>> 0).toString(16)
+ break
+ case 'X':
+ arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()
+ break
+ }
+ if (re.json.test(ph.type)) {
+ output += arg
+ }
+ else {
+ if (re.number.test(ph.type) && (!is_positive || ph.sign)) {
+ sign = is_positive ? '+' : '-'
+ arg = arg.toString().replace(re.sign, '')
+ }
+ else {
+ sign = ''
+ }
+ pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '
+ pad_length = ph.width - (sign + arg).length
+ pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''
+ output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)
+ }
+ }
+ }
+ return output
+ }
+
+ var sprintf_cache = Object.create(null)
+
+ function sprintf_parse(fmt) {
+ if (sprintf_cache[fmt]) {
+ return sprintf_cache[fmt]
+ }
+
+ var _fmt = fmt, match, parse_tree = [], arg_names = 0
+ while (_fmt) {
+ if ((match = re.text.exec(_fmt)) !== null) {
+ parse_tree.push(match[0])
+ }
+ else if ((match = re.modulo.exec(_fmt)) !== null) {
+ parse_tree.push('%')
+ }
+ else if ((match = re.placeholder.exec(_fmt)) !== null) {
+ if (match[2]) {
+ arg_names |= 1
+ var field_list = [], replacement_field = match[2], field_match = []
+ if ((field_match = re.key.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1])
+ while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
+ if ((field_match = re.key_access.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1])
+ }
+ else if ((field_match = re.index_access.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1])
+ }
+ else {
+ throw new SyntaxError('[sprintf] failed to parse named argument key')
+ }
+ }
+ }
+ else {
+ throw new SyntaxError('[sprintf] failed to parse named argument key')
+ }
+ match[2] = field_list
+ }
+ else {
+ arg_names |= 2
+ }
+ if (arg_names === 3) {
+ throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')
+ }
+
+ parse_tree.push(
+ {
+ placeholder: match[0],
+ param_no: match[1],
+ keys: match[2],
+ sign: match[3],
+ pad_char: match[4],
+ align: match[5],
+ width: match[6],
+ precision: match[7],
+ type: match[8]
+ }
+ )
+ }
+ else {
+ throw new SyntaxError('[sprintf] unexpected placeholder')
+ }
+ _fmt = _fmt.substring(match[0].length)
+ }
+ return sprintf_cache[fmt] = parse_tree
+ }
+
+ /**
+ * export to either browser or node.js
+ */
+ /* eslint-disable quote-props */
+ if (typeof exports !== 'undefined') {
+ exports['sprintf'] = sprintf
+ exports['vsprintf'] = vsprintf
+ }
+ if (typeof window !== 'undefined') {
+ window['sprintf'] = sprintf
+ window['vsprintf'] = vsprintf
+
+ if (typeof define === 'function' && define['amd']) {
+ define(function() {
+ return {
+ 'sprintf': sprintf,
+ 'vsprintf': vsprintf
+ }
+ })
+ }
+ }
+ /* eslint-enable quote-props */
+}(); // eslint-disable-line
+||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_dropdown.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,378 @@
+// widget_dropdown.ysl2
+
+widget_desc("DropDown") {
+
+ longdesc
+ ||
+ DropDown widget let user select an entry in a list of texts, given as
+ arguments. Single variable path is index of selection.
+
+ It needs "text" (svg:text), "box" (svg:rect), "button" (svg:*),
+ and "highlight" (svg:rect) labeled elements.
+
+ When user clicks on "button", "text" is duplicated to display enties in the
+ limit of available space in page, and "box" is extended to contain all
+ texts. "highlight" is moved over pre-selected entry.
+
+ When only one argument is given, and argment contains "#langs" then list of
+ texts is automatically set to the list of human-readable languages supported
+ by this HMI.
+ ||
+
+ shortdesc > Let user select text entry in a drop-down menu
+
+ arg name="entries" count="many" accepts="string" > drop-down menu entries
+
+ path name="selection" accepts="HMI_INT" > selection index
+}
+
+// TODO: support i18n of menu entries using svg:text elements with labels starting with "_"
+
+widget_class("DropDown") {
+||
+ dispatch(value) {
+ if(!this.opened) this.set_selection(value);
+ }
+ init() {
+ this.button_elt.onclick = this.on_button_click.bind(this);
+ // Save original size of rectangle
+ this.box_bbox = this.box_elt.getBBox()
+ this.highlight_bbox = this.highlight_elt.getBBox()
+ this.highlight_elt.style.visibility = "hidden";
+
+ // Compute margins
+ this.text_bbox = this.text_elt.getBBox();
+ let lmargin = this.text_bbox.x - this.box_bbox.x;
+ let tmargin = this.text_bbox.y - this.box_bbox.y;
+ this.margins = [lmargin, tmargin].map(x => Math.max(x,0));
+
+ // Index of first visible element in the menu, when opened
+ this.menu_offset = 0;
+
+ // How mutch to lift the menu vertically so that it does not cross bottom border
+ this.lift = 0;
+
+ // Event handlers cannot be object method ('this' is unknown)
+ // as a workaround, handler given to addEventListener is bound in advance.
+ this.bound_close_on_click_elsewhere = this.close_on_click_elsewhere.bind(this);
+ this.bound_on_selection_click = this.on_selection_click.bind(this);
+ this.bound_on_backward_click = this.on_backward_click.bind(this);
+ this.bound_on_forward_click = this.on_forward_click.bind(this);
+ this.opened = false;
+ this.clickables = [];
+ }
+ on_button_click() {
+ this.open();
+ }
+ // Called when a menu entry is clicked
+ on_selection_click(selection) {
+ this.close();
+ this.apply_hmi_value(0, selection);
+ }
+ on_backward_click(){
+ this.scroll(false);
+ }
+ on_forward_click(){
+ this.scroll(true);
+ }
+ set_selection(value) {
+ let display_str;
+ if(value >= 0 && value < this.content.length){
+ // if valid selection resolve content
+ display_str = this.content[value];
+ this.last_selection = value;
+ } else {
+ // otherwise show problem
+ display_str = "?"+String(value)+"?";
+ }
+ // It is assumed that first span always stays,
+ // and contains selection when menu is closed
+ this.text_elt.firstElementChild.textContent = display_str;
+ }
+ grow_text(up_to) {
+ let count = 1;
+ let txt = this.text_elt;
+ let first = txt.firstElementChild;
+ // Real world (pixels) boundaries of current page
+ let bounds = svg_root.getBoundingClientRect();
+ this.lift = 0;
+ while(count < up_to) {
+ let next = first.cloneNode();
+ // relative line by line text flow instead of absolute y coordinate
+ next.removeAttribute("y");
+ next.setAttribute("dy", "1.1em");
+ // default content to allow computing text element bbox
+ next.textContent = "...";
+ // append new span to text element
+ txt.appendChild(next);
+ // now check if text extended by one row fits to page
+ // FIXME : exclude margins to be more accurate on box size
+ let rect = txt.getBoundingClientRect();
+ if(rect.bottom > bounds.bottom){
+ // in case of overflow at the bottom, lift up one row
+ let backup = first.getAttribute("dy");
+ // apply lift as a dy added too first span (y attrib stays)
+ first.setAttribute("dy", "-"+String((this.lift+1)*1.1)+"em");
+ rect = txt.getBoundingClientRect();
+ if(rect.top > bounds.top){
+ this.lift += 1;
+ } else {
+ // if it goes over the top, then backtrack
+ // restore dy attribute on first span
+ if(backup)
+ first.setAttribute("dy", backup);
+ else
+ first.removeAttribute("dy");
+ // remove unwanted child
+ txt.removeChild(next);
+ return count;
+ }
+ }
+ count++;
+ }
+ return count;
+ }
+ close_on_click_elsewhere(e) {
+ // inhibit events not targetting spans (menu items)
+ if([this.text_elt, this.element].indexOf(e.target.parentNode) == -1){
+ e.stopPropagation();
+ // close menu in case click is outside box
+ if(e.target !== this.box_elt)
+ this.close();
+ }
+ }
+ close(){
+ // Stop hogging all click events
+ svg_root.removeEventListener("pointerdown", this.numb_event, true);
+ svg_root.removeEventListener("pointerup", this.numb_event, true);
+ svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true);
+ // Restore position and sixe of widget elements
+ this.reset_text();
+ this.reset_clickables();
+ this.reset_box();
+ this.reset_highlight();
+ // Put the button back in place
+ this.element.appendChild(this.button_elt);
+ // Mark as closed (to allow dispatch)
+ this.opened = false;
+ // Dispatch last cached value
+ this.apply_cache();
+ }
+ // Make item (text span) clickable by overlaying a rectangle on top of it
+ make_clickable(span, func) {
+ let txt = this.text_elt;
+ let original_text_y = this.text_bbox.y;
+ let highlight = this.highlight_elt;
+ let original_h_y = this.highlight_bbox.y;
+ let clickable = highlight.cloneNode();
+ let yoffset = span.getBBox().y - original_text_y;
+ clickable.y.baseVal.value = original_h_y + yoffset;
+ clickable.style.pointerEvents = "bounding-box";
+ //clickable.style.visibility = "hidden";
+ //clickable.onclick = () => alert("love JS");
+ clickable.onclick = func;
+ this.element.appendChild(clickable);
+ this.clickables.push(clickable)
+ }
+ reset_clickables() {
+ while(this.clickables.length){
+ this.element.removeChild(this.clickables.pop());
+ }
+ }
+ // Set text content when content is smaller than menu (no scrolling)
+ set_complete_text(){
+ let spans = this.text_elt.children;
+ let c = 0;
+ for(let item of this.content){
+ let span=spans[c];
+ span.textContent = item;
+ let sel = c;
+ this.make_clickable(span, (evt) => this.bound_on_selection_click(sel));
+ c++;
+ }
+ }
+ // Move partial view :
+ // false : upward, lower value
+ // true : downward, higher value
+ scroll(forward){
+ let contentlength = this.content.length;
+ let spans = this.text_elt.children;
+ let spanslength = spans.length;
+ // reduce accounted menu size according to prsence of scroll buttons
+ // since we scroll there is necessarly one button
+ spanslength--;
+ if(forward){
+ // reduce accounted menu size because of back button
+ // in current view
+ if(this.menu_offset > 0) spanslength--;
+ this.menu_offset = Math.min(
+ contentlength - spans.length + 1,
+ this.menu_offset + spanslength);
+ }else{
+ // reduce accounted menu size because of back button
+ // in view once scrolled
+ if(this.menu_offset - spanslength > 0) spanslength--;
+ this.menu_offset = Math.max(
+ 0,
+ this.menu_offset - spanslength);
+ }
+ if(this.menu_offset == 1)
+ this.menu_offset = 0;
+
+ this.reset_highlight();
+
+ this.reset_clickables();
+ this.set_partial_text();
+
+ this.highlight_selection();
+ }
+ // Setup partial view text content
+ // with jumps at first and last entry when appropriate
+ set_partial_text(){
+ let spans = this.text_elt.children;
+ let contentlength = this.content.length;
+ let spanslength = spans.length;
+ let i = this.menu_offset, c = 0;
+ let m = this.box_bbox;
+ while(c < spanslength){
+ let span=spans[c];
+ let onclickfunc;
+ // backward jump only present if not exactly at start
+ if(c == 0 && i != 0){
+ span.textContent = "▲";
+ onclickfunc = this.bound_on_backward_click;
+ let o = span.getBBox();
+ span.setAttribute("dx", (m.width - o.width)/2);
+ // presence of forward jump when not right at the end
+ }else if(c == spanslength-1 && i < contentlength - 1){
+ span.textContent = "▼";
+ onclickfunc = this.bound_on_forward_click;
+ let o = span.getBBox();
+ span.setAttribute("dx", (m.width - o.width)/2);
+ // otherwise normal content
+ }else{
+ span.textContent = this.content[i];
+ let sel = i;
+ onclickfunc = (evt) => this.bound_on_selection_click(sel);
+ span.removeAttribute("dx");
+ i++;
+ }
+ this.make_clickable(span, onclickfunc);
+ c++;
+ }
+ }
+ numb_event(e) {
+ e.stopPropagation();
+ }
+ open(){
+ let length = this.content.length;
+ // systematically reset text, to strip eventual whitespace spans
+ this.reset_text();
+ // grow as much as needed or possible
+ let slots = this.grow_text(length);
+ // Depending on final size
+ if(slots == length) {
+ // show all at once
+ this.set_complete_text();
+ } else {
+ // eventualy align menu to current selection, compensating for lift
+ let offset = this.last_selection - this.lift;
+ if(offset > 0)
+ this.menu_offset = Math.min(offset + 1, length - slots + 1);
+ else
+ this.menu_offset = 0;
+ // show surrounding values
+ this.set_partial_text();
+ }
+ // Now that text size is known, we can set the box around it
+ this.adjust_box_to_text();
+ // Take button out until menu closed
+ this.element.removeChild(this.button_elt);
+ // Rise widget to top by moving it to last position among siblings
+ this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element));
+ // disable interaction with background
+ svg_root.addEventListener("pointerdown", this.numb_event, true);
+ svg_root.addEventListener("pointerup", this.numb_event, true);
+ svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true);
+ this.highlight_selection();
+
+ // mark as open
+ this.opened = true;
+ }
+ // Put text element in normalized state
+ reset_text(){
+ let txt = this.text_elt;
+ let first = txt.firstElementChild;
+ // remove attribute eventually added to first text line while opening
+ first.onclick = null;
+ first.removeAttribute("dy");
+ first.removeAttribute("dx");
+ // keep only the first line of text
+ for(let span of Array.from(txt.children).slice(1)){
+ txt.removeChild(span)
+ }
+ }
+ // Put rectangle element in saved original state
+ reset_box(){
+ let m = this.box_bbox;
+ let b = this.box_elt;
+ b.x.baseVal.value = m.x;
+ b.y.baseVal.value = m.y;
+ b.width.baseVal.value = m.width;
+ b.height.baseVal.value = m.height;
+ }
+ highlight_selection(){
+ if(this.last_selection == undefined) return;
+ let highlighted_row = this.last_selection - this.menu_offset;
+ if(highlighted_row < 0) return;
+ let spans = this.text_elt.children;
+ let spanslength = spans.length;
+ let contentlength = this.content.length;
+ if(this.menu_offset != 0) {
+ spanslength--;
+ highlighted_row++;
+ }
+ if(this.menu_offset + spanslength < contentlength - 1) spanslength--;
+ if(highlighted_row > spanslength) return;
+ let original_text_y = this.text_bbox.y;
+ let highlight = this.highlight_elt;
+ let span = spans[highlighted_row];
+ let yoffset = span.getBBox().y - original_text_y;
+ highlight.y.baseVal.value = this.highlight_bbox.y + yoffset;
+ highlight.style.visibility = "visible";
+ }
+ reset_highlight(){
+ let highlight = this.highlight_elt;
+ highlight.y.baseVal.value = this.highlight_bbox.y;
+ highlight.style.visibility = "hidden";
+ }
+ // Use margin and text size to compute box size
+ adjust_box_to_text(){
+ let [lmargin, tmargin] = this.margins;
+ let m = this.text_elt.getBBox();
+ let b = this.box_elt;
+ // b.x.baseVal.value = m.x - lmargin;
+ b.y.baseVal.value = m.y - tmargin;
+ // b.width.baseVal.value = 2 * lmargin + m.width;
+ b.height.baseVal.value = 2 * tmargin + m.height;
+ }
+||
+}
+
+widget_defs("DropDown") {
+ labels("text box button highlight");
+ // It is assumed that list content conforms to Array interface.
+ > content:
+ choose{
+ // special case when used for language selection
+ when "count(arg) = 1 and arg[1]/@value = '#langs'" {
+ > langs
+ }
+ otherwise {
+ > [\n
+ foreach "arg" | "«@value»",
+ > ]
+ }
+ }
+ > ,\n
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_foreach.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,148 @@
+// widget_foreach.ysl2
+
+widget_desc("ForEach") {
+
+ longdesc
+ ||
+ ForEach widget is used to span a small set of widget over a larger set of
+ repeated HMI_NODEs.
+
+ Idea is somewhat similar to relative page, but it all happens inside the
+ ForEach widget, no page involved.
+
+ Together with relative Jump widgets it can be used to build a menu to reach
+ relative pages covering many identical HMI_NODES siblings.
+
+ ForEach widget takes a HMI_CLASS name as argument and a HMI_NODE path as
+ variable.
+
+ Direct sub-elements can be either groups of widget to be spanned, labeled
+ "ClassName:offset", or buttons to control the spanning, labeled
+ "ClassName:+/-number".
+ ||
+
+ shortdesc > span widgets over a set of repeated HMI_NODEs
+
+ arg name="class_name" accepts="string" > HMI_CLASS name
+
+ path name="root" accepts="HMI_NODE" > where to find HMI_NODEs whose HMI_CLASS is class_name
+}
+
+widget_defs("ForEach") {
+
+ if "count(path) != 1" error > ForEach widget «$hmi_element/@id» must have one HMI path given.
+ if "count(arg) != 1" error > ForEach widget «$hmi_element/@id» must have one argument given : a class name.
+
+ const "class","arg[1]/@value";
+
+ const "base_path","path/@value";
+ const "hmi_index_base", "$indexed_hmitree/*[@hmipath = $base_path]";
+ const "hmi_tree_base", "$hmitree/descendant-or-self::*[@path = $hmi_index_base/@path]";
+ const "hmi_tree_items", "$hmi_tree_base/*[@class = $class]";
+ const "hmi_index_items", "$indexed_hmitree/*[@path = $hmi_tree_items/@path]";
+ const "items_paths", "$hmi_index_items/@hmipath";
+ | index_pool: [
+ foreach "$hmi_index_items" {
+ | «@index»`if "position()!=last()" > ,`
+ }
+ | ],
+ | init: function() {
+ const "prefix","concat($class,':')";
+ const "buttons_regex","concat('^',$prefix,'[+\-][0-9]+')";
+ const "buttons", "$hmi_element/*[regexp:test(@inkscape:label, $buttons_regex)]";
+ foreach "$buttons" {
+ const "op","substring-after(@inkscape:label, $prefix)";
+ | id("«@id»").setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_click('«$op»', evt)");
+ }
+ |
+ | this.items = [
+ const "items_regex","concat('^',$prefix,'[0-9]+')";
+ const "unordered_items","$hmi_element//*[regexp:test(@inkscape:label, $items_regex)]";
+ foreach "$unordered_items" {
+ const "elt_label","concat($prefix, string(position()))";
+ const "elt","$unordered_items[@inkscape:label = $elt_label]";
+ const "pos","position()";
+ const "item_path", "$items_paths[$pos]";
+ | [ /* item="«$elt_label»" path="«$item_path»" */
+ if "count($elt)=0" error > Missing item labeled «$elt_label» in ForEach widget «$hmi_element/@id»
+ foreach "func:refered_elements($elt)[@id = $hmi_elements/@id][not(@id = $elt/@id)]" {
+ if "not(func:is_descendant_path(func:widget(@id)/path/@value, $item_path))"
+ error > Widget id="«@id»" label="«@inkscape:label»" is having wrong path. Accroding to ForEach widget ancestor id="«$hmi_element/@id»", path should be descendant of "«$item_path»".
+ | hmi_widgets["«@id»"]`if "position()!=last()" > ,`
+ }
+ | ]`if "position()!=last()" > ,`
+ }
+ | ]
+ | },
+ | item_offset: 0,
+}
+
+widget_class("ForEach")
+||
+
+ unsub_items(){
+ for(let item of this.items){
+ for(let widget of item) {
+ widget.unsub();
+ }
+ }
+ }
+
+ unsub(){
+ this.unsub_items();
+ this.offset = 0;
+ this.relativeness = undefined;
+ }
+
+ sub_items(){
+ for(let i = 0; i < this.items.length; i++) {
+ let item = this.items[i];
+ let orig_item_index = this.index_pool[i];
+ let item_index = this.index_pool[i+this.item_offset];
+ let item_index_offset = item_index - orig_item_index;
+ if(this.relativeness[0])
+ item_index_offset += this.offset;
+ for(let widget of item) {
+ /* all variables of all widgets in a ForEach are all relative.
+ Really.
+
+ TODO: allow absolute variables in ForEach widgets
+ */
+ widget.sub(item_index_offset, widget.indexes.map(_=>true));
+ }
+ }
+ }
+
+ sub(new_offset=0, relativeness=[]){
+ this.offset = new_offset;
+ this.relativeness = relativeness;
+ this.sub_items();
+ }
+
+ apply_cache() {
+ this.items.forEach(item=>item.forEach(widget=>widget.apply_cache()));
+ }
+
+ on_click(opstr, evt) {
+ let new_item_offset = eval(String(this.item_offset)+opstr);
+ if(new_item_offset + this.items.length > this.index_pool.length) {
+ if(this.item_offset + this.items.length == this.index_pool.length)
+ new_item_offset = 0;
+ else
+ new_item_offset = this.index_pool.length - this.items.length;
+ } else if(new_item_offset < 0) {
+ if(this.item_offset == 0)
+ new_item_offset = this.index_pool.length - this.items.length;
+ else
+ new_item_offset = 0;
+ }
+ this.item_offset = new_item_offset;
+ this.unsub_items();
+ this.sub_items();
+ update_subscriptions();
+ need_cache_apply.push(this);
+ jumps_need_update = true;
+ requestHMIAnimation();
+ }
+||
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_input.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,110 @@
+// widget_input.ysl2
+
+widget_desc("Input") {
+ longdesc
+ ||
+ Input widget takes one variable path, and displays current value in
+ optional "value" labeled sub-element.
+
+ Click on optional "edit" labeled element opens keypad to edit value.
+
+ Operation on current value is performed when click on sub-elements with
+ label starting with '=', '+' or '-' sign. Value after sign is used as
+ operand.
+ ||
+
+ shortdesc > Input field with predefined operation buttons
+
+ arg name="format" accepts="string" > optional printf-like format
+
+ path name="edit" accepts="HMI_INT, HMI_REAL, HMI_STRING" > single variable to edit
+
+}
+
+widget_class("Input")
+||
+ on_op_click(opstr) {
+ this.change_hmi_value(0, opstr);
+ }
+ edit_callback(new_val) {
+ this.apply_hmi_value(0, new_val);
+ }
+
+ is_inhibited = false;
+ alert(msg){
+ this.is_inhibited = true;
+ this.display = msg;
+ setTimeout(() => this.stopalert(), 1000);
+ this.request_animate();
+ }
+
+ stopalert(){
+ this.is_inhibited = false;
+ this.display = this.last_value;
+ this.request_animate();
+ }
+
+ overshot(new_val, max) {
+ this.alert("max");
+ }
+
+ undershot(new_val, min) {
+ this.alert("min");
+ }
+||
+
+widget_defs("Input") {
+
+ const "value_elt" optional_labels("value");
+ const "have_value","string-length($value_elt)>0";
+ value "$value_elt";
+
+ const "edit_elt" optional_labels("edit");
+ const "have_edit","string-length($edit_elt)>0";
+ value "$edit_elt";
+
+ if "$have_value"
+ | frequency: 5,
+
+ | dispatch: function(value) {
+
+
+ if "$have_value or $have_edit" {
+ choose{
+ when "count(arg) = 1" {
+ | this.last_value = vsprintf("«arg[1]/@value»", [value]);
+ }
+ otherwise {
+ | this.last_value = value;
+ }
+ }
+ | if(!this.is_inhibited){
+ | this.display = this.last_value;
+ if "$have_value" {
+ | this.request_animate();
+ }
+ | }
+ }
+ | },
+
+ if "$have_value" {
+ | animate: function(){
+ | this.value_elt.textContent = String(this.display);
+ | },
+ }
+
+ | init: function() {
+
+ if "$have_edit" {
+ | this.edit_elt.onclick = () => edit_value("«path/@value»", "«path/@type»", this, this.last_value);
+ if "$have_value" {
+ | this.value_elt.style.pointerEvents = "none";
+ }
+ }
+
+ foreach "$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]" {
+ | id("«@id»").onclick = () => this.on_op_click("«func:escape_quotes(@inkscape:label)»");
+ }
+
+ | },
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_jsontable.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,303 @@
+// widget_jsontable.ysl2
+
+widget_desc("JsonTable") {
+ longdesc
+ ||
+ Send given variables as POST to http URL argument, spread returned JSON in
+ SVG sub-elements of "data" labeled element.
+
+ Documentation to be written. see svbghmi exemple.
+ ||
+
+ shortdesc > Http POST variables, spread JSON back
+
+ arg name="url" accepts="string" >
+
+ path name="edit" accepts="HMI_INT, HMI_REAL, HMI_STRING" > single variable to edit
+
+}
+
+widget_class("JsonTable")
+ ||
+ // arbitrary defaults to avoid missing entries in query
+ cache = [0,0,0];
+ init_common() {
+ this.spread_json_data_bound = this.spread_json_data.bind(this);
+ this.handle_http_response_bound = this.handle_http_response.bind(this);
+ this.fetch_error_bound = this.fetch_error.bind(this);
+ this.promised = false;
+ }
+
+ handle_http_response(response) {
+ if (!response.ok) {
+ console.log("HTTP error, status = " + response.status);
+ }
+ return response.json();
+ }
+
+ fetch_error(e){
+ console.log("HTTP fetch error, message = " + e.message + "Widget:" + this.element_id);
+ }
+
+ do_http_request(...opt) {
+ this.abort_controller = new AbortController();
+ return Promise.resolve().then(() => {
+
+ const query = {
+ args: this.args,
+ range: this.cache[1],
+ position: this.cache[2],
+ visible: this.visible,
+ extra: this.cache.slice(4),
+ options: opt
+ };
+
+ const options = {
+ method: 'POST',
+ body: JSON.stringify(query),
+ headers: {'Content-Type': 'application/json'},
+ signal: this.abort_controller.signal
+ };
+
+ return fetch(this.args[0], options)
+ .then(this.handle_http_response_bound)
+ .then(this.spread_json_data_bound)
+ .catch(this.fetch_error_bound);
+ });
+ }
+
+ unsub(){
+ this.abort_controller.abort();
+ super.unsub();
+ }
+
+ sub(...args){
+ this.cache[0] = undefined;
+ super.sub(...args);
+ }
+
+ dispatch(value, oldval, index) {
+
+ if(this.cache[index] != value)
+ this.cache[index] = value;
+ else
+ return;
+
+ if(!this.promised){
+ this.promised = true;
+ this.do_http_request().finally(() => {
+ this.promised = false;
+ });
+ }
+ }
+ make_on_click(...options){
+ let that = this;
+ return function(evt){
+ that.do_http_request(...options);
+ }
+ }
+ // on_click(evt, ...options) {
+ // this.do_http_request(...options);
+ // }
+ ||
+
+gen_index_xhtml {
+
+template "svg:*", mode="json_table_elt_render" {
+ error > JsonTable Widget can't contain element of type «local-name()».
+}
+
+
+const "hmi_textstylelists_descs", "$parsed_widgets/widget[@type = 'TextStyleList']";
+const "hmi_textstylelists", "$hmi_elements[@id = $hmi_textstylelists_descs/@id]";
+
+const "textstylelist_related" foreach "$hmi_textstylelists" list {
+ attrib "listid" value "@id";
+ foreach "func:refered_elements(.)" elt {
+ attrib "eltid" value "@id";
+ }
+}
+const "textstylelist_related_ns", "exsl:node-set($textstylelist_related)";
+
+def "func:json_expressions" {
+ param "expressions";
+ param "label";
+
+ // compute javascript expressions to access JSON data
+ // desscribed in given svg element's "label"
+ // knowing that parent element already has given "expressions".
+
+ choose {
+ when "$label" {
+ const "suffixes", "str:split($label)";
+ const "res" foreach "$suffixes" expression {
+ const "suffix",".";
+ const "pos","position()";
+ // take last available expression (i.e can have more suffixes than expressions)
+ const "expr","$expressions[position() <= $pos][last()]/expression";
+ choose {
+ when "contains($suffix,'=')" {
+ const "name", "substring-before($suffix,'=')";
+ if "$expr/@name[. != $name]"
+ error > JsonTable : missplaced '=' or inconsistent names in Json data expressions.
+ attrib "name" value "$name";
+ attrib "content" > «$expr/@content»«substring-after($suffix,'=')»
+ }
+ otherwise {
+ copy "$expr/@name";
+ attrib "content" > «$expr/@content»«$suffix»
+ }
+ }
+ }
+ result "exsl:node-set($res)";
+ }
+ // Empty labels are ignored, expressions are then passed as-is.
+ otherwise result "$expressions";
+ }
+
+}
+
+const "initexpr" expression attrib "content" > jdata
+const "initexpr_ns", "exsl:node-set($initexpr)";
+
+template "svg:use", mode="json_table_elt_render" {
+ param "expressions";
+ // cloned element must be part of a HMI:List
+ const "targetid", "substring-after(@xlink:href,'#')";
+ const "from_list", "$hmi_lists[(@id | */@id) = $targetid]";
+
+ choose {
+ when "count($from_list) > 0" {
+ | id("«@id»").setAttribute("xlink:href",
+ // obtain new target id from HMI:List widget
+ | "#"+hmi_widgets["«$from_list/@id»"].items[«$expressions/expression[1]/@content»]);
+ }
+ otherwise
+ warning > Clones (svg:use) in JsonTable Widget must point to a valid HMI:List widget or item. Reference "«@xlink:href»" is not valid and will not be updated.
+ }
+}
+
+template "svg:text", mode="json_table_elt_render" {
+ param "expressions";
+ const "value_expr", "$expressions/expression[1]/@content";
+ const "original", "@original";
+ const "from_textstylelist", "$textstylelist_related_ns/list[elt/@eltid = $original]";
+ choose {
+
+ when "count($from_textstylelist) > 0" {
+ const "content_expr", "$expressions/expression[2]/@content";
+ if "string-length($content_expr) = 0 or $expressions/expression[2]/@name != 'textContent'"
+ error > Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignement following value expression in label.
+ | {
+ | let elt = id("«@id»");
+ | elt.textContent = String(«$content_expr»);
+ | elt.style = hmi_widgets["«$from_textstylelist/@listid»"].styles[«$value_expr»];
+ | }
+ }
+ otherwise {
+ | id("«@id»").textContent = String(«$value_expr»);
+ }
+ }
+}
+
+
+// only labels comming from Json widget are counted in
+def "func:filter_non_widget_label" {
+ param "elt";
+ param "widget_elts";
+ const "eltid" choose {
+ when "$elt/@original" value "$elt/@original";
+ otherwise value "$elt/@id";
+ }
+ result "$widget_elts[@id=$eltid]/@inkscape:label";
+}
+
+template "svg:*", mode="json_table_render_except_comments"{
+ param "expressions";
+ param "widget_elts";
+
+ const "label", "func:filter_non_widget_label(., $widget_elts)";
+ // filter out "# commented" elements
+ if "not(starts-with($label,'#'))"
+ apply ".", mode="json_table_render"{
+ with "expressions", "$expressions";
+ with "widget_elts", "$widget_elts";
+ with "label", "$label";
+ }
+}
+
+
+template "svg:*", mode="json_table_render" {
+ param "expressions";
+ param "widget_elts";
+ param "label";
+
+ const "new_expressions", "func:json_expressions($expressions, $label)";
+
+ const "elt",".";
+ foreach "$new_expressions/expression[position() > 1][starts-with(@name,'onClick')]"
+ | id("«$elt/@id»").onclick = this.make_on_click('«@name»', «@content»);
+
+ apply ".", mode="json_table_elt_render"
+ with "expressions", "$new_expressions";
+}
+
+template "svg:g", mode="json_table_render" {
+ param "expressions";
+ param "widget_elts";
+ param "label";
+
+ // use intermediate variables for optimization
+ const "varprefix" > obj_«@id»_
+ | try {
+
+ foreach "$expressions/expression"{
+ | let «$varprefix»«position()» = «@content»;
+ | if(«$varprefix»«position()» == undefined) {
+ | throw null;
+ | }
+ }
+
+ // because we put values in a variables, we can replace corresponding expression with variable name
+ const "new_expressions" foreach "$expressions/expression" xsl:copy {
+ copy "@name";
+ attrib "content" > «$varprefix»«position()»
+ }
+
+ // revert hiding in case it did happen before
+ | id("«@id»").style = "«@style»";
+
+ apply "*", mode="json_table_render_except_comments" {
+ with "expressions", "func:json_expressions(exsl:node-set($new_expressions), $label)";
+ with "widget_elts", "$widget_elts";
+ }
+ | } catch(err) {
+ | id("«@id»").style = "display:none";
+ | }
+}
+
+}
+
+widget_defs("JsonTable") {
+ labels("data");
+ const "data_elt", "$result_svg_ns//*[@id = $hmi_element/@id]/*[@inkscape:label = 'data']";
+ | visible: «count($data_elt/*[@inkscape:label])»,
+ | spread_json_data: function(janswer) {
+ | let [range,position,jdata] = janswer;
+ | [[1, range], [2, position], [3, this.visible]].map(([i,v]) => {
+ | this.apply_hmi_value(i,v);
+ | this.cache[i] = v;
+ | });
+ apply "$data_elt", mode="json_table_render_except_comments" {
+ with "expressions","$initexpr_ns";
+ with "widget_elts","$hmi_element/*[@inkscape:label = 'data']/descendant::svg:*";
+ }
+ | },
+ | init() {
+ | this.init_common();
+ foreach "$hmi_element/*[starts-with(@inkscape:label,'action_')]" {
+ | id("«@id»").onclick = this.make_on_click("«func:escape_quotes(@inkscape:label)»");
+ }
+ | }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_jump.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,157 @@
+// widget_jump.ysl2
+
+widget_desc("Jump") {
+ longdesc
+ ||
+ Jump widget brings focus to a different page. Mandatory single argument
+ gives name of the page.
+
+ Optional single path is used as new reference when jumping to a relative
+ page, it must point to a HMI_NODE.
+
+ "active"+"inactive" labeled elements can be provided and reflect current
+ page being shown.
+
+ "disabled" labeled element, if provided, is shown instead of "active" or
+ "inactive" widget when pointed HMI_NODE is null.
+ ||
+
+ shortdesc > Jump to given page
+
+ arg name="page" accepts="string" > name of page to jump to
+
+ path name="reference" count="optional" accepts="HMI_NODE" > reference for relative jump
+}
+
+widget_class("Jump") {
+||
+ activable = false;
+ active = false;
+ disabled = false;
+ frequency = 2;
+
+ update_activity() {
+ if(this.active) {
+ /* show active */
+ this.active_elt.style.display = "";
+ /* hide inactive */
+ this.inactive_elt.style.display = "none";
+ } else {
+ /* show inactive */
+ this.inactive_elt.style.display = "";
+ /* hide active */
+ this.active_elt.style.display = "none";
+ }
+ }
+
+ update_disability() {
+ if(this.disabled) {
+ /* show disabled */
+ this.disabled_elt.style.display = "";
+ /* hide inactive */
+ this.inactive_elt.style.display = "none";
+ /* hide active */
+ this.active_elt.style.display = "none";
+ } else {
+ /* hide disabled */
+ this.disabled_elt.style.display = "none";
+ this.update_activity();
+ }
+ }
+
+ make_on_click() {
+ let that = this;
+ const name = this.args[0];
+ return function(evt){
+ /* TODO: in order to allow jumps to page selected through for exemple a dropdown,
+ support path pointing to local variable whom value
+ would be an HMI_TREE index and then jump to a relative page not hard-coded in advance */
+
+ if(!that.disabled) {
+ const index = that.indexes.length > 0 ? that.indexes[0] + that.offset : undefined;
+ switch_page(name, index);
+ }
+ }
+ }
+
+ notify_page_change(page_name, index) {
+ if(this.activable) {
+ const ref_index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined;
+ const ref_name = this.args[0];
+ this.active = ((ref_name == undefined || ref_name == page_name) && index == ref_index);
+ this.update_state();
+ }
+ }
+
+ dispatch(value) {
+ this.disabled = !Number(value);
+ this.update_state();
+ }
+||
+}
+
+widget_defs("Jump") {
+ // TODO: ensure both active and inactive are provided
+ const "activity" optional_labels("active inactive");
+ const "have_activity","string-length($activity)>0";
+ value "$activity";
+
+ const "disability" optional_labels("disabled");
+ const "have_disability","$have_activity and string-length($disability)>0";
+ value "$disability";
+
+ | init: function() {
+ | this.element.onclick = this.make_on_click();
+ if "$have_activity" {
+ | this.activable = true;
+ }
+ if "not($have_disability)" {
+ | this.unsubscribable = true;
+ }
+ > this.update_state =
+ choose {
+ when "$have_disability" {
+ > this.update_disability
+ }
+ when "$have_activity" {
+ > this.update_activity
+ }
+ otherwise > null
+ }
+ > ;\n
+ | },
+
+}
+
+widget_page("Jump"){
+ param "page_desc";
+ /* check that given path is compatible with page's reference path */
+ if "path" {
+ /* TODO: suport local variable containing an HMI_TREE index to jump to a relative page */
+ /* when no page name provided, check for same page */
+ const "target_page_name" choose {
+ when "arg" value "arg[1]/@value";
+ otherwise value "$page_desc/arg[1]/@value";
+ }
+ const "target_page_path" choose {
+ when "arg" value "$hmi_pages_descs[arg[1]/@value = $target_page_name]/path[1]/@value";
+ otherwise value "$page_desc/path[1]/@value";
+ }
+
+ if "not(func:same_class_paths($target_page_path, path[1]/@value))"
+ error > Jump id="«@id»" to page "«$target_page_name»" with incompatible path "«path[1]/@value» (must be same class as "«$target_page_path»")
+ }
+}
+
+emit "declarations:jump"
+||
+var jumps_need_update = false;
+var jump_history = [[default_page, undefined]];
+
+function update_jumps() {
+ page_desc[current_visible_page].jumps.map(w=>w.notify_page_change(current_visible_page,current_page_index));
+ jumps_need_update = false;
+};
+
+||
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_keypad.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,141 @@
+// widget_keypad.ysl2
+
+widget_desc("Keypad") {
+ longdesc
+ ||
+ Keypad - to be written
+ ||
+
+ shortdesc > Keypad
+
+ arg name="supported_types" accepts="string" > keypad can input those types
+
+}
+
+emit "declarations:keypad" {
+ |
+ | var keypads = {
+ foreach "$keypads_descs"{
+ const "keypad_id","@id";
+ foreach "arg"{
+ const "g", "$geometry[@Id = $keypad_id]";
+ | "«@value»":["«$keypad_id»", «$g/@x», «$g/@y»],
+ }
+ }
+ | }
+}
+
+widget_class("Keypad")
+ ||
+ on_key_click(symbols) {
+ var syms = symbols.split(" ");
+ this.shift |= this.caps;
+ this.editstr += syms[this.shift?syms.length-1:0];
+ this.shift = false;
+ this.update();
+ }
+
+ on_Esc_click() {
+ end_modal.call(this);
+ }
+
+ on_Enter_click() {
+ let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr;
+ if(typeof coercedval == 'number' && isNaN(coercedval)){
+ // revert to initial so it explicitely shows input was ignored
+ this.editstr = String(this.initial);
+ this.update();
+ } else {
+ let callback_obj = this.result_callback_obj;
+ end_modal.call(this);
+ callback_obj.edit_callback(coercedval);
+ }
+ }
+
+ on_BackSpace_click() {
+ this.editstr = this.editstr.slice(0,this.editstr.length-1);
+ this.update();
+ }
+
+ on_Sign_click() {
+ if(this.editstr[0] == "-")
+ this.editstr = this.editstr.slice(1,this.editstr.length);
+ else
+ this.editstr = "-" + this.editstr;
+ this.update();
+ }
+
+ on_NumDot_click() {
+ if(this.editstr.indexOf(".") == "-1"){
+ this.editstr += ".";
+ this.update();
+ }
+ }
+
+ on_Space_click() {
+ this.editstr += " ";
+ this.update();
+ }
+
+ caps = false;
+ _caps = undefined;
+ on_CapsLock_click() {
+ this.caps = !this.caps;
+ this.update();
+ }
+
+ shift = false;
+ _shift = undefined;
+ on_Shift_click() {
+ this.shift = !this.shift;
+ this.caps = false;
+ this.update();
+ }
+ editstr = "";
+ _editstr = undefined;
+ result_callback_obj = undefined;
+ start_edit(info, valuetype, callback_obj, initial,size) {
+ show_modal.call(this,size);
+ this.editstr = String(initial);
+ this.result_callback_obj = callback_obj;
+ this.Info_elt.textContent = info;
+ this.shift = false;
+ this.caps = false;
+ this.initial = initial;
+
+ this.update();
+ }
+
+ update() {
+ if(this.editstr != this._editstr){
+ this._editstr = this.editstr;
+ this.Value_elt.textContent = this.editstr;
+ }
+ if(this.Shift_sub && this.shift != this._shift){
+ this._shift = this.shift;
+ (this.shift?this.activate_activable:this.inactivate_activable)(this.Shift_sub);
+ }
+ if(this.CapsLock_sub && this.caps != this._caps){
+ this._caps = this.caps;
+ (this.caps?this.activate_activable:this.inactivate_activable)(this.CapsLock_sub);
+ }
+ }
+ ||
+
+widget_defs("Keypad") {
+ labels("Esc Enter BackSpace Keys Info Value");
+ optional_labels("Sign Space NumDot");
+ activable_labels("CapsLock Shift");
+ | init: function() {
+ foreach "$hmi_element/*[@inkscape:label = 'Keys']/*" {
+ | id("«@id»").setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_key_click('«func:escape_quotes(@inkscape:label)»')");
+ }
+ foreach "str:split('Esc Enter BackSpace Sign Space NumDot CapsLock Shift')" {
+ | if(this.«.»_elt)
+ | this.«.»_elt.setAttribute("onclick", "hmi_widgets['«$hmi_element/@id»'].on_«.»_click()");
+ }
+ | },
+ |
+ const "g", "$geometry[@Id = $hmi_element/@id]";
+ | coordinates: [«$g/@x», «$g/@y»],
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_list.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,25 @@
+// widget_list.ysl2
+widget_desc("List") {
+ // TODO
+}
+
+widget_defs("List") {
+ | items: {
+ foreach "$hmi_element/*[@inkscape:label]" {
+ | «@inkscape:label»: "«@id»",
+ }
+ | },
+}
+
+widget_defs("TextStyleList") {
+ // TODO
+}
+
+widget_defs("TextStyleList") {
+ | styles: {
+ foreach "$hmi_element/*[@inkscape:label]" {
+ const "style", "func:refered_elements(.)[self::svg:text]/@style";
+ | «@inkscape:label»: "«$style»",
+ }
+ | },
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_meter.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,65 @@
+// widget_meter.ysl2
+
+widget_desc("Meter") {
+ longdesc
+ ||
+ Meter widget moves the end of "needle" labeled path along "range" labeled
+ path, according to value of the single accepted variable.
+
+ Needle is reduced to a single segment. If "min" a "max" labeled texts
+ are provided, or if first and second argument are given, then they are used
+ as respective minimum and maximum value. Otherwise, value is expected to be
+ in between 0 and 100.
+
+ If "value" labeled text is found, then its content is replaced by value.
+ ||
+
+ shortdesc > Moves "needle" along "range"
+
+ arg name="min" count="optional" accepts="int,real" > minimum value
+
+ arg name="max" count="optional" accepts="int,real" > maximum value
+
+ // TODO: add printf-like format
+
+ path name="value" accepts="HMI_INT,HMI_REAL" > Value to display
+
+}
+
+widget_class("Meter"){
+ ||
+ frequency = 10;
+ origin = undefined;
+ range = undefined;
+
+ dispatch(value) {
+ this.display_val = value;
+ this.request_animate();
+ }
+
+ animate(){
+ if(this.value_elt)
+ this.value_elt.textContent = String(this.display_val);
+ let [min,max,totallength] = this.range;
+ let length = Math.max(0,Math.min(totallength,(Number(this.display_val)-min)*totallength/(max-min)));
+ let tip = this.range_elt.getPointAtLength(length);
+ this.needle_elt.setAttribute('d', "M "+this.origin.x+","+this.origin.y+" "+tip.x+","+tip.y);
+ }
+
+ init() {
+ let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt?
+ Number(elt.textContent) :
+ this.args.length >= i+1 ? this.args[i] : def);
+
+ this.range = [min, max, this.range_elt.getTotalLength()]
+ this.origin = this.needle_elt.getPointAtLength(0);
+ }
+ ||
+}
+
+widget_defs("Meter") {
+ labels("needle range");
+ optional_labels("value min max");
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_multistate.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,80 @@
+// widget_multistate.ysl2
+
+widget_defs("MultiState") {
+
+ longdesc
+ ||
+ Mutlistateh widget hides all subelements whose label do not match given
+ variable value representation. For exemple if given variable type
+ is HMI_INT and value is 1, then elements with label '1' will be displayed.
+ Label can have comments, so '1#some comment' would also match. If matching
+ variable of type HMI_STRING, then double quotes must be used. For exemple,
+ '"hello"' or '"hello"#another comment' match HMI_STRING 'hello'.
+
+ Click on widget changes variable value to next value in given list, or to
+ first one if not initialized to value already part of the list.
+ ||
+
+ shortdesc > Show elements whose label match value.
+
+ // TODO: add optional format/precision argument to support floating points
+
+ path name="value" accepts="HMI_INT,HMI_STRING" > value to compare to labels
+
+}
+
+widget_class("MultiState")
+ ||
+ frequency = 5;
+ state = 0;
+ dispatch(value) {
+ this.state = value;
+ for(let choice of this.choices){
+ if(this.state != choice.value){
+ choice.elt.setAttribute("style", "display:none");
+ } else {
+ choice.elt.setAttribute("style", choice.style);
+ }
+ }
+ }
+
+ on_click(evt) {
+ //get current selected value
+ let next_ind;
+ for(next_ind=0; next_ind<this.choices.length; next_ind++){
+ if(this.state == this.choices[next_ind].value){
+ next_ind = next_ind + 1;
+ break;
+ }
+ }
+
+ //get next selected value
+ if(this.choices.length > next_ind){
+ this.state = this.choices[next_ind].value;
+ }
+ else{
+ this.state = this.choices[0].value;
+ }
+
+ //post value to plc
+ this.apply_hmi_value(0, this.state);
+ }
+
+ init() {
+ this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)");
+ }
+ ||
+
+widget_defs("MultiState") {
+ | choices: [
+ const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!;
+ foreach "$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]" {
+ const "literal", "regexp:match(@inkscape:label,$regex)[2]";
+ | {
+ | elt:id("«@id»"),
+ | style:"«@style»",
+ | value:«$literal»
+ | }`if "position()!=last()" > ,`
+ }
+ | ],
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_scrollbar.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,122 @@
+// widget_scrollbar.ysl2
+widget_desc("ScrollBar") {
+ longdesc
+ ||
+ ScrollBar - documentation to be written
+ ||
+
+ shortdesc > ScrollBar
+
+ path name="value" accepts="HMI_INT" > value
+ path name="range" accepts="HMI_INT" > range
+ path name="visible" accepts="HMI_INT" > visible
+
+}
+
+widget_class("ScrollBar") {
+ ||
+ frequency = 10;
+ position = undefined;
+ range = undefined;
+ size = undefined;
+ mincursize = 0.1;
+
+ dispatch(value,oldval, index) {
+ switch(index) {
+ case 0:
+ this.range = Math.max(1,value);
+ break;
+ case 1:
+ this.position = value;
+ break;
+ case 2:
+ this.size = value;
+ break;
+ }
+
+ this.request_animate();
+ }
+
+ get_ratios() {
+ let range = this.range;
+ let size = Math.max(this.range * this.mincursize, Math.min(this.size, range));
+ let maxh = this.range_elt.height.baseVal.value;
+ let pixels = maxh;
+ let units = range;
+ return [size, maxh, range, pixels, units];
+ }
+
+ animate(){
+ if(this.position == undefined || this.range == undefined || this.size == undefined)
+ return;
+ let [size, maxh, range, pixels, units] = this.get_ratios();
+
+ let new_y = this.range_elt.y.baseVal.value + Math.round(Math.min(this.position,range-size) * pixels / units);
+ let new_height = Math.round(maxh * size/range);
+
+ this.cursor_elt.y.baseVal.value = new_y;
+ this.cursor_elt.height.baseVal.value = new_height;
+ }
+
+ init_mandatory() {
+ this.cursor_elt.onpointerdown = () => this.on_cursor_down();
+
+ this.bound_drag = this.drag.bind(this);
+ this.bound_drop = this.drop.bind(this);
+ }
+
+ apply_position(position){
+ this.position = Math.round(Math.max(Math.min(position, this.range - this.size), 0));
+ this.apply_hmi_value(1, this.position);
+ }
+
+ on_page_click(is_up){
+ this.apply_position(is_up ? this.position-this.size
+ : this.position+this.size);
+ }
+
+ on_cursor_down(e){
+ // get scrollbar -> root transform
+ let ctm = this.range_elt.getCTM();
+ // relative motion -> discard translation
+ ctm.e = 0;
+ ctm.f = 0;
+ // root -> scrollbar transform
+ this.invctm = ctm.inverse();
+ svg_root.addEventListener("pointerup", this.bound_drop, true);
+ svg_root.addEventListener("pointermove", this.bound_drag, true);
+ this.dragpos = this.position;
+ }
+
+ drop(e) {
+ svg_root.removeEventListener("pointerup", this.bound_drop, true);
+ svg_root.removeEventListener("pointermove", this.bound_drag, true);
+ }
+
+ drag(e) {
+ let [size, maxh, range, pixels, units] = this.get_ratios();
+ if(pixels == 0) return;
+ let point = new DOMPoint(e.movementX, e.movementY);
+ let movement = point.matrixTransform(this.invctm).y;
+ this.dragpos += movement * units / pixels;
+ this.apply_position(this.dragpos);
+ }
+ ||
+}
+
+widget_defs("ScrollBar") {
+ labels("cursor range");
+
+ const "pagebuttons" optional_labels("pageup pagedown");
+ const "have_pagebuttons","string-length($pagebuttons)>0";
+ value "$pagebuttons";
+
+ | init: function() {
+ | this.init_mandatory();
+
+ if "$have_pagebuttons" {
+ | this.pageup_elt.onclick = () => this.on_page_click(true);
+ | this.pagedown_elt.onclick = () => this.on_page_click(false);
+ }
+ | },
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_slider.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,357 @@
+// widget_slider.ysl2
+
+widget_desc("Slider") {
+ longdesc
+ ||
+ Slider - DEPRECATED - use ScrollBar or PathSlider instead
+ ||
+
+ shortdesc > Slider - DEPRECATED - use ScrollBar instead
+
+ path name="value" accepts="HMI_INT" > value
+ path name="range" accepts="HMI_INT" > range
+ path name="visible" accepts="HMI_INT" > visible
+
+}
+
+widget_class("Slider")
+ ||
+ frequency = 5;
+ range = undefined;
+ handle_orig = undefined;
+ scroll_size = undefined;
+ scroll_range = 0;
+ scroll_visible = 7;
+ min_size = 0.07;
+ fi = undefined;
+ curr_value = 0;
+ drag = false;
+ enTimer = false;
+ handle_click = undefined;
+ last_drag = false;
+
+ dispatch(value,oldval, index) {
+ if (index == 0){
+ let [min,max,start,totallength] = this.range;
+ //save current value inside widget
+ this.curr_value = value;
+
+ //check if in range
+ if (this.curr_value > max){
+ this.curr_value = max;
+ this.apply_hmi_value(0, this.curr_value);
+ }
+ else if (this.curr_value < min){
+ this.curr_value = min;
+ this.apply_hmi_value(0, this.curr_value);
+ }
+
+ if(this.value_elt)
+ this.value_elt.textContent = String(value);
+ }
+ else if(index == 1){
+ this.scroll_range = value;
+ this.set_scroll();
+ }
+ else if(index == 2){
+ this.scroll_visible = value;
+ this.set_scroll();
+ }
+
+ //don't update if draging and setpoint ghost doesn't exist
+ if(!this.drag || (this.setpoint_elt != undefined)){
+ this.update_DOM(this.curr_value, this.handle_elt);
+ }
+ }
+
+ set_scroll(){
+ //check if range is bigger than visible and set scroll size
+ if(this.scroll_range > this.scroll_visible){
+ this.scroll_size = this.scroll_range - this.scroll_visible;
+ this.range[0] = 0;
+ this.range[1] = this.scroll_size;
+ }
+ else{
+ this.scroll_size = 1;
+ this.range[0] = 0;
+ this.range[1] = 1;
+ }
+ }
+
+ update_DOM(value, elt){
+ let [min,max,start,totallength] = this.range;
+ // check if handle is resizeable
+ if (this.scroll_size != undefined){ //size changes
+ //get parameters
+ let length = Math.max(min,Math.min(max,(Number(value)-min)*max/(max-min)));
+ let tip = this.range_elt.getPointAtLength(length);
+ let handle_min = totallength*this.min_size;
+
+ let step = 1;
+ //check if range is bigger than max displayed and recalculate step
+ if ((totallength/handle_min) < (max-min+1)){
+ step = (max-min+1)/(totallength/handle_min-1);
+ }
+
+ let kx,ky,offseY,offseX = undefined;
+ //scale on x or y axes
+ if (this.fi > 0.75){
+ //get scale factor
+ if(step > 1){
+ ky = handle_min/this.handle_orig.height;
+ }
+ else{
+ ky = (totallength-handle_min*(max-min))/this.handle_orig.height;
+ }
+ kx = 1;
+ //get 0 offset to stay inside range
+ offseY = start.y - (this.handle_orig.height + this.handle_orig.y) * ky;
+ offseX = 0;
+ //get distance from value
+ tip.y =this.range_elt.getPointAtLength(0).y - length/step *handle_min;
+ }
+ else{
+ //get scale factor
+ if(step > 1){
+ kx = handle_min/this.handle_orig.width;
+ }
+ else{
+ kx = (totallength-handle_min*(max-min))/this.handle_orig.width;
+ }
+ ky = 1;
+ //get 0 offset to stay inside range
+ offseX = start.x - (this.handle_orig.x * kx);
+ offseY = 0;
+ //get distance from value
+ tip.x =this.range_elt.getPointAtLength(0).x + length/step *handle_min;
+ }
+ elt.setAttribute('transform',"matrix("+(kx)+" 0 0 "+(ky)+" "+(tip.x-start.x+offseX)+" "+(tip.y-start.y+offseY)+")");
+ }
+ else{ //size stays the same
+ let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min)));
+ let tip = this.range_elt.getPointAtLength(length);
+ elt.setAttribute('transform',"translate("+(tip.x-start.x)+","+(tip.y-start.y)+")");
+ }
+
+ // show or hide ghost if exists
+ if(this.setpoint_elt != undefined){
+ if(this.last_drag!= this.drag){
+ if(this.drag){
+ this.setpoint_elt.setAttribute("style", this.setpoint_style);
+ }else{
+ this.setpoint_elt.setAttribute("style", "display:none");
+ }
+ this.last_drag = this.drag;
+ }
+ }
+ }
+
+ on_release(evt) {
+ //unbind events
+ window.removeEventListener("touchmove", this.on_bound_drag, true);
+ window.removeEventListener("mousemove", this.on_bound_drag, true);
+
+ window.removeEventListener("mouseup", this.bound_on_release, true);
+ window.removeEventListener("touchend", this.bound_on_release, true);
+ window.removeEventListener("touchcancel", this.bound_on_release, true);
+
+ //reset drag flag
+ if(this.drag){
+ this.drag = false;
+ }
+
+ // get final position
+ this.update_position(evt);
+
+ }
+
+ on_drag(evt){
+ //ignore drag event for X amount of time and if not selected
+ if(this.enTimer && this.drag){
+ this.update_position(evt);
+
+ //reset timer
+ this.enTimer = false;
+ setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100);
+ }
+ }
+
+ update_position(evt){
+ var html_dist = 0;
+ let [min,max,start,totallength] = this.range;
+
+ //calculate size of widget in html
+ var range_borders = this.range_elt.getBoundingClientRect();
+ var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top];
+ var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width );
+
+ //get range and mouse coordinates
+ var mouseX = undefined;
+ var mouseY = undefined;
+ if (evt.type.startsWith("touch")){
+ mouseX = Math.ceil(evt.touches[0].clientX);
+ mouseY = Math.ceil(evt.touches[0].clientY);
+ }
+ else{
+ mouseX = evt.pageX;
+ mouseY = evt.pageY;
+ }
+
+ // calculate position
+ if (this.handle_click){ //if clicked on handle
+ let moveDist = 0, resizeAdd = 0;
+ let range_percent = 1;
+
+ //set paramters for resizeable handle
+ if (this.scroll_size != undefined){
+ // add one more object to stay inside range
+ resizeAdd = 1;
+
+ //chack if range is bigger than display option and
+ // calculate percent of range with out handle
+ if(((max/(max*this.min_size)) < (max-min+1))){
+ range_percent = 1-this.min_size;
+ }
+ else{
+ range_percent = 1-(max-max*this.min_size*(max-min))/max;
+ }
+ }
+
+ //calculate value difference on x or y axis
+ if(this.fi > 0.7){
+ moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((this.handle_click[1]-mouseY)/Math.sin(this.fi));
+ }
+ else{
+ moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((mouseX-this.handle_click[0])/Math.cos(this.fi));
+ }
+
+ this.curr_value = Math.ceil(this.handle_click[2] + moveDist);
+ }
+ else{ //if clicked on widget
+ //get handle distance from mouse position
+ if (minX > mouseX && minY < mouseY){
+ html_dist = 0;
+ }
+ else if (maxX < mouseX && maxY > mouseY){
+ html_dist = range_length;
+ }
+ else{
+ if(this.fi > 0.7){
+ html_dist = (minY - mouseY)/Math.sin(this.fi);
+ }
+ else{
+ html_dist = (mouseX - minX)/Math.cos(this.fi);
+ }
+ }
+ //calculate distance
+ this.curr_value=Math.ceil((html_dist/range_length)*(this.range[1]-this.range[0])+this.range[0]);
+ }
+
+ //check if in range and apply
+ if (this.curr_value > max){
+ this.curr_value = max;
+ }
+ else if (this.curr_value < min){
+ this.curr_value = min;
+ }
+ this.apply_hmi_value(0, this.curr_value);
+
+ //redraw handle
+ this.request_animate();
+
+ }
+
+ animate(){
+ // redraw handle on screen refresh
+ // check if setpoint(ghost) handle exsist otherwise update main handle
+ if(this.setpoint_elt != undefined){
+ this.update_DOM(this.curr_value, this.setpoint_elt);
+ }
+ else{
+ this.update_DOM(this.curr_value, this.handle_elt);
+ }
+ }
+
+ on_select(evt){
+ //enable drag flag and timer
+ this.drag = true;
+ this.enTimer = true;
+
+ //bind events
+ window.addEventListener("touchmove", this.on_bound_drag, true);
+ window.addEventListener("mousemove", this.on_bound_drag, true);
+
+ window.addEventListener("mouseup", this.bound_on_release, true);
+ window.addEventListener("touchend", this.bound_on_release, true);
+ window.addEventListener("touchcancel", this.bound_on_release, true);
+
+ // check if handle was pressed
+ if (evt.currentTarget == this.handle_elt){
+ //get mouse position on the handle
+ let mouseX = undefined;
+ let mouseY = undefined;
+ if (evt.type.startsWith("touch")){
+ mouseX = Math.ceil(evt.touches[0].clientX);
+ mouseY = Math.ceil(evt.touches[0].clientY);
+ }
+ else{
+ mouseX = evt.pageX;
+ mouseY = evt.pageY;
+ }
+ //save coordinates and orig value
+ this.handle_click = [mouseX,mouseY,this.curr_value];
+ }
+ else{
+ // get new handle position and reset if handle was not pressed
+ this.handle_click = undefined;
+ this.update_position(evt);
+ }
+
+ //prevent next events
+ evt.stopPropagation();
+
+ }
+
+
+ init() {
+ //set min max value if not defined
+ let min = this.min_elt ?
+ Number(this.min_elt.textContent) :
+ this.args.length >= 1 ? this.args[0] : 0;
+ let max = this.max_elt ?
+ Number(this.max_elt.textContent) :
+ this.args.length >= 2 ? this.args[1] : 100;
+
+
+ // save initial parameters
+ this.range_elt.style.strokeMiterlimit="0";
+ this.range = [min, max, this.range_elt.getPointAtLength(0),this.range_elt.getTotalLength()];
+ let start = this.range_elt.getPointAtLength(0);
+ let end = this.range_elt.getPointAtLength(this.range_elt.getTotalLength());
+ this.fi = Math.atan2(start.y-end.y, end.x-start.x);
+ this.handle_orig = this.handle_elt.getBBox();
+
+ //bind functions
+ this.bound_on_select = this.on_select.bind(this);
+ this.bound_on_release = this.on_release.bind(this);
+ this.on_bound_drag = this.on_drag.bind(this);
+
+ this.handle_elt.addEventListener("mousedown", this.bound_on_select);
+ this.element.addEventListener("mousedown", this.bound_on_select);
+ this.element.addEventListener("touchstart", this.bound_on_select);
+ //touch recognised as page drag without next command
+ document.body.addEventListener("touchstart", function(e){}, false);
+
+ //save ghost style
+ if(this.setpoint_elt != undefined){
+ this.setpoint_style = this.setpoint_elt.getAttribute("style");
+ this.setpoint_elt.setAttribute("style", "display:none");
+ }
+
+ }
+ ||
+
+widget_defs("Slider") {
+ labels("handle range");
+ optional_labels("value min max setpoint");
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_switch.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,55 @@
+// widget_switch.ysl2
+
+widget_desc("Switch") {
+ longdesc
+ ||
+ Switch widget hides all subelements whose label do not match given
+ variable current value representation. For exemple if given variable type
+ is HMI_INT and value is 1, then elements with label '1' will be displayed.
+ Label can have comments, so '1#some comment' would also match. If matching
+ variable of type HMI_STRING, then double quotes must be used. For exemple,
+ '"hello"' or '"hello"#another comment' match HMI_STRING 'hello'.
+ ||
+
+ shortdesc > Show elements whose label match value.
+
+ // TODO: add optional format/precision argument to support floating points
+ // TODO: support (in)equations and ranges
+
+ path name="value" accepts="HMI_INT,HMI_STRING" > value to compare to labels
+
+}
+
+widget_class("Switch")
+ ||
+ frequency = 5;
+ dispatch(value) {
+ for(let choice of this.choices){
+ if(value != choice.value){
+ choice.elt.setAttribute("style", "display:none");
+ } else {
+ choice.elt.setAttribute("style", choice.style);
+ }
+ }
+ }
+ ||
+
+widget_defs("Switch") {
+ | choices: [
+ const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!;
+
+ const "subelts", "$result_widgets[@id = $hmi_element/@id]//*";
+ const "subwidgets", "$subelts//*[@id = $hmi_widgets/@id]";
+ const "accepted", "$subelts[not(ancestor-or-self::*/@id = $subwidgets/@id)]";
+
+ foreach "$accepted[regexp:test(@inkscape:label,$regex)]" {
+ const "literal", "regexp:match(@inkscape:label,$regex)[2]";
+ | {
+ | elt:id("«@id»"),
+ // TODO : use style.display = "none" to hide element
+ | style:"«@style»",
+ | value:«$literal»
+ | }`if "position()!=last()" > ,`
+ }
+ | ],
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widget_tooglebutton.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,62 @@
+// widget_tooglebutton.ysl2
+
+
+widget_desc("ToggleButton") {
+ longdesc
+ ||
+ Button widget takes one boolean variable path, and reflect current true
+ or false value by showing "active" or "inactive" labeled element
+ respectively. Clicking or touching button toggles variable.
+ ||
+
+ shortdesc > Toggle button reflecting given boolean variable
+
+ path name="value" accepts="HMI_BOOL" > Boolean variable
+
+}
+
+widget_class("ToggleButton") {
+ ||
+ frequency = 5;
+ state = 0;
+ active_style = undefined;
+ inactive_style = undefined;
+
+ dispatch(value) {
+ this.state = value;
+ //redraw toggle button
+ this.request_animate();
+ }
+
+ on_click(evt) {
+ //toggle state and apply
+ this.state = this.state ? false : true;
+ this.apply_hmi_value(0, this.state);
+
+ //redraw toggle button
+ this.request_animate();
+ }
+
+ activate(val) {
+ let [active, inactive] = val ? ["none",""] : ["", "none"];
+ if (this.active_elt)
+ this.active_elt.style.display = active;
+ if (this.inactive_elt)
+ this.inactive_elt.style.display = inactive;
+ }
+
+ animate(){
+ // redraw toggle button on screen refresh
+ this.activate(this.state);
+ }
+
+ init() {
+ this.activate(false);
+ this.element.onclick = (evt) => this.on_click(evt);
+ }
+ ||
+}
+
+widget_defs("ToggleButton") {
+ optional_labels("active inactive");
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgetlib/keypads/alphanumeric_keypad.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,931 @@
+<?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="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg3584"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="alphanumeric_keypad.svg">
+ <defs
+ id="defs3578" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="41.428571"
+ inkscape:cy="537.14286"
+ inkscape:document-units="mm"
+ inkscape:current-layer="svg3584"
+ showgrid="false"
+ inkscape:window-width="3840"
+ inkscape:window-height="2096"
+ inkscape:window-x="1600"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata3581">
+ <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
+ transform="matrix(0.88765941,0,0,0.83218073,-131.27574,10.1969)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4278"
+ inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z"
+ id="rect1006-3"
+ inkscape:connector-curvature="0"
+ inkscape:label="Background"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path185"
+ d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z"
+ inkscape:connector-curvature="0"
+ inkscape:label="Space" />
+ <g
+ id="g4380"
+ inkscape:label="Keys"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <g
+ id="g4283"
+ inkscape:label="q Q"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path41"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="99.378708"
+ y="138.28395"
+ id="text203"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Q</text>
+ </g>
+ <g
+ id="g4337"
+ inkscape:label="w W"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path43"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="127.0709"
+ y="138.28395"
+ id="text207"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">W</text>
+ </g>
+ <g
+ id="g4332"
+ inkscape:label="e E"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path45"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="159.70854"
+ y="138.28395"
+ id="text211"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">E</text>
+ </g>
+ <g
+ id="g4326"
+ inkscape:label="r R"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path47"
+ d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="188.39003"
+ y="138.28395"
+ id="text215"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">R</text>
+ </g>
+ <g
+ id="g4321"
+ inkscape:label="t T"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path49"
+ d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="219.04961"
+ y="138.28395"
+ id="text219"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">T</text>
+ </g>
+ <g
+ id="g4316"
+ inkscape:label="y Y"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path51"
+ d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="248.72017"
+ y="138.28395"
+ id="text223"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Y</text>
+ </g>
+ <g
+ id="g4311"
+ inkscape:label="u U"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path53"
+ d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="278.39075"
+ y="138.28395"
+ id="text227"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">U</text>
+ </g>
+ <g
+ id="g4306"
+ inkscape:label="i I"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path55"
+ d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="311.02859"
+ y="138.28395"
+ id="text231"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">I</text>
+ </g>
+ <g
+ id="g4301"
+ inkscape:label="o O"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path57"
+ d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="336.74319"
+ y="138.28395"
+ id="text235"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">O</text>
+ </g>
+ <g
+ id="g4296"
+ inkscape:label="p P"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path59"
+ d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="367.40256"
+ y="138.28395"
+ id="text239"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">P</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4511"
+ inkscape:label="a A">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path65"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text243"
+ y="163.99854"
+ x="107.29005"
+ transform="scale(1.0007154,0.99928514)">A</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4516"
+ inkscape:label="s S">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path67"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text247"
+ y="163.99854"
+ x="137.95012"
+ transform="scale(1.0007154,0.99928514)">S</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4521"
+ inkscape:label="d D">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path69"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text251"
+ y="163.99854"
+ x="166.63159"
+ transform="scale(1.0007154,0.99928514)">D</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4526"
+ inkscape:label="f F">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path71"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text255"
+ y="163.99854"
+ x="197.29166"
+ transform="scale(1.0007154,0.99928514)">F</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4531"
+ inkscape:label="g G">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path73"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text259"
+ y="163.99854"
+ x="225.97284"
+ transform="scale(1.0007154,0.99928514)">G</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4536"
+ inkscape:label="h H">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path75"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text263"
+ y="163.99854"
+ x="255.64342"
+ transform="scale(1.0007154,0.99928514)">H</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4541"
+ inkscape:label="j J">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path77"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text267"
+ y="163.99854"
+ x="287.29208"
+ transform="scale(1.0007154,0.99928514)">J</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4546"
+ inkscape:label="k K">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path79"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text271"
+ y="163.99854"
+ x="314.98465"
+ transform="scale(1.0007154,0.99928514)">K</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4551"
+ inkscape:label="l L">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path81"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text275"
+ y="163.99854"
+ x="345.64444"
+ transform="scale(1.0007154,0.99928514)">L</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4586"
+ inkscape:label="z Z"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path87-3"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text279"
+ y="188.72411"
+ x="119.15855"
+ transform="scale(1.0007154,0.99928514)">Z</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4581"
+ inkscape:label="x X"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path89-6"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text283"
+ y="188.72411"
+ x="148.82933"
+ transform="scale(1.0007154,0.99928514)">X</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4576"
+ inkscape:label="c C"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path91-7"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text287"
+ y="188.72411"
+ x="178.50011"
+ transform="scale(1.0007154,0.99928514)">C</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4571"
+ inkscape:label="v V"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z"
+ id="path195"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text291"
+ y="188.72411"
+ x="208.16988"
+ transform="scale(1.0007154,0.99928514)">V</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4566"
+ inkscape:label="b B"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path93"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text295"
+ y="188.72411"
+ x="237.84096"
+ transform="scale(1.0007154,0.99928514)">B</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4561"
+ inkscape:label="n N"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path95"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text299"
+ y="188.72411"
+ x="267.51193"
+ transform="scale(1.0007154,0.99928514)">N</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4556"
+ inkscape:label="m M"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path97"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text303"
+ y="188.72411"
+ x="296.1933"
+ transform="scale(1.0007154,0.99928514)">M</text>
+ </g>
+ <g
+ id="g4818"
+ inkscape:label=". :"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path101"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text719"
+ y="189.66107"
+ x="359.58276">.</text>
+ <text
+ x="359.58276"
+ y="181.64532"
+ id="text4834"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928512)">:</text>
+ </g>
+ <g
+ id="g4813"
+ inkscape:label=", ;"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path99"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text727"
+ y="181.64532"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)">;</text>
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ y="189.66107"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)"
+ id="text4826">,</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="1"
+ id="g2845"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2839"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2841"
+ y="138.28395"
+ x="101.07153"
+ transform="scale(1.0007154,0.99928513)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="2"
+ id="g2853"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2847"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2849"
+ y="138.28395"
+ x="130.18704"
+ transform="scale(1.0007154,0.99928513)">2</text>
+ </g>
+ <g
+ inkscape:label="3"
+ id="g2861"
+ style="stroke-width:0.47631353"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2855"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2857"
+ y="138.28395"
+ x="159.70854"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ id="g2957"
+ inkscape:label="4"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z"
+ id="path2865"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2867"
+ y="111.55791"
+ x="176.39188"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ id="g2962"
+ inkscape:label="5"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2873"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2875"
+ y="111.55791"
+ x="205.70567"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ id="g2967"
+ inkscape:label="6"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2881"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2883"
+ y="111.55791"
+ x="236.15851"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ id="g2972"
+ inkscape:label="7"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2889"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2891"
+ y="111.55791"
+ x="266.06564"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ id="g2977"
+ inkscape:label="8"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2897"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2899"
+ y="111.55791"
+ x="295.08231"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ id="g2982"
+ inkscape:label="9 -"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2905"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2907"
+ y="111.55791"
+ x="325.05408"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ x="335.72681"
+ y="102.42173"
+ id="text806"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text>
+ </g>
+ <g
+ id="g2987"
+ inkscape:label="0 +"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2913"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2915"
+ y="111.55791"
+ x="355.05984"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text804"
+ y="102.42173"
+ x="365.30151">+</text>
+ </g>
+ </g>
+ <g
+ transform="translate(335.89988,-58.934803)"
+ id="g3544"
+ inkscape:label="Esc"
+ style="stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path105"
+ d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928512)"
+ style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text469"
+ y="130.02028"
+ x="59.288635">Esc</text>
+ </g>
+ <g
+ inkscape:label="Enter"
+ id="g4291"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3616"
+ d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)"
+ id="path6545"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:label="BackSpace"
+ id="g4287"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(2.3648311e-6,-28.614579)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3624"
+ d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)"
+ id="path11623-1-0"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g934"
+ inkscape:label="CapsLock">
+ <g
+ inkscape:label="inactive"
+ id="g942"
+ style="display:inline;fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path936"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="69.789322"
+ y="156.71973"
+ id="text938-5"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Caps</text>
+ <text
+ x="69.789322"
+ y="166.5585"
+ id="text940"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Lock</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4429"
+ inkscape:label="active">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ id="path199"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text647"
+ y="156.71973"
+ x="69.789322">Caps</text>
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text651"
+ y="166.5585"
+ x="69.789322">Lock</text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect2130"
+ width="361.89996"
+ height="30.150299"
+ x="64.024956"
+ y="15.771065"
+ rx="3.8152773"
+ ry="3.8152773"
+ inkscape:label="Field" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="72.50132"
+ y="38.296417"
+ id="text1309"
+ inkscape:label="Value"><tspan
+ sodipodi:role="line"
+ id="tspan1307"
+ x="72.50132"
+ y="38.296417"
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text>
+ <g
+ id="g437"
+ inkscape:label="Shift">
+ <g
+ id="g421"
+ inkscape:label="inactive">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ id="path910"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text912"
+ y="177.90059"
+ x="392.55679"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path856"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="75.85218"
+ y="177.90059"
+ id="text858"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ </g>
+ <g
+ id="g413"
+ inkscape:label="active">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path551"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ x="392.55679"
+ y="177.90059"
+ id="text629"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ id="path879"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text881"
+ y="177.90059"
+ x="75.85218">Shift</text>
+ </g>
+ </g>
+ <text
+ transform="scale(0.96824588,1.0327955)"
+ id="text471"
+ y="12.333657"
+ x="252.9579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Info"><tspan
+ style="stroke-width:0.30784383px"
+ y="12.333657"
+ x="252.9579"
+ id="tspan469"
+ sodipodi:role="line">information</tspan></text>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgetlib/keypads/numeric_keypad.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,348 @@
+<?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="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg3084"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="numeric_keypad.svg">
+ <defs
+ id="defs3078" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.0875"
+ inkscape:cx="-2124.7129"
+ inkscape:cy="1244.0354"
+ inkscape:document-units="mm"
+ inkscape:current-layer="svg3084"
+ showgrid="false"
+ inkscape:window-width="1414"
+ inkscape:window-height="414"
+ inkscape:window-x="1735"
+ inkscape:window-y="162"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata3081">
+ <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="HMI:Keypad:HMI_INT:HMI_REAL"
+ id="g2432"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="matrix(0.88765941,0,0,0.83218073,-193.26385,-7.9459567)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:label="Background"
+ inkscape:connector-curvature="0"
+ id="path2136"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ ry="3.8152773"
+ rx="3.8152773"
+ y="15.77106"
+ x="64.024963"
+ height="30.150299"
+ width="361.89996"
+ id="rect2426"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:label="Field" />
+ <text
+ id="text2430"
+ y="37.408375"
+ x="72.50132"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Value"><tspan
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px"
+ y="37.408375"
+ x="72.50132"
+ id="tspan2428"
+ sodipodi:role="line">number</tspan></text>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Enter"
+ id="g4947"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path193"
+ d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z"
+ transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)"
+ id="path6545-4"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Keys"
+ id="g4993"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="7"
+ id="g4892">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path163"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text331"
+ y="129.38269"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="4"
+ id="g4907">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path169"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text335"
+ y="154.10822"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="1"
+ id="g4922">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path175"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text339"
+ y="179.82285"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="8"
+ id="g4897">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path165"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text347"
+ y="129.38269"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="5"
+ id="g4912">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path171"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text351"
+ y="154.10822"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="2"
+ id="g4927">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path177"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text355"
+ y="179.82285"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">2</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="9"
+ id="g4902">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path167"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text363"
+ y="129.38269"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="6"
+ id="g4917">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path173"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text367"
+ y="154.10822"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="3"
+ id="g4932">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path179"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text371"
+ y="179.82285"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="0"
+ id="g4937">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z"
+ id="path373"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text377"
+ y="205.53712"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ </g>
+ </g>
+ <g
+ id="g3113"
+ inkscape:label="Esc"
+ transform="translate(-318.22576)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path167-3"
+ d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="394.42801"
+ y="78.632088"
+ id="text469-4"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928511)">Esc</text>
+ </g>
+ <g
+ id="g3109"
+ inkscape:label="BackSpace"
+ transform="translate(0,-43.420332)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path173-1"
+ d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z"
+ transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)"
+ id="path11623-1-0-2"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g787"
+ inkscape:label="Sign"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path781"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="642.1239"
+ y="135.09822"
+ id="text783"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ transform="scale(1.0007154,0.99928514)">+/-</text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="252.9579"
+ y="12.333653"
+ id="text509"
+ transform="scale(0.96824589,1.0327955)"
+ inkscape:label="Info"><tspan
+ sodipodi:role="line"
+ id="tspan507"
+ x="252.9579"
+ y="12.333653"
+ style="stroke-width:0.30784383px">information</tspan></text>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ id="g4942"
+ inkscape:label="NumDot">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path181"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text771"
+ y="204.54802"
+ x="696.7464"
+ transform="scale(1.0007154,0.99928514)">.</text>
+ </g>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgetlib/meter_template.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,179 @@
+<?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="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg2092"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="meter_template.svg">
+ <defs
+ id="defs2086">
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19820"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path19818" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker25117"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path25115"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="DotM"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8269"
+ d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,2.96,0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker26099"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path26097"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="494.41281"
+ inkscape:cy="773.97224"
+ inkscape:document-units="mm"
+ inkscape:current-layer="svg2092"
+ showgrid="false"
+ inkscape:window-width="1414"
+ inkscape:window-height="801"
+ inkscape:window-x="186"
+ inkscape:window-y="62"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata2089">
+ <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
+ id="g7998"
+ transform="matrix(0.57180538,0,0,0.57180538,22.524027,122.59857)"
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH">
+ <desc
+ id="desc3869">A sophisticated meter looking like real</desc>
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820);marker-end:url(#marker25117);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path7978"
+ sodipodi:type="arc"
+ sodipodi:cx="128.02208"
+ sodipodi:cy="2.2017097"
+ sodipodi:rx="64.411957"
+ sodipodi:ry="64.411957"
+ sodipodi:start="3.1415927"
+ sodipodi:end="4.712389"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:open="true"
+ inkscape:label="range" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#DotM);marker-end:url(#marker26099)"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ id="path7980"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="needle" />
+ <text
+ inkscape:label="min"
+ id="text7984"
+ y="4.9187088"
+ x="49.132977"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px"
+ y="4.9187088"
+ x="49.132977"
+ id="tspan7982"
+ sodipodi:role="line">0</tspan></text>
+ <text
+ inkscape:label="max"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="127.48073"
+ y="-68.889908"
+ id="text7988"><tspan
+ sodipodi:role="line"
+ id="tspan7986"
+ x="127.48073"
+ y="-68.889908"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text>
+ <text
+ inkscape:label="value"
+ id="text7992"
+ y="-52.465355"
+ x="67.258514"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan7990"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-52.465355"
+ x="67.258514"
+ sodipodi:role="line">[value]</tspan></text>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgetlib/modern_knob_1.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,267 @@
+<?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="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg2637"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="modern_knob_1.svg">
+ <defs
+ id="defs2631">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4292"
+ id="linearGradient10071"
+ gradientUnits="userSpaceOnUse"
+ x1="504.87"
+ y1="526.63"
+ x2="505.57999"
+ y2="603.70001"
+ gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" />
+ <linearGradient
+ id="linearGradient4292">
+ <stop
+ id="stop4294"
+ style="stop-color:#666666"
+ offset="0" />
+ <stop
+ id="stop4296"
+ style="stop-color:#c3c3c5"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4378"
+ y2="585.34003"
+ xlink:href="#linearGradient3919"
+ gradientUnits="userSpaceOnUse"
+ x2="493.29999"
+ y1="596.53003"
+ x1="486.85001"
+ inkscape:collect="always"
+ gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" />
+ <linearGradient
+ id="linearGradient3919"
+ inkscape:collect="always">
+ <stop
+ id="stop3921"
+ style="stop-color:#ffffff"
+ offset="0" />
+ <stop
+ id="stop3923"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ id="radialGradient4372"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="271.12"
+ cx="488.75"
+ gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3862">
+ <stop
+ id="stop3864"
+ style="stop-color:#414141"
+ offset="0" />
+ <stop
+ id="stop3868"
+ style="stop-color:#41433f"
+ offset=".15789" />
+ <stop
+ id="stop3866"
+ style="stop-color:#000000"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4374"
+ y2="274.60001"
+ xlink:href="#linearGradient3994"
+ gradientUnits="userSpaceOnUse"
+ x2="461.51001"
+ gradientTransform="matrix(-0.93252,0,0,-0.93252,950.38,864.32)"
+ y1="378.48001"
+ x1="460.51001"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3994">
+ <stop
+ id="stop3996"
+ style="stop-color:#626262"
+ offset="0" />
+ <stop
+ id="stop4000"
+ style="stop-color:#919191"
+ offset=".74085" />
+ <stop
+ id="stop3998"
+ style="stop-color:#ceced2"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436"
+ id="linearGradient31386"
+ x1="1094.1289"
+ y1="489.64468"
+ x2="1008.9722"
+ y2="209.67311"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient4436"
+ gradientUnits="userSpaceOnUse"
+ cy="336.42001"
+ cx="491.09"
+ gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)"
+ r="42.073002"
+ inkscape:collect="always">
+ <stop
+ id="stop3894"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop3898"
+ style="stop-color:#ccd21b"
+ offset=".5" />
+ <stop
+ id="stop3896"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4376"
+ y2="603.70001"
+ xlink:href="#linearGradient4292"
+ gradientUnits="userSpaceOnUse"
+ x2="505.57999"
+ y1="526.63"
+ x1="504.87"
+ inkscape:collect="always"
+ gradientTransform="matrix(2.1333334,0,0,2.1333334,893.33419,706.77548)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="208.80035"
+ inkscape:cy="841.9769"
+ inkscape:document-units="mm"
+ inkscape:current-layer="g3058"
+ showgrid="false"
+ inkscape:window-width="1623"
+ inkscape:window-height="1446"
+ inkscape:window-x="3346"
+ inkscape:window-y="244"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata2634">
+ <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
+ transform="matrix(0.26458333,0,0,0.26458333,-468.86815,-460.25864)"
+ id="g3058">
+ <g
+ id="g31471">
+ <circle
+ id="path4349"
+ style="fill:url(#linearGradient10071);stroke:url(#linearGradient4378);stroke-width:2.13336658"
+ transform="scale(1,-1)"
+ cx="1974.9573"
+ cy="-1907.7942"
+ r="125.20776" />
+ <path
+ transform="matrix(2.1333334,0,0,2.1333334,917.47072,723.36897)"
+ id="path4276"
+ style="fill:url(#radialGradient4372);stroke:url(#linearGradient4374);stroke-width:0.93251997"
+ sodipodi:type="inkscape:offset"
+ d="m 495.71875,499.5625 c -30.71038,0 -55.625,24.94721 -55.625,55.65625 0,30.70904 24.91462,55.65625 55.625,55.65625 30.71038,0 55.65625,-24.94587 55.65625,-55.65625 0,-30.71038 -24.94587,-55.65625 -55.65625,-55.65625 z m 0.5957,6.625 c 26.16416,-0.0377 49.91573,24.21255 48.50196,50.61719 a 1.906235,1.906235 0 0 0 -0.002,0.0312 c -0.96267,26.09835 -23.97335,48.63457 -50.44531,47.41601 a 1.906235,1.906235 0 0 0 -0.0703,-0.002 c -27.12401,-0.25004 -50.9578,-26.70889 -47.31641,-53.83984 a 1.906235,1.906235 0 0 0 0.008,-0.0703 c 2.26482,-23.38029 22.99305,-43.56741 46.70508,-44.05859 a 1.906235,1.906235 0 0 0 0.0781,-0.004 c 0.86395,-0.0528 1.71288,-0.0887 2.54101,-0.0898 z"
+ inkscape:original="M 495.71875 501.46875 C 466.0389 501.46875 442 525.5389 442 555.21875 C 442 584.8986 466.0389 608.96875 495.71875 608.96875 C 525.3986 608.96875 549.46875 584.8986 549.46875 555.21875 C 549.46875 525.5389 525.3986 501.46875 495.71875 501.46875 z M 496.3125 504.28125 C 523.64396 504.24185 548.1961 529.3142 546.71875 556.90625 C 545.71652 584.07711 521.8754 607.42646 494.28125 606.15625 C 465.94032 605.89499 441.28655 578.52263 445.09375 550.15625 C 447.45524 525.77795 468.89562 504.8879 493.65625 504.375 C 494.5429 504.3208 495.43084 504.28245 496.3125 504.28125 z "
+ inkscape:radius="1.9060444" />
+ </g>
+ <g
+ style="fill:none;stroke-width:1.47405899"
+ transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)"
+ inkscape:label="HMI:CircularBar@value[HMI_REAL,HMI_INT]0,111@label[HMI_STRING]"
+ id="g30664">
+ <text
+ inkscape:label="value"
+ id="text30652"
+ y="272.72952"
+ x="1045.2592"
+ style="font-style:normal;font-weight:normal;font-size:70.65699005px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;opacity:1;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-opacity:1"
+ y="272.72952"
+ x="1045.2592"
+ id="tspan30650"
+ sodipodi:role="line">65%</tspan></text>
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#linearGradient31386);stroke-width:11.26410389;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none"
+ id="path30654"
+ inkscape:label="path"
+ sodipodi:type="arc"
+ sodipodi:cx="1045.7766"
+ sodipodi:cy="247.00946"
+ sodipodi:rx="209.17709"
+ sodipodi:ry="209.47221"
+ sodipodi:start="2.268928"
+ sodipodi:end="0.87266463"
+ d="M 911.32017,407.47449 A 209.17709,209.47221 0 0 1 849.21444,175.36575 209.17709,209.47221 0 0 1 1045.7766,37.537247 209.17709,209.47221 0 0 1 1242.3388,175.36574 209.17709,209.47221 0 0 1 1180.2331,407.47449"
+ sodipodi:open="true" />
+ </g>
+ <g
+ id="g31467"
+ inkscape:label="g31467"
+ style="display:inline">
+ <circle
+ id="path4282"
+ style="fill:url(#linearGradient4376);stroke-width:2.13333344"
+ cx="1974.1705"
+ cy="1908.6909"
+ r="76.17897" />
+ <use
+ transform="matrix(0.53304115,0,0,0.53229017,1419.5153,1778.3135)"
+ style="opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="0"
+ y="0"
+ xlink:href="#text30652"
+ id="use31590"
+ width="100%"
+ height="100%" />
+ <use
+ transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)"
+ style="opacity:1;vector-effect:none;fill:#333333;fill-opacity:1;stroke:none;stroke-width:4.0050149;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="0"
+ y="0"
+ xlink:href="#text30652"
+ id="use31592"
+ width="100%"
+ height="100%" />
+ </g>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgetlib/rounded_scrollbar.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,95 @@
+<?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="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg1084"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="rounded_scrollbar.svg">
+ <defs
+ id="defs1078" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="763.74455"
+ inkscape:cy="633.06732"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="3840"
+ inkscape:window-height="2096"
+ inkscape:window-x="1600"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata1081">
+ <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">
+ <g
+ id="g1766"
+ inkscape:label="HMI:ScrollBar@.range@.position@.visibleAlarms"
+ transform="matrix(0.26458333,0,0,0.26458333,151.87374,-19.244728)">
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path1266"
+ d="m -234.01097,332.35504 21.18736,28.36866 h -42.37471 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.42391574px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:label="pageup" />
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.4007318px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -234.01097,686.72773 21.18736,-27.45222 h -42.37471 z"
+ id="path1268"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="pagedown" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.30952382;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627348px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1264-3"
+ width="42.374725"
+ height="276.64423"
+ x="-255.19838"
+ y="371.91068"
+ rx="7.6034913"
+ ry="6.8822322"
+ inkscape:label="range" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1264"
+ width="42.374725"
+ height="82.841492"
+ x="-255.19838"
+ y="371.91068"
+ rx="7.6034913"
+ ry="7"
+ inkscape:label="cursor" />
+ </g>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgetlib/spinctrl.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,130 @@
+<?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="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg2283"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="spinctrl.svg">
+ <defs
+ id="defs2277" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.6"
+ inkscape:cx="133.93728"
+ inkscape:cy="643.13396"
+ inkscape:document-units="mm"
+ inkscape:current-layer="svg2283"
+ showgrid="false"
+ inkscape:window-width="3840"
+ inkscape:window-height="2096"
+ inkscape:window-x="1600"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata2280">
+ <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
+ transform="matrix(0.07564509,0,0,0.07564509,88.680233,101.90213)"
+ id="g446"
+ inkscape:label="HMI:Input@/SELECTION">
+ <text
+ inkscape:label="value"
+ id="text432"
+ y="218.24219"
+ x="216.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff8c00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ xml:space="preserve"><tspan
+ style="text-align:end;text-anchor:end;stroke-width:1px;fill:#ff8c00;"
+ y="218.24219"
+ x="216.32812"
+ id="tspan430"
+ sodipodi:role="line">8</tspan></text>
+ <path
+ inkscape:label="-1"
+ inkscape:transform-center-y="7.4781812"
+ d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-224.98808"
+ sodipodi:cx="276.74072"
+ sodipodi:sides="3"
+ id="path436"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect438"
+ width="230.94511"
+ height="128"
+ x="1.8178837"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path442"
+ sodipodi:sides="3"
+ sodipodi:cx="276.74072"
+ sodipodi:cy="96.444443"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z"
+ inkscape:transform-center-y="-7.4781804"
+ inkscape:label="+1" />
+ <path
+ inkscape:transform-center-x="1.0089177e-06"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path444"
+ sodipodi:sides="4"
+ sodipodi:cx="276.74072"
+ sodipodi:cy="160.71626"
+ sodipodi:r1="41.281136"
+ sodipodi:r2="21.657967"
+ sodipodi:arg1="0.77793027"
+ sodipodi:arg2="1.5633284"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z"
+ inkscape:transform-center-y="-10.828983"
+ inkscape:label="=0" />
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgetlib/voltmeter.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,793 @@
+<?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="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg2354"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="voltmeter.svg">
+ <defs
+ id="defs2348">
+ <filter
+ id="filter5708"
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur5710"
+ stdDeviation="28.132071"
+ inkscape:collect="always" />
+ </filter>
+ <marker
+ inkscape:stockid="SquareL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker20566-2"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path20564-8"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker23223"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path23221" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5712"
+ id="linearGradient10503"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-266.78,858.86)"
+ x1="-914.59003"
+ y1="-906.90997"
+ x2="298.10999"
+ y2="276.98999" />
+ <linearGradient
+ id="linearGradient5712">
+ <stop
+ id="stop5714"
+ style="stop-color:#cccccc"
+ offset="0" />
+ <stop
+ id="stop5716"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset=".12299" />
+ <stop
+ id="stop5718"
+ style="stop-color:#999999;stop-opacity:.63813"
+ offset="1" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1712952"
+ inkscape:cx="601.92253"
+ inkscape:cy="607.41638"
+ inkscape:document-units="mm"
+ inkscape:current-layer="svg2354"
+ showgrid="false"
+ inkscape:window-width="1605"
+ inkscape:window-height="1099"
+ inkscape:window-x="3543"
+ inkscape:window-y="375"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata2351">
+ <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
+ transform="matrix(0.03023415,0,0,0.03023415,158.84668,129.93084)"
+ id="g29149">
+ <rect
+ x="-1430.8"
+ y="-352.34"
+ width="2055.1001"
+ height="2055.1001"
+ ry="129.3"
+ rx="129.3"
+ style="fill:#000000"
+ id="rect3007" />
+ <rect
+ x="-1384.5"
+ y="-305.98001"
+ width="1962.4"
+ height="1962.4"
+ ry="90.727997"
+ rx="90.727997"
+ style="fill:#333333"
+ id="rect3777" />
+ <rect
+ x="-1358.2"
+ y="-279.72"
+ width="1909.9"
+ height="1909.9"
+ ry="70.525002"
+ rx="70.525002"
+ style="fill:#000000"
+ id="rect3779" />
+ <rect
+ x="375.37"
+ y="802.65002"
+ width="97.857002"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect3788" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ sodipodi:nodetypes="sssssssssss"
+ d="m -1106.1,-149.32 c -67.467,0 -121.78,54.312 -121.78,121.78 v 1405.5 c 0,67.467 54.312,121.78 121.78,121.78 h 680.32 c 29.662,0 47.115,-4.0297 64.849,-21.729 l 755.83,-754.34 c 23.851,-23.803 26.352,-40.896 26.352,-72.473 v -678.83 c 0,-67.467 -54.312,-121.78 -121.78,-121.78 z"
+ id="path3796" />
+ <path
+ d="M -208.21,1279.8 230.36,851.23 h -444.29 z"
+ inkscape:connector-curvature="0"
+ style="fill:#000000"
+ id="path5147" />
+ <path
+ d="m -41.063,1048.4 -48.571,-54.286 33.571,-33.571 54.286,54.286"
+ inkscape:connector-curvature="0"
+ style="fill:#e6e6e6"
+ id="path4263" />
+ <path
+ d="m -131.78,1205.5 -37.143,-36.429 11.429,-12.857 30.714,6.4286 54.286,-54.286 c -6.7698,-14.828 -2.7537,-22.791 11.428,-24.286 -18.934,-68.674 49.856,-114.43 102.86,-90 l 60.714,-60 -12.143,-30 11.429,-10 41.428,35"
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ sodipodi:nodetypes="ccccccccccc"
+ id="path4265" />
+ <path
+ d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.98 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.98 -53.114,-119.09 -119.09,-119.09 h -1374.5 z M 6.1,869.06 h 189.31 l -387.34,382.16 v -178.94 c 0,-107.21 90.807,-203.22 198.03,-203.22 z"
+ inkscape:connector-curvature="0"
+ style="fill:#e1e1d1"
+ id="rect3781" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(1.037,0,0,1.037,-262.68,-1806.5)"
+ style="opacity:0.85773998;fill:#000000;filter:url(#filter5708)"
+ d="m -823.78,1579.8 c -65.979,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,51.168 31.947,94.61 77.062,111.53 -1.8213,-8.3056 -2.7812,-16.944 -2.7812,-25.813 v -1374.5 c 0,-65.979 53.114,-119.09 119.09,-119.09 h 1374.5 c 14.812,0 28.972,2.6957 42.031,7.5938 -11.729,-53.488 -59.201,-93.312 -116.31,-93.312 h -1374.5 z"
+ id="path5854" />
+ <path
+ d="m -897.19,202.71 -1.1875,-5.5312 -30.281,-141.12 h 13.687 l 27.813,126.53 33.875,-126.53 h 13.531 l -36.906,141.47 -1.4063,5.1875 h -5.375 -8.0625 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ sodipodi:nodetypes="cccccccccccc"
+ id="path4143" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="1.2277805"
+ inkscape:transform-center-x="1026.1266"
+ d="m -1081.2,1066.7 a 3.5004,3.5004 0 0 0 1.0743,6.8659 l 119.98,-0.1356 a 3.5004,3.5004 0 1 0 -0.016,-6.9996 l -119.98,0.1356 a 3.5004,3.5004 0 0 0 -1.0582,0.1337 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path3927" />
+ <path
+ sodipodi:nodetypes="csccsccccssccscccs"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-84.5624"
+ inkscape:transform-center-x="999.99804"
+ d="m -1076.7,973.88 c -1.7172,0.1873 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 127.18,10.755 c 1.8326,0.1672 3.6502,-1.3563 3.8058,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -127.18,-10.755 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z m 160,13.54 c -1.7213,-0.1455 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 4.4928,0.3709 c 1.8325,0.1671 3.6502,-1.3564 3.8057,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -4.4927,-0.3709 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path3959" />
+ <path
+ d="m -516.79,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4112" />
+ <path
+ d="m -444.57,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4114" />
+ <path
+ d="m -689.77,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.725,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.724,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5255,-19.219 19.25,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4116" />
+ <path
+ d="m -617.55,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.724,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.7248,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5254,-19.219 19.25,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4118" />
+ <path
+ d="m -768.21,649.57 c -14.558,0 -26.594,11.436 -26.594,25.656 a 4.0004,4.0004 0 1 0 8,0 c 0,-9.7079 8.1783,-17.656 18.594,-17.656 10.415,0 18.625,7.9483 18.625,17.656 0,3.4188 -0.3012,6.2393 -1.9687,9.125 -1.6676,2.8857 -4.8983,6.1281 -11.656,9.5625 -15.36,7.8058 -30.328,23.228 -32.812,46.125 a 4.0004,4.0004 0 0 0 3.9688,4.4375 h 45.969 a 4.0004,4.0004 0 1 0 0,-8 h -41.219 c 3.4595,-17.376 15.261,-29.122 27.688,-35.438 7.6555,-3.8905 12.332,-8.1255 14.969,-12.688 2.6363,-4.5619 3.0625,-9.1977 3.0625,-13.125 0,-14.22 -12.067,-25.656 -26.625,-25.656 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4122" />
+ <path
+ d="m -8.1876,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4130" />
+ <path
+ d="m -102.13,197.01 a 4.0004,4.0004 0 0 0 -4,4 v 37.25 a 4.0004,4.0004 0 0 0 7.375,2.125 c 2.9991,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.648 19.25,19.625 v 12.344 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2063,0 -15.115,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9063 c 4.8761,8.7154 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.344 c 0,-15.2 -12.196,-27.625 -27.25,-27.625 -5.9927,0 -12.456,1.4611 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 h -39.406 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4132" />
+ <path
+ d="m -984.92,1208.6 a 2.5002,2.5002 0 0 0 -1.8125,0.8437 l -7.8125,8.9063 a 2.5018,2.5018 0 1 0 3.75,3.3125 l 3.4375,-3.9063 v 39.781 a 2.5002,2.5002 0 1 0 5,0 v -46.438 a 2.5002,2.5002 0 0 0 -2.5625,-2.5 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4159" />
+ <path
+ d="m -963.1,1208.6 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 19.906 a 2.5002,2.5002 0 0 0 4.625,1.3125 c 1.5017,-2.3801 5.7817,-4.125 9.5,-4.125 5.5171,0 9.9062,4.4472 9.9062,10.125 v 6.5938 c 0,5.6778 -4.3891,10.125 -9.9062,10.125 -3.7197,0 -7.858,-2.2704 -9.4375,-5.0938 a 2.5041,2.5041 0 1 0 -4.375,2.4375 c 2.6869,4.8027 8.253,7.6563 13.812,7.6563 8.2458,0 14.906,-6.8081 14.906,-15.125 v -6.5938 c 0,-8.3168 -6.6604,-15.125 -14.906,-15.125 -3.0809,0 -6.3424,0.7823 -9.125,2.3438 v -11.938 h 18.562 a 2.5002,2.5002 0 1 0 0,-5 h -21.062 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4161" />
+ <path
+ d="m -972.35,1253.6 c -2.2316,0 -4.0625,1.8309 -4.0625,4.0625 0,1.973 1.4112,3.5833 3.2812,3.9375 -0.352,1.6422 -0.8243,3.5675 -1.625,6.4062 3.379,-3.3496 5.078,-6.1447 6.0625,-8.6875 0.013,-0.033 0.05,-0.061 0.062,-0.094 v -0.031 c 0.1971,-0.4759 0.3125,-0.984 0.3125,-1.5312 0,-2.2316 -1.7996,-4.0625 -4.0312,-4.0625 z"
+ inkscape:connector-curvature="0"
+ style="fill:#000000"
+ id="path4165" />
+ <path
+ d="m -1077.3,1219.9 c -5.4507,0.026 -10.966,1.9221 -16,6.6563 a 2.5092,2.5092 0 1 0 3.4375,3.6562 c 5.6657,-5.3285 10.954,-6.1333 16.938,-4.875 5.9835,1.2583 12.504,4.8899 19.125,8.7188 6.6209,3.8289 13.346,7.8504 20.312,9.5312 6.9668,1.6809 14.393,0.7108 20.875,-5.2812 a 2.51,2.51 0 1 0 -3.4062,-3.6875 c -5.3695,4.9636 -10.436,5.5429 -16.312,4.125 -5.8769,-1.4179 -12.328,-5.1595 -18.969,-9 -6.6411,-3.8406 -13.471,-7.7833 -20.594,-9.2813 -1.7808,-0.3745 -3.5894,-0.5713 -5.4063,-0.5625 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4170" />
+ <path
+ d="m -852.33,1185.2 c -1.653,0 -3.0458,1.0383 -3.5937,2.5 l -34.656,12.281 v -9.2812 a 2.5002,2.5002 0 0 0 -2.5312,-2.5313 2.5002,2.5002 0 0 0 -2.4688,2.5313 v 11.062 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 11.219,3.9375 v 5.1562 l -11.219,3.9688 a 2.5002,2.5002 0 0 0 0,4.7187 l 11.219,3.9688 v 5.125 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 50.875,18.031 c 0.5479,1.4617 1.9407,2.5313 3.5937,2.5313 2.1292,0 3.8438,-1.7459 3.8438,-3.875 0,-2.1292 -1.7146,-3.8438 -3.8438,-3.8438 -0.698,0 -1.3415,0.2068 -1.9062,0.5313 l -36.344,-12.906 a 2.5002,2.5002 0 0 0 0,-0.1875 v -5.4062 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.7188 l -10.562,-3.75 v -5.625 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.6875 l -10.562,-3.75 v -5.5937 l 36.344,-12.875 c 0.5647,0.3244 1.2082,0.5312 1.9062,0.5312 2.1292,0 3.8438,-1.7458 3.8438,-3.875 0,-2.1291 -1.7146,-3.8437 -3.8438,-3.8437 z m -43.25,21.844 v 2.0625 l -2.9062,-1.0312 z m 5,9.0938 2.2813,0.8125 -2.2813,0.8125 z m -5,8.6875 v 2.0625 l -2.9062,-1.0313 z m 5,9.1562 2.25,0.7813 -2.25,0.7812 z m -5,8.6563 v 2.0625 l -2.9062,-1.0313 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4172" />
+ <path
+ d="m -788.35,1184.2 a 2.5002,2.5002 0 0 0 -1.7841,1.1002 l -14.719,21.974 -25.423,7.2255 a 2.5002,2.5002 0 0 0 -1.2786,3.9547 l 16.354,20.784 -0.9515,26.434 a 2.5002,2.5002 0 0 0 3.36,2.4085 l 24.799,-9.0988 24.828,9.069 a 2.5002,2.5002 0 0 0 3.3601,-2.4382 l -1.011,-26.404 16.295,-20.814 a 2.5002,2.5002 0 0 0 -1.2786,-3.9547 l -25.423,-7.2255 -14.748,-21.914 a 2.5002,2.5002 0 0 0 -2.3788,-1.1002 z m 0.2973,6.9877 13.202,19.595 a 2.5002,2.5002 0 0 0 1.3976,1.011 l 22.717,6.4524 -14.57,18.584 a 2.5002,2.5002 0 0 0 -0.5353,1.6354 l 0.8921,23.609 -22.182,-8.0879 a 2.5002,2.5002 0 0 0 -1.7246,0 l -22.182,8.1473 0.8623,-23.639 a 2.5002,2.5002 0 0 0 -0.5352,-1.6354 l -14.57,-18.554 22.688,-6.4821 a 2.5002,2.5002 0 0 0 1.3975,-1.011 l 13.143,-19.625 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4195" />
+ <path
+ d="m -788.4,1216 c -4.8517,0 -8.8125,3.9608 -8.8125,8.8125 a 2.1387,2.1387 0 1 0 4.25,0 c 0,-2.5403 2.0222,-4.5312 4.5625,-4.5312 2.5403,0 4.5625,1.9909 4.5625,4.5312 0,0.6956 -0.176,1.0804 -0.9062,1.9688 -0.7302,0.8884 -1.9841,2.0898 -3.4063,3.8125 l -9.3437,11.312 a 2.1387,2.1387 0 0 0 1.6562,3.5 h 15.406 a 2.14065,2.14065 0 0 0 0,-4.2813 h -10.875 l 6.4375,-7.8125 c 1.2474,-1.511 2.4036,-2.5926 3.4062,-3.8125 1.0026,-1.2198 1.9063,-2.8108 1.9063,-4.6875 0,-4.8517 -3.992,-8.8125 -8.8438,-8.8125 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4201" />
+ <path
+ d="m -719.32,1204.4 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 39.656 a 2.5002,2.5002 0 0 0 2.75,2.5 h 0.031 8.5625 c 7.6375,0 13.844,-6.2375 13.844,-13.875 0,-7.6376 -6.2062,-13.844 -13.844,-13.844 h -6.3438 v -11.938 h 14.156 a 2.5002,2.5002 0 1 0 0,-5 h -16.656 a 2.5002,2.5002 0 0 0 -0.25,0 z m 2.75,21.938 h 6.3437 c 4.954,0 8.8438,3.8897 8.8438,8.8438 0,4.954 -3.8898,8.875 -8.8438,8.875 h -6.3437 v -17.719 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4204" />
+ <path
+ d="m -667.07,1189.1 a 2.1387,2.1387 0 0 0 -2.125,2.1875 v 68.688 a 2.1406,2.1406 0 0 0 4.2812,0 v -68.688 A 2.1387,2.1387 0 0 0 -667.07,1189.1 Z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4213" />
+ <path
+ d="m -696.1,1257.9 a 2.503123,2.503123 0 1 0 0.25,5 h 57.594 a 2.5002,2.5002 0 1 0 0,-5 h -57.594 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4215" />
+ <path
+ d="m -997.61,1301.5 a 2.7908,2.7908 0 0 0 -2.5192,2.7905 v 33.331 a 2.7908,2.7908 0 1 0 5.5809,0 v -30.54 h 10.387 a 2.7908,2.7908 0 1 0 0,-5.581 h -13.177 a 2.7908,2.7908 0 0 0 -0.2713,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4217" />
+ <path
+ d="m -967.11,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7126,3.3975 7.7126,7.7126 v 12.363 c 0,4.3151 -3.3975,7.6739 -7.7126,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4219" />
+ <path
+ d="m -939.56,1301.5 c -7.3103,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9833,13.255 13.294,13.255 6.1555,0 11.384,-4.1964 12.867,-9.9218 a 2.7908,2.7908 0 1 0 -5.3872,-1.3952 c -0.8578,3.3113 -3.8467,5.736 -7.4801,5.736 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 3.63,0 6.5804,2.4293 7.4414,5.736 a 2.8012164,2.8012164 0 1 0 5.4259,-1.3953 c -1.4886,-5.7173 -6.7175,-9.9217 -12.867,-9.9217 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4221" />
+ <path
+ d="m -913.39,1301.5 a 2.7908,2.7908 0 0 0 -2.4804,2.8293 v 33.331 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 A 2.7908,2.7908 0 0 0 -913.39,1301.5 Z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4224" />
+ <path
+ d="m -921.92,1301.5 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 17.131 a 2.7908,2.7908 0 1 0 0,-5.581 h -17.131 a 2.7908,2.7908 0 0 0 -0.2713,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4226" />
+ <path
+ d="m -871.11,1301.5 c -5.4866,0 -9.9993,4.5127 -9.9993,9.9993 0,5.4866 4.5127,9.9993 9.9993,9.9993 5.4865,0 9.9992,-4.5127 9.9992,-9.9993 0,-5.4866 -4.5127,-9.9993 -9.9992,-9.9993 z m 0,5.581 c 2.4704,0 4.4183,1.9479 4.4183,4.4183 0,2.4704 -1.9479,4.4183 -4.4183,4.4183 -2.4704,0 -4.4183,-1.9479 -4.4183,-4.4183 0,-2.4704 1.9479,-4.4183 4.4183,-4.4183 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4232" />
+ <path
+ d="m -871.11,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4234" />
+ <path
+ d="m -853.24,1301.5 a 2.7948015,2.7948015 0 1 0 0.31,5.581 h 9.8055 c -4.1407,8.1507 -7.5055,18.252 -10.348,29.882 a 2.7918179,2.7918179 0 0 0 5.4259,1.3178 c 3.274,-13.394 7.1815,-24.728 11.898,-32.556 a 2.7908,2.7908 0 0 0 -2.403,-4.2245 h -14.379 a 2.7908,2.7908 0 0 0 -0.31,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4236" />
+ <path
+ d="m -817.47,1301.5 a 2.7908,2.7908 0 0 0 -2.1704,1.1239 l -5.8135,7.7514 a 2.7908,2.7908 0 1 0 4.457,3.3331 l 0.8139,-1.0852 v 24.998 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4240" />
+ <path
+ d="m -797.9,1301.5 a 2.7908,2.7908 0 0 0 -2.1316,1.1239 l -5.8136,7.7514 a 2.7908,2.7908 0 1 0 4.4571,3.3331 l 0.7751,-1.0464 v 24.959 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4250" />
+ <path
+ d="m -726.59,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7127,3.3975 7.7127,7.7126 v 12.363 c 0,4.3151 -3.3976,7.6739 -7.7127,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4252" />
+ <path
+ d="m -753.51,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4254" />
+ <path
+ d="m -753.52,1301.5 c -6.7839,0 -12.325,5.5408 -12.325,12.325 v 14.262 a 2.7908,2.7908 0 1 0 5.581,0 v -14.262 c 0,-3.7677 2.976,-6.7437 6.7437,-6.7437 2.7232,0 5.1777,1.6007 6.2399,4.1082 a 2.7965,2.7965 0 1 0 5.1546,-2.1704 c -1.9302,-4.5568 -6.4457,-7.5188 -11.394,-7.5188 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4258" />
+ <path
+ d="m -787.63,1317.3 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 14.418 a 2.7908,2.7908 0 1 0 0,-5.581 h -14.418 a 2.7908,2.7908 0 0 0 -0.2713,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4261" />
+ <path
+ d="m 144.24,272.53 c -6.7856,0 -12.69,3.8407 -15.594,9.5 a 2.5002,2.5002 0 1 0 4.4375,2.2812 c 2.0712,-4.0371 6.2544,-6.7812 11.156,-6.7812 6.9827,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -4.4773,0 -8.3427,-2.2743 -10.562,-5.75 a 2.5010041,2.5010041 0 1 0 -4.2187,2.6875 c 3.1089,4.8679 8.5832,8.0625 14.781,8.0625 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4271" />
+ <path
+ d="m 221.24,272.53 c -9.6661,0 -17.5,7.865 -17.5,17.531 v 21.344 c 0,9.6661 7.8339,17.531 17.5,17.531 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z m 0,5 c 6.9827,0 12.531,5.5485 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -6.9826,0 -12.5,-5.5486 -12.5,-12.531 v -21.344 c 0,-6.9827 5.5174,-12.531 12.5,-12.531 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4273" />
+ <path
+ d="m 169.86,272.53 a 2.503123,2.503123 0 1 0 0.25,5 h 18.156 l -12.375,17.5 a 2.5002,2.5002 0 0 0 2.3437,3.9375 c 5.7215,-0.6862 9.0208,0.5421 11.188,2.4375 2.1668,1.8954 3.3312,4.7379 3.7813,7.7187 0.4713,3.1214 -0.2842,6.6267 -1.9063,9.4063 -1.622,2.7795 -4.0115,4.7449 -6.7187,5.25 -4.475,0.8347 -10.174,-1.6848 -12.25,-5.8438 a 2.5016331,2.5016331 0 1 0 -4.4688,2.25 c 3.2375,6.4873 10.824,9.7687 17.625,8.5 4.4334,-0.827 7.9333,-3.8692 10.125,-7.625 2.1918,-3.7558 3.1946,-8.2945 2.5313,-12.688 -0.5669,-3.7543 -2.0648,-7.7957 -5.4063,-10.719 -2.4107,-2.1089 -5.7373,-3.4771 -9.9062,-3.7813 l 12.312,-17.406 a 2.5002,2.5002 0 0 0 -2.0625,-3.9375 h -22.969 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4275" />
+ <path
+ d="m 145.11,298.25 a 2.503123,2.503123 0 1 0 0.25,5 h 13.125 a 2.5002,2.5002 0 1 0 0,-5 H 145.36 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4281" />
+ <path
+ d="m 147.41,654.11 a 3.5004,3.5004 0 0 0 -3,1.9063 l -22,41.875 -75.406,87.469 a 3.5014,3.5014 0 1 0 5.3125,4.5625 l 75.688,-87.844 a 3.5004,3.5004 0 0 0 0.4687,-0.6563 l 22.125,-42.156 a 3.5004,3.5004 0 0 0 -3.1875,-5.1563 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168"
+ id="path4285" />
+ <path
+ d="m 49.41,773.83 c -7.7494,0 -14.125,6.3443 -14.125,14.094 0,7.7494 6.3756,14.125 14.125,14.125 7.7494,0 14.094,-6.3756 14.094,-14.125 a 3.5004,3.5004 0 1 0 -7,0 c 0,3.9663 -3.1274,7.125 -7.0938,7.125 -3.9663,0 -7.125,-3.1587 -7.125,-7.125 0,-3.9663 3.1587,-7.0937 7.125,-7.0937 h 0.2813 a 3.5035,3.5035 0 1 0 0.3125,-7 c -0.1998,-0.01 -0.3938,0 -0.5938,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff"
+ id="path4287" />
+ <circle
+ r="54.285713"
+ cy="642.65503"
+ cx="194.64856"
+ style="fill:#b3b3b3"
+ id="path4283" />
+ <circle
+ r="42.669113"
+ cy="642.64874"
+ cx="194.65746"
+ style="fill:#808080;stroke-width:0.78601003"
+ id="path4294" />
+ <path
+ d="m 188.35,600.96 c -20.3,3.0393 -35.875,20.541 -35.875,41.688 0,21.147 15.575,38.679 35.875,41.719 v -83.406 z m 12.625,0.031 v 83.344 c 20.284,-3.0534 35.844,-20.552 35.844,-41.688 0,-21.135 -15.56,-38.603 -35.844,-41.656 z"
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ id="path4289" />
+ <path
+ d="m -268.5,1124 c -1.0098,0.01 -2.0071,0.4765 -2.6563,1.25 l -75.719,87.844 c -0.1719,0.2111 -0.3191,0.4424 -0.4375,0.6875 l -34.12,26.143 c -0.8509,1.628 -0.1437,3.8835 1.4843,4.7343 1.6281,0.8509 3.8836,0.1437 4.7344,-1.4843 l 33.902,-25.768 75.469,-87.594 c 0.8866,-1.0076 1.1136,-2.5465 0.5558,-3.7672 -0.5578,-1.2207 -1.87,-2.0562 -3.212,-2.0453 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168"
+ sodipodi:nodetypes="cccccscccsc"
+ id="path4296" />
+ <circle
+ r="54.285713"
+ cy="-1272.595"
+ cx="413.50156"
+ transform="scale(-1)"
+ style="fill:#c5c5bf"
+ id="path4300-2" />
+ <circle
+ r="42.669113"
+ cy="-1272.5112"
+ cx="413.50345"
+ transform="scale(-1)"
+ style="fill:#808080;stroke-width:0.78601003"
+ id="path4302" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ d="m -407.2,1314.3 c 20.3,-3.0394 35.875,-20.541 35.875,-41.688 0,-21.147 -15.575,-38.679 -35.875,-41.719 v 83.406 z m -12.625,-0.031 v -83.344 c -20.284,3.0534 -35.844,20.552 -35.844,41.688 0,21.135 15.56,38.603 35.844,41.656 z"
+ id="path4304" />
+ </g>
+ <g
+ inkscape:label="HMI:Meter:0:500@/PUMP0/SLOTH,0,666"
+ transform="matrix(0.57180538,0,0,0.57180538,88.118425,163.79208)"
+ id="g19348">
+ <desc
+ id="desc132">Old Style Russian Voltmeter, from openclipart https://openclipart.org/detail/205486/voltmeter-and-ammeter</desc>
+ <path
+ inkscape:label="range"
+ sodipodi:open="true"
+ d="M 69.660373,-2.4694091 A 54.660004,54.024006 0 0 1 124.19821,-56.449318"
+ sodipodi:end="4.7101543"
+ sodipodi:start="3.1424064"
+ sodipodi:ry="54.024006"
+ sodipodi:rx="54.660004"
+ sodipodi:cy="-2.4254472"
+ sodipodi:cx="124.32036"
+ sodipodi:type="arc"
+ id="path19332"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path19334"
+ d="M 123.16695,-3.4226979 70.419817,-6.3833915"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#marker20566-2);marker-end:url(#marker23223)" />
+ </g>
+ <g
+ transform="matrix(0.03023415,0,0,0.03023415,158.84668,129.93084)"
+ id="g24628">
+ <path
+ d="m 111.68,388.94 2.4663,1.2855 71.607,37.323 2.4386,1.2711 2.4387,-1.2711 71.607,-37.323 2.4663,-1.2855 -2.4386,-1.271 -71.607,-37.323 -2.4664,-1.2855 -2.4663,1.2855 -71.607,37.323 z m 9.81,0 66.702,-34.766 66.73,34.78 -66.702,34.766 -66.73,-34.781 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4358" />
+ <path
+ d="m 174.86,371.46 -2.2812,1.375 -11.406,6.9687 -0.7187,0.4375 v 0.8438 4.4687 h 3 v -3.625 l 8.4062,-5.125 v 9.5313 l -3.5937,3.8125 -0.9375,1.0312 0.9375,1.0313 3.5937,3.8125 v 9.5312 l -8.4062,-5.125 v -3.625 h -3 v 4.4688 0.8437 l 0.7187,0.4375 11.406,6.9688 2.2812,1.375 v -2.6563 -12.812 -0.5937 l -0.4062,-0.4375 -3.0313,-3.2188 3.0313,-3.25 0.4062,-0.4375 v -0.5937 -12.781 -2.6562 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4362" />
+ <path
+ d="m 181.18,365.18 v 48.594 h 3 V 365.18 Z m 11.062,0 v 48.594 h 3 V 365.18 Z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4366" />
+ <path
+ d="m 192.36,377.09 -11.062,24.469 2.7188,1.2188 11.094,-24.469 -2.75,-1.2187 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4369" />
+ <path
+ d="m 200.8,368.12 v 2.625 37.5 h 3 v -34.906 l 8,4.5937 v 22.969 h 3 v -23.812 -0.875 l -0.75,-0.4375 -11,-6.3438 -2.25,-1.3125 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4371" />
+ <path
+ d="m 141.52,456.11 c -4.2082,0 -7.5312,3.6567 -7.5312,8 a 1.5002,1.5002 0 1 0 3,0 c 0,-2.8368 2.0679,-5 4.5312,-5 2.4633,0 4.5313,2.1632 4.5313,5 0,1.0172 -0.081,1.842 -0.5,2.6562 -0.419,0.8143 -1.2183,1.7196 -2.9688,2.7188 -4.2189,2.4083 -8.2687,7.139 -8.9375,14.062 a 1.5002,1.5002 0 0 0 1.5,1.625 h 12.281 a 1.5002,1.5002 0 1 0 0,-3 H 137.02 c 1.0026,-4.93 3.9357,-8.3089 7.0625,-10.094 2.1,-1.1987 3.4254,-2.517 4.1563,-3.9375 0.7308,-1.4205 0.8125,-2.8442 0.8125,-4.0312 0,-4.3433 -3.3231,-8 -7.5313,-8 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4373" />
+ <path
+ d="m 191.63,456.12 a 1.5002,1.5002 0 0 0 -1.0625,0.625 l -12.656,18.5 a 1.5002,1.5002 0 0 0 1.2188,2.3438 h 11.188 v 6.0625 a 1.5002,1.5002 0 1 0 3,0 v -6.0625 h 0.5312 a 1.5002,1.5002 0 1 0 0,-3 h -0.5312 v -16.969 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z m -1.3125,6.3125 v 12.156 h -8.3125 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4157-8" />
+ <path
+ d="m 260.25,456.14 a 1.5002,1.5002 0 0 0 -1.1875,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.75,0.8125 c 0.8305,-1.2895 3.2878,-2.2812 5.4062,-2.2812 3.1378,0 5.5938,2.446 5.5938,5.5625 v 3.7187 c 0,3.1165 -2.456,5.5625 -5.5938,5.5625 -2.1156,0 -4.4947,-1.271 -5.375,-2.8125 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7718,4.3125 7.9687,4.3125 4.7418,0 8.5938,-3.8296 8.5938,-8.5625 v -3.7187 c 0,-4.7328 -3.852,-8.5625 -8.5938,-8.5625 -1.7311,0 -3.5751,0.4087 -5.1562,1.25 v -6.4375 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.3125,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4397" />
+ <path
+ d="m 139.49,518.96 a 1.5002,1.5002 0 0 0 -1.1875,0.625 l -4.4687,6.0625 a 1.5002,1.5002 0 1 0 2.4062,1.7812 l 1.7813,-2.4062 v 21.5 a 1.5002,1.5002 0 1 0 3,0 v -26.062 a 1.5002,1.5002 0 0 0 -1.5313,-1.5 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4250-1" />
+ <path
+ d="m 177.16,530.1 c -4.9217,0 -8.9328,4.0208 -8.9328,8.9543 0,4.9336 4.0111,8.9544 8.9328,8.9544 4.9217,0 8.9329,-4.0208 8.9329,-8.9544 0,-4.9335 -4.0112,-8.9543 -8.9329,-8.9543 z m 0,3.0116 c 3.3023,0 5.9286,2.6325 5.9286,5.9427 0,3.3103 -2.6263,5.983 -5.9286,5.983 -3.3023,0 -5.9285,-2.6727 -5.9285,-5.983 0,-3.3102 2.6262,-5.9427 5.9285,-5.9427 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4254-5" />
+ <path
+ d="m 177.15,518.96 c -4.9246,0 -8.9375,4.0381 -8.9375,8.9687 v 11.125 a 1.5002,1.5002 0 1 0 3,0 v -11.125 c 0,-3.3131 2.6381,-5.9687 5.9375,-5.9687 2.3902,0 4.5663,1.4467 5.5,3.6562 a 1.5002,1.5002 0 1 0 2.75,-1.1875 c -1.3986,-3.3097 -4.6606,-5.4687 -8.25,-5.4687 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4258-9" />
+ <path
+ d="m 154.3,536.89 c 4.9217,0 8.9328,-4.0208 8.9328,-8.9543 0,-4.9335 -4.0111,-8.9543 -8.9328,-8.9543 -4.9217,0 -8.9329,4.0208 -8.9329,8.9543 0,4.9335 4.0112,8.9543 8.9329,8.9543 z m 0,-3.0115 c -3.3024,0 -5.9286,-2.6326 -5.9286,-5.9428 0,-3.3103 2.6262,-5.9829 5.9286,-5.9829 3.3023,0 5.9285,2.6726 5.9285,5.9829 0,3.3102 -2.6262,5.9428 -5.9285,5.9428 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4446" />
+ <path
+ d="m 161.74,526.4 a 1.5002,1.5002 0 0 0 -1.5,1.5312 v 11.125 c 0,3.3132 -2.6381,5.9688 -5.9375,5.9688 -2.3902,0 -4.535,-1.4155 -5.4687,-3.625 a 1.5060236,1.5060236 0 1 0 -2.7813,1.1562 c 1.3986,3.3097 4.6606,5.4688 8.25,5.4688 4.9246,0 8.9375,-4.0382 8.9375,-8.9688 v -11.125 a 1.5002,1.5002 0 0 0 -1.5,-1.5312 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4448" />
+ <path
+ d="m 225.02,523.02 a 1.5002,1.5002 0 0 0 -1.3438,1.5 v 18.562 a 1.5002,1.5002 0 1 0 3,0 V 526.02 h 7.7813 a 1.5002,1.5002 0 1 0 0,-3 h -9.2813 a 1.5002,1.5002 0 0 0 -0.1562,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4458" />
+ <path
+ d="m -268.26,1141.4 c 7.7494,0 14.125,-6.3444 14.125,-14.094 0,-7.7494 -6.3756,-14.125 -14.125,-14.125 -7.7494,0 -14.094,6.3756 -14.094,14.125 a 3.5004,3.5004 0 1 0 7,0 c 0,-3.9663 3.1275,-7.125 7.0938,-7.125 3.9663,0 7.125,3.1587 7.125,7.125 0,3.9664 -3.1587,7.0938 -7.125,7.0938 h -0.2813 a 3.5035,3.5035 0 1 0 -0.3125,7 c 0.1999,0.01 0.3938,0 0.5938,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff"
+ id="path4298" />
+ <rect
+ x="178.94"
+ y="1014.8"
+ width="294.29001"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect3790" />
+ <path
+ d="m 183.75,1122.6 c -65.126,0 -119.22,47.238 -129.91,109.31 h -70.969 c -12.465,0 -22.5,10.035 -22.5,22.5 0,12.465 10.035,22.5 22.5,22.5 H 53.84 c 10.674,62.09 64.77,109.34 129.91,109.34 65.138,0 119.23,-47.252 129.91,-109.34 h 137.06 c 12.465,0 22.5,-10.035 22.5,-22.5 0,-12.465 -10.035,-22.5 -22.5,-22.5 H 313.66 c -10.69,-62.1 -64.81,-109.3 -129.91,-109.3 z"
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ id="rect3792" />
+ <path
+ sodipodi:start="0"
+ sodipodi:end="6.2776887"
+ sodipodi:cx="450.52805"
+ sodipodi:cy="401.31888"
+ transform="matrix(0.67433,0,0,0.67433,-120.05,983.82)"
+ sodipodi:open="true"
+ d="M 582.35295,401.31888 A 131.82491,131.82491 0 0 1 450.70919,533.14366 131.82491,131.82491 0 0 1 318.70364,401.68117 131.82491,131.82491 0 0 1 449.9846,269.49509 131.82491,131.82491 0 0 1 582.35096,400.59429"
+ sodipodi:type="arc"
+ style="fill:#000000"
+ sodipodi:ry="131.82491"
+ sodipodi:rx="131.82491"
+ id="path3802" />
+ <path
+ d="m 183.75,1175.6 c -43.516,0 -78.781,35.266 -78.781,78.781 0,7.6898 1.1023,15.13 3.1563,22.156 l 145.66,-58.188 c -13.09,-25.386 -39.524,-42.75 -70.031,-42.75 z m 75.625,56.656 -145.69,58.188 c 13.086,25.38 39.541,42.75 70.062,42.75 43.516,0 78.781,-35.297 78.781,-78.812 v -0.4062 c -0.041,-7.535 -1.1424,-14.828 -3.1562,-21.719 z"
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ id="path3804" />
+ <rect
+ x="-236.78"
+ y="1431.9"
+ width="710"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect3794" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 64.543,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.2,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ id="path5724" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m -608.11,412.19 a 4.2093,4.2093 0 1 0 0.4204,8.408 h 30.531 l -20.81,29.428 a 4.2044,4.2044 0 0 0 3.9412,6.6213 c 9.6213,-1.1538 15.169,0.9116 18.813,4.0989 3.6435,3.1873 5.6017,7.9672 6.3585,12.98 0.7925,5.2489 -0.4779,11.143 -3.2056,15.818 -2.7276,4.6741 -6.7457,7.9791 -11.298,8.8283 -7.525,1.4038 -17.109,-2.8331 -20.6,-9.8268 a 4.2067,4.2067 0 0 0 -7.5146,3.7836 c 5.4441,10.909 18.201,16.427 29.638,14.294 7.4551,-1.3908 13.34,-6.5064 17.026,-12.822 3.6857,-6.3157 5.3719,-13.948 4.2565,-21.335 -0.9532,-6.3133 -3.4721,-13.109 -9.0911,-18.025 -4.0538,-3.5462 -9.6478,-5.8469 -16.658,-6.3585 l 20.705,-29.27 a 4.2044,4.2044 0 0 0 -3.4683,-6.6213 h -38.624 a 4.2044,4.2044 0 0 0 -0.4204,0 z"
+ id="path5726" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m -304.56,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -277.283,241.201 -289.54,229 -304.56,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5654,19.255 -19.31,19.255 -10.744,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z"
+ id="path5728" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m -361.49,229.03 a 3.9804,3.9804 0 0 0 -2.8192,1.8242 l -39.192,61.69 a 3.9804,3.9804 0 0 0 3.3719,6.0806 h 35.157 v 21.227 a 3.9804,3.9804 0 1 0 7.96,0 v -21.227 h 2.377 a 3.9804,3.9804 0 1 0 0,-7.96 h -2.377 v -57.655 a 3.9804,3.9804 0 0 0 -4.4775,-3.98 z m -3.4825,17.634 v 44.001 h -27.916 z"
+ id="path5730" />
+ <path
+ d="m -228.85,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -201.573,241.201 -213.83,229 -228.85,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5655,19.255 -19.31,19.255 -10.7445,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5732" />
+ <path
+ d="m 191.83,520.42 h 14.362 l -11.391,26.091"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round"
+ id="path5734" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round"
+ d="m 234.26,457.58 h 14.362 l -11.391,26.09"
+ id="path5736" />
+ <path
+ d="m 214.66,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5738" />
+ <path
+ d="m 165.16,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5740" />
+ <path
+ d="m -1171.1,945.11 a 2.6676,2.6676 0 0 0 -2.1117,1.1113 l -7.9464,10.78 a 2.6676,2.6676 0 1 0 4.2788,3.1675 l 3.1675,-4.2789 v 38.232 a 2.6676,2.6676 0 1 0 5.3347,0 v -46.345 a 2.6676,2.6676 0 0 0 -2.7229,-2.6673 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4250-1-3" />
+ <path
+ d="m -1144.4,945.12 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.5059 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3346 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6428 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5738-5" />
+ <path
+ d="m -1107.5,944.76 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.506 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3347 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6427 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5763" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-426.79377"
+ inkscape:transform-center-x="933.15822"
+ d="m -981.29,613.51 a 3.5004,3.5004 0 0 0 -1.8867,6.6884 l 109.11,49.911 a 3.5004,3.5004 0 1 0 2.9043,-6.3686 l -109.11,-49.911 A 3.5004,3.5004 0 0 0 -981.29,613.51 Z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5787" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-773.89442"
+ inkscape:transform-center-x="673.81332"
+ d="m -705.38,246.62 a 3.5004,3.5004 0 0 0 -4.4791,5.3134 l 78.781,90.494 a 3.5004,3.5004 0 1 0 5.2739,-4.6022 l -78.781,-90.494 A 3.5004,3.5004 0 0 0 -705.38,246.62 Z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5789" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-976.42875"
+ inkscape:transform-center-x="315.47402"
+ d="m -325.06,33.219 a 3.5004,3.5004 0 0 0 -6.2068,3.1256 l 36.88,114.17 a 3.5004,3.5004 0 1 0 6.6582,-2.1593 l -36.88,-114.18 a 3.5004,3.5004 0 0 0 -0.4514,-0.9664 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5791" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1026.1273"
+ inkscape:transform-center-x="-0.023585956"
+ d="m 9.3597,-18.399 a 3.5004,3.5004 0 0 0 -6.8671,1.0659 l -0.011,119.98 a 3.5004,3.5004 0 1 0 6.9995,-0.01 l 0.011,-119.98 a 3.5004,3.5004 0 0 0 -0.1324,-1.0584 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5793" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-165.18705"
+ inkscape:transform-center-x="1042.4061"
+ d="m -1068.4,895.12 a 1.888,3.5004 9.0712 0 0 -0.5103,6.8713 l 63.927,10.069 a 1.888,3.5004 9.0712 1 0 1.0946,-6.9134 l -63.927,-10.069 a 1.888,3.5004 9.0712 0 0 -0.5847,0.042 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5795" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-249.64231"
+ inkscape:transform-center-x="1025.4638"
+ d="m -1050.7,808.09 a 1.888,3.5004 13.749 0 0 -1.0689,6.8068 l 62.893,15.249 a 1.888,3.5004 13.749 1 0 1.6548,-6.8011 l -62.893,-15.249 a 1.888,3.5004 13.749 0 0 -0.5862,-0.01 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5797" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-325.18917"
+ inkscape:transform-center-x="1004.0664"
+ d="m -1028.4,730.25 a 1.888,3.5004 18.012 0 0 -1.5721,6.7085 l 61.585,19.882 a 1.888,3.5004 18.012 1 0 2.1559,-6.6593 l -61.585,-19.882 a 1.888,3.5004 18.012 0 0 -0.5842,-0.049 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5799" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-388.82606"
+ inkscape:transform-center-x="981.17869"
+ d="m -1004.6,664.7 a 1.888,3.5004 21.684 0 0 -1.9984,6.5941 l 60.185,23.786 a 1.888,3.5004 21.684 1 0 2.5779,-6.5076 l -60.185,-23.786 a 1.888,3.5004 21.684 0 0 -0.5798,-0.087 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5801" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-531.33261"
+ inkscape:transform-center-x="911.91157"
+ d="m -932.71,517.97 a 1.888,3.5004 30.294 0 0 -2.9631,6.2206 l 55.946,32.528 a 1.888,3.5004 30.294 1 0 3.5231,-6.0483 l -55.946,-32.528 a 1.888,3.5004 30.294 0 0 -0.5603,-0.1725 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5803" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-616.96881"
+ inkscape:transform-center-x="856.29817"
+ d="m -875.09,429.84 a 1.888,3.5004 35.84 0 0 -3.5504,5.9051 l 52.541,37.782 a 1.888,3.5004 35.84 1 0 4.0911,-5.6795 l -52.541,-37.782 a 1.888,3.5004 35.84 0 0 -0.5409,-0.2259 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5805" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-694.89709"
+ inkscape:transform-center-x="794.36465"
+ d="m -810.98,349.68 a 1.888,3.5004 41.246 0 0 -4.0909,5.5444 l 48.748,42.564 a 1.888,3.5004 41.246 1 0 4.608,-5.2689 l -48.748,-42.564 a 1.888,3.5004 41.246 0 0 -0.5173,-0.2758 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5807" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-746.16601"
+ inkscape:transform-center-x="746.41375"
+ d="m -761.37,296.96 a 1.888,3.5004 45.057 0 0 -4.4504,5.2601 l 45.811,45.71 a 1.888,3.5004 45.057 1 0 4.948,-4.9509 l -45.811,-45.71 a 1.888,3.5004 45.057 0 0 -0.4978,-0.3096 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5809" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-846.16619"
+ inkscape:transform-center-x="630.79324"
+ d="m -641.83,194.21 a 1.888,3.5004 53.363 0 0 -5.1636,4.5621 l 38.727,51.849 a 1.888,3.5004 53.363 1 0 5.6113,-4.1842 l -38.727,-51.849 a 1.888,3.5004 53.363 0 0 -0.4478,-0.3782 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5811" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-902.21965"
+ inkscape:transform-center-x="547.62857"
+ d="m -555.89,136.67 a 1.888,3.5004 58.81 0 0 -5.5733,4.0513 l 33.631,55.29 a 1.888,3.5004 58.81 1 0 5.9832,-3.6326 l -33.631,-55.29 a 1.888,3.5004 58.81 0 0 -0.4099,-0.4191 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5813" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-946.46289"
+ inkscape:transform-center-x="467.01752"
+ d="m -472.63,91.3 a 1.888,3.5004 63.803 0 0 -5.9048,3.5509 l 28.69,58.008 a 1.888,3.5004 63.803 1 0 6.2766,-3.098 l -28.69,-58.007 a 1.888,3.5004 63.803 0 0 -0.3719,-0.4531 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5815" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-976.67475"
+ inkscape:transform-center-x="400.00472"
+ d="m -403.43,60.358 a 1.888,3.5004 67.795 0 0 -6.1376,3.1313 l 24.583,59.864 a 1.888,3.5004 67.795 1 0 6.4771,-2.6536 l -24.583,-59.864 a 1.888,3.5004 67.795 0 0 -0.3394,-0.4779 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5817" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1027.0199"
+ inkscape:transform-center-x="243.16165"
+ d="m -241.53,8.9388 a 1.888,3.5004 76.746 0 0 -6.5501,2.138 l 14.969,62.96 a 1.888,3.5004 76.746 1 0 6.811,-1.6135 l -14.97,-62.961 a 1.888,3.5004 76.746 0 0 -0.2609,-0.5249 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5819" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1040.3554"
+ inkscape:transform-center-x="177.64633"
+ d="m -173.93,-4.6054 a 1.888,3.5004 80.377 0 0 -6.6723,1.719 l 10.952,63.782 a 1.888,3.5004 80.377 1 0 6.8996,-1.179 l -10.952,-63.782 a 1.888,3.5004 80.377 0 0 -0.2272,-0.5404 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5821" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1049.0131"
+ inkscape:transform-center-x="116.05553"
+ d="m -110.39,-13.338 a 1.888,3.5004 83.754 0 0 -6.762,1.323 l 7.1761,64.316 a 1.888,3.5004 83.754 1 0 6.9571,-0.7705 l -7.1762,-64.316 a 1.888,3.5004 83.754 0 0 -0.1949,-0.5529 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5823" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1053.7903"
+ inkscape:transform-center-x="58.509766"
+ d="m -51.038,-18.083 a 1.888,3.5004 86.889 0 0 -6.8243,0.9512 l 3.6479,64.612 a 1.888,3.5004 86.889 1 0 6.9888,-0.3889 l -3.6479,-64.612 a 1.888,3.5004 86.889 0 0 -0.1645,-0.5627 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5825" />
+ <path
+ d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 z"
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient10503)"
+ sodipodi:nodetypes="sssssssssss"
+ id="path6078" />
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svghmi/widgets_common.ysl2 Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,438 @@
+// widgets_common.ysl2
+
+in xsl decl labels(*ptr, name="defs_by_labels") alias call-template {
+ with "hmi_element", "$hmi_element";
+ with "labels"{text *ptr};
+ content;
+};
+
+decl optional_labels(*ptr) alias - {
+ /* TODO add some per label xslt variable to check if exist */
+ labels(*ptr){
+ with "mandatory","'no'";
+ content;
+ }
+};
+
+decl activable_labels(*ptr) alias - {
+ optional_labels(*ptr) {
+ with "subelements","'active inactive'";
+ content;
+ }
+};
+
+in xsl decl widget_desc(%name, match="widget[@type='%name']", mode="widget_desc") alias template {
+ type > «@type»
+ content;
+};
+
+in xsl decl widget_class(%name, *clsname="%nameWidget", match="widget[@type='%name']", mode="widget_class") alias template {
+ | class `text **clsname` extends Widget{
+ content;
+ | }
+};
+
+in xsl decl widget_defs(%name, match="widget[@type='%name']", mode="widget_defs") alias template {
+ param "hmi_element";
+ content;
+};
+
+in xsl decl widget_page(%name, match="widget[@type='%name']", mode="widget_page") alias template {
+ param "page_desc";
+ content;
+};
+
+decl gen_index_xhtml alias - {
+ content;
+};
+
+template "svg:*", mode="hmi_widgets" {
+ const "widget", "func:widget(@id)";
+ const "eltid","@id";
+ const "args" foreach "$widget/arg" > "«func:escape_quotes(@value)»"`if "position()!=last()" > ,`
+ const "indexes" foreach "$widget/path" {
+ choose {
+ when "not(@index)" {
+ choose {
+ when "not(@type)" {
+ warning > Widget «$widget/@type» id="«$eltid»" : No match for path "«@value»" in HMI tree
+ > undefined
+ }
+ when "@type = 'PAGE_LOCAL'"
+ > "«@value»"
+ when "@type = 'HMI_LOCAL'"
+ > hmi_local_index("«@value»")
+ otherwise
+ error > Internal error while processing widget's non indexed HMI tree path : unknown type
+ }
+ }
+ otherwise {
+ > «@index»
+ }
+ }
+ if "position()!=last()" > ,
+ }
+
+ const "minmaxes" foreach "$widget/path" {
+ choose {
+ when "@min and @max"
+ > [«@min»,«@max»]
+ otherwise
+ > undefined
+ }
+ if "position()!=last()" > ,
+ }
+
+ | "«@id»": new «$widget/@type»Widget ("«@id»",[«$args»],[«$indexes»],[«$minmaxes»],{
+ apply "$widget", mode="widget_defs" with "hmi_element",".";
+ | })`if "position()!=last()" > ,`
+}
+
+emit "preamble:local-variable-indexes" {
+ ||
+
+ let hmi_locals = {};
+ var last_remote_index = hmitree_types.length - 1;
+ var next_available_index = hmitree_types.length;
+ let cookies = new Map(document.cookie.split("; ").map(s=>s.split("=")));
+
+ const local_defaults = {
+ ||
+ foreach "$parsed_widgets/widget[starts-with(@type,'VarInit')]"{
+ if "count(path) != 1" error > VarInit «@id» must have only one variable given.
+ if "path/@type != 'PAGE_LOCAL' and path/@type != 'HMI_LOCAL'" error > VarInit «@id» only applies to HMI variable.
+ > "«path/@value»":
+ choose {
+ when "@type = 'VarInitPersistent'" > cookies.has("«path/@value»")?cookies.get("«path/@value»"):«arg[1]/@value»
+ otherwise > «arg[1]/@value»
+ }
+ > \n
+ if "position()!=last()" > ,
+ }
+ ||
+ };
+
+ const persistent_locals = new Set([
+ ||
+ foreach "$parsed_widgets/widget[@type='VarInitPersistent']"{
+ | "«path/@value»"`if "position()!=last()" > ,`
+ }
+ ||
+ ]);
+ var persistent_indexes = new Map();
+ var cache = hmitree_types.map(_ignored => undefined);
+ var updates = new Map();
+
+ function page_local_index(varname, pagename){
+ let pagevars = hmi_locals[pagename];
+ let new_index;
+ if(pagevars == undefined){
+ new_index = next_available_index++;
+ hmi_locals[pagename] = {[varname]:new_index}
+ } else {
+ let result = pagevars[varname];
+ if(result != undefined) {
+ return result;
+ }
+
+ new_index = next_available_index++;
+ pagevars[varname] = new_index;
+ }
+ let defaultval = local_defaults[varname];
+ if(defaultval != undefined) {
+ cache[new_index] = defaultval;
+ updates.set(new_index, defaultval);
+ if(persistent_locals.has(varname))
+ persistent_indexes.set(new_index, varname);
+ }
+ return new_index;
+ }
+
+ function hmi_local_index(varname){
+ return page_local_index(varname, "HMI_LOCAL");
+ }
+ ||
+}
+
+emit "preamble:widget-base-class" {
+ ||
+ var pending_widget_animates = [];
+
+ class Widget {
+ offset = 0;
+ frequency = 10; /* FIXME arbitrary default max freq. Obtain from config ? */
+ unsubscribable = false;
+ pending_animate = false;
+
+ constructor(elt_id,args,indexes,minmaxes,members){
+ this.element_id = elt_id;
+ this.element = id(elt_id);
+ this.args = args;
+ this.indexes = indexes;
+ this.minmaxes = minmaxes;
+ Object.keys(members).forEach(prop => this[prop]=members[prop]);
+ this.lastapply = indexes.map(() => undefined);
+ this.inhibit = indexes.map(() => undefined);
+ this.pending = indexes.map(() => undefined);
+ this.bound_unhinibit = this.unhinibit.bind(this);
+ }
+
+ unsub(){
+ /* remove subsribers */
+ if(!this.unsubscribable)
+ for(let i = 0; i < this.indexes.length; i++) {
+ /* flush updates pending because of inhibition */
+ let inhibition = this.inhibit[i];
+ if(inhibition != undefined){
+ clearTimeout(inhibition);
+ this.lastapply[i] = undefined;
+ this.unhinibit(i);
+ }
+ let index = this.indexes[i];
+ if(this.relativeness[i])
+ index += this.offset;
+ subscribers(index).delete(this);
+ }
+ this.offset = 0;
+ this.relativeness = undefined;
+ }
+
+ sub(new_offset=0, relativeness, container_id){
+ this.offset = new_offset;
+ this.relativeness = relativeness;
+ this.container_id = container_id ;
+ /* add this's subsribers */
+ if(!this.unsubscribable)
+ for(let i = 0; i < this.indexes.length; i++) {
+ let index = this.get_variable_index(i);
+ if(index == undefined) continue;
+ subscribers(index).add(this);
+ }
+ need_cache_apply.push(this);
+ }
+
+ apply_cache() {
+ if(!this.unsubscribable) for(let index in this.indexes){
+ /* dispatch current cache in newly opened page widgets */
+ let realindex = this.get_variable_index(index);
+ if(realindex == undefined) continue;
+ let cached_val = cache[realindex];
+ if(cached_val != undefined)
+ this._dispatch(cached_val, cached_val, index);
+ }
+ }
+
+ get_variable_index(varnum) {
+ let index = this.indexes[varnum];
+ if(typeof(index) == "string"){
+ index = page_local_index(index, this.container_id);
+ } else {
+ if(this.relativeness[varnum]){
+ index += this.offset;
+ }
+ }
+ return index;
+ }
+
+ overshot(new_val, max) {
+ }
+
+ undershot(new_val, min) {
+ }
+
+ clip_min_max(index, new_val) {
+ let minmax = this.minmaxes[index];
+ if(minmax !== undefined && typeof new_val == "number") {
+ let [min,max] = minmax;
+ if(new_val < min){
+ this.undershot(new_val, min);
+ return min;
+ }
+ if(new_val > max){
+ this.overshot(new_val, max);
+ return max;
+ }
+ }
+ return new_val;
+ }
+
+ change_hmi_value(index, opstr) {
+ let realindex = this.get_variable_index(index);
+ if(realindex == undefined) return undefined;
+ let old_val = cache[realindex];
+ let new_val = eval_operation_string(old_val, opstr);
+ new_val = this.clip_min_max(index, new_val);
+ return apply_hmi_value(realindex, new_val);
+ }
+
+ _apply_hmi_value(index, new_val) {
+ let realindex = this.get_variable_index(index);
+ if(realindex == undefined) return undefined;
+ new_val = this.clip_min_max(index, new_val);
+ return apply_hmi_value(realindex, new_val);
+ }
+
+ unhinibit(index){
+ this.inhibit[index] = undefined;
+ let new_val = this.pending[index];
+ this.pending[index] = undefined;
+ return this.apply_hmi_value(index, new_val);
+ }
+
+ apply_hmi_value(index, new_val) {
+ if(this.inhibit[index] == undefined){
+ let now = Date.now();
+ let min_interval = 1000/this.frequency;
+ let lastapply = this.lastapply[index];
+ if(lastapply == undefined || now > lastapply + min_interval){
+ this.lastapply[index] = now;
+ return this._apply_hmi_value(index, new_val);
+ }
+ else {
+ let elapsed = now - lastapply;
+ this.pending[index] = new_val;
+ this.inhibit[index] = setTimeout(this.bound_unhinibit, min_interval - elapsed, index);
+ }
+ }
+ else {
+ this.pending[index] = new_val;
+ return new_val;
+ }
+ }
+
+ new_hmi_value(index, value, oldval) {
+ // TODO avoid searching, store index at sub()
+ for(let i = 0; i < this.indexes.length; i++) {
+ let refindex = this.get_variable_index(i);
+ if(refindex == undefined) continue;
+
+ if(index == refindex) {
+ this._dispatch(value, oldval, i);
+ break;
+ }
+ }
+ }
+
+ _dispatch(value, oldval, varnum) {
+ let dispatch = this.dispatch;
+ if(dispatch != undefined){
+ try {
+ dispatch.call(this, value, oldval, varnum);
+ } catch(err) {
+ console.log(err);
+ }
+ }
+ }
+
+ _animate(){
+ this.animate();
+ this.pending_animate = false;
+ }
+
+ request_animate(){
+ if(!this.pending_animate){
+ pending_widget_animates.push(this);
+ this.pending_animate = true;
+ requestHMIAnimation();
+ }
+
+ }
+
+ activate_activable(eltsub) {
+ eltsub.inactive.style.display = "none";
+ eltsub.active.style.display = "";
+ }
+
+ inactivate_activable(eltsub) {
+ eltsub.active.style.display = "none";
+ eltsub.inactive.style.display = "";
+ }
+ }
+ ||
+}
+
+const "excluded_types", "str:split('Page VarInit VarInitPersistent')";
+
+// Key to filter unique types
+key "TypesKey", "widget", "@type";
+
+emit "declarations:hmi-classes" {
+ const "used_widget_types", """$parsed_widgets/widget[
+ generate-id() = generate-id(key('TypesKey', @type)) and
+ not(@type = $excluded_types)]""";
+ apply "$used_widget_types", mode="widget_class";
+}
+
+template "widget", mode="widget_class"
+||
+class «@type»Widget extends Widget{
+ /* empty class, as «@type» widget didn't provide any */
+}
+||
+
+const "included_ids","$parsed_widgets/widget[not(@type = $excluded_types) and not(@id = $discardable_elements/@id)]/@id";
+const "hmi_widgets","$hmi_elements[@id = $included_ids]";
+const "result_widgets","$result_svg_ns//*[@id = $hmi_widgets/@id]";
+
+emit "declarations:hmi-elements" {
+ | var hmi_widgets = {
+ apply "$hmi_widgets", mode="hmi_widgets";
+ | }
+}
+
+function "defs_by_labels" {
+ param "labels","''";
+ param "mandatory","'yes'";
+ param "subelements","/..";
+ param "hmi_element";
+ const "widget_type","@type";
+ foreach "str:split($labels)" {
+ const "name",".";
+ const "elt","$result_widgets[@id = $hmi_element/@id]//*[@inkscape:label=$name][1]";
+ choose {
+ when "not($elt/@id)" {
+ if "$mandatory='yes'" {
+ error > «$widget_type» widget must have a «$name» element
+ }
+ // otherwise produce nothing
+ }
+ otherwise {
+ | «$name»_elt: id("«$elt/@id»"),
+ if "$subelements" {
+ | «$name»_sub: {
+ foreach "str:split($subelements)" {
+ const "subname",".";
+ const "subelt","$elt/*[@inkscape:label=$subname][1]";
+ choose {
+ when "not($subelt/@id)" {
+ if "$mandatory='yes'" {
+ error > «$widget_type» widget must have a «$name»/«$subname» element
+ }
+ | /* missing «$name»/«$subname» element */
+ }
+ otherwise {
+ | "«$subname»": id("«$subelt/@id»")`if "position()!=last()" > ,`
+ }
+ }
+ }
+ | },
+ }
+ }
+ }
+ }
+}
+
+def "func:escape_quotes" {
+ param "txt";
+ // have to use a python string to enter escaped quote
+ // const "frstln", "string-length($frst)";
+ choose {
+ when !"contains($txt,'\"')"! {
+ result !"concat(substring-before($txt,'\"'),'\\\"',func:escape_quotes(substring-after($txt,'\"')))"!;
+ }
+ otherwise {
+ result "$txt";
+ }
+ }
+}
+
--- a/targets/Linux/plc_Linux_main.c Wed Jun 30 15:44:32 2021 +0200
+++ b/targets/Linux/plc_Linux_main.c Thu Sep 02 21:36:29 2021 +0200
@@ -235,3 +235,57 @@
{
pthread_mutex_lock(&python_mutex);
}
+
+struct RT_to_nRT_signal_s {
+ pthread_cond_t WakeCond;
+ pthread_mutex_t WakeCondLock;
+};
+
+typedef struct RT_to_nRT_signal_s RT_to_nRT_signal_t;
+
+#define _LogAndReturnNull(text) \
+ {\
+ char mstr[256] = text " for ";\
+ strncat(mstr, name, 255);\
+ LogMessage(LOG_CRITICAL, mstr, strlen(mstr));\
+ return NULL;\
+ }
+
+void *create_RT_to_nRT_signal(char* name){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)malloc(sizeof(RT_to_nRT_signal_t));
+
+ if(!sig)
+ _LogAndReturnNull("Failed allocating memory for RT_to_nRT signal");
+
+ pthread_cond_init(&sig->WakeCond, NULL);
+ pthread_mutex_init(&sig->WakeCondLock, NULL);
+
+ return (void*)sig;
+}
+
+void delete_RT_to_nRT_signal(void* handle){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+
+ pthread_cond_destroy(&sig->WakeCond);
+ pthread_mutex_destroy(&sig->WakeCondLock);
+
+ free(sig);
+}
+
+int wait_RT_to_nRT_signal(void* handle){
+ int ret;
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+ pthread_mutex_lock(&sig->WakeCondLock);
+ ret = pthread_cond_wait(&sig->WakeCond, &sig->WakeCondLock);
+ pthread_mutex_unlock(&sig->WakeCondLock);
+ return ret;
+}
+
+int unblock_RT_to_nRT_signal(void* handle){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+ return pthread_cond_signal(&sig->WakeCond);
+}
+
+void nRT_reschedule(void){
+ sched_yield();
+}
--- a/targets/Win32/plc_Win32_main.c Wed Jun 30 15:44:32 2021 +0200
+++ b/targets/Win32/plc_Win32_main.c Thu Sep 02 21:36:29 2021 +0200
@@ -26,10 +26,10 @@
return res;
}
-struct _timeb timetmp;
+struct timeb timetmp;
void PLC_GetTime(IEC_TIME *CURRENT_TIME)
{
- _ftime(&timetmp);
+ ftime(&timetmp);
(*CURRENT_TIME).tv_sec = timetmp.time;
(*CURRENT_TIME).tv_nsec = timetmp.millitm * 1000000;
@@ -262,3 +262,63 @@
DeleteCriticalSection(&Atomic64CS);
}
+struct RT_to_nRT_signal_s {
+ HANDLE sem;
+};
+
+typedef struct RT_to_nRT_signal_s RT_to_nRT_signal_t;
+
+#define _LogAndReturnNull(text) \
+ {\
+ char mstr[256] = text " for ";\
+ strncat(mstr, name, 255);\
+ LogMessage(LOG_CRITICAL, mstr, strlen(mstr));\
+ return NULL;\
+ }
+
+void *create_RT_to_nRT_signal(char* name){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)malloc(sizeof(RT_to_nRT_signal_t));
+
+ if(!sig)
+ _LogAndReturnNull("Failed allocating memory for RT_to_nRT signal");
+
+ sig->sem = CreateSemaphore(
+ NULL, // default security attributes
+ 1, // initial count
+ 1, // maximum count
+ NULL); // unnamed semaphore
+
+ if(sig->sem == NULL)
+ {
+ char mstr[256];
+ snprintf(mstr, 255, "startPLC CreateSemaphore %s error: %d\n", name, GetLastError());
+ LogMessage(LOG_CRITICAL, mstr, strlen(mstr));
+ return NULL;
+ }
+
+ return (void*)sig;
+}
+
+void delete_RT_to_nRT_signal(void* handle){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+
+ CloseHandle(python_sem);
+
+ free(sig);
+}
+
+int wait_RT_to_nRT_signal(void* handle){
+ int ret;
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+ return WaitForSingleObject(sig->sem, INFINITE);
+}
+
+int unblock_RT_to_nRT_signal(void* handle){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+ return ReleaseSemaphore(sig->sem, 1, NULL);
+}
+
+void nRT_reschedule(void){
+ SwitchToThread();
+}
+
--- a/targets/Xenomai/__init__.py Wed Jun 30 15:44:32 2021 +0200
+++ b/targets/Xenomai/__init__.py Thu Sep 02 21:36:29 2021 +0200
@@ -37,7 +37,7 @@
if xeno_config:
from util.ProcessLogger import ProcessLogger
status, result, _err_result = ProcessLogger(self.CTRInstance.logger,
- xeno_config + " --skin=posix --skin=alchemy --no-auto-init --"+flagsname,
+ xeno_config + " --skin=posix --skin=alchemy "+flagsname,
no_stdout=True).spin()
if status:
self.CTRInstance.logger.write_error(_("Unable to get Xenomai's %s \n") % flagsname)
@@ -45,9 +45,9 @@
return []
def getBuilderLDFLAGS(self):
- xeno_ldflags = self.getXenoConfig("ldflags")
+ xeno_ldflags = self.getXenoConfig("--no-auto-init --ldflags")
return toolchain_gcc.getBuilderLDFLAGS(self) + xeno_ldflags + ["-shared"]
def getBuilderCFLAGS(self):
- xeno_cflags = self.getXenoConfig("cflags")
+ xeno_cflags = self.getXenoConfig("--cflags")
return toolchain_gcc.getBuilderCFLAGS(self) + xeno_cflags + ["-fPIC"]
--- a/targets/Xenomai/plc_Xenomai_main.c Wed Jun 30 15:44:32 2021 +0200
+++ b/targets/Xenomai/plc_Xenomai_main.c Thu Sep 02 21:36:29 2021 +0200
@@ -18,24 +18,12 @@
unsigned int PLC_state = 0;
#define PLC_STATE_TASK_CREATED 1
-#define PLC_STATE_DEBUG_FILE_OPENED 2
-#define PLC_STATE_DEBUG_PIPE_CREATED 4
-#define PLC_STATE_PYTHON_FILE_OPENED 8
-#define PLC_STATE_PYTHON_PIPE_CREATED 16
-#define PLC_STATE_WAITDEBUG_FILE_OPENED 32
-#define PLC_STATE_WAITDEBUG_PIPE_CREATED 64
-#define PLC_STATE_WAITPYTHON_FILE_OPENED 128
-#define PLC_STATE_WAITPYTHON_PIPE_CREATED 256
-
-#define WAITDEBUG_PIPE_DEVICE "/dev/rtp0"
-#define WAITDEBUG_PIPE_MINOR 0
-#define DEBUG_PIPE_DEVICE "/dev/rtp1"
-#define DEBUG_PIPE_MINOR 1
-#define WAITPYTHON_PIPE_DEVICE "/dev/rtp2"
-#define WAITPYTHON_PIPE_MINOR 2
-#define PYTHON_PIPE_DEVICE "/dev/rtp3"
-#define PYTHON_PIPE_MINOR 3
-#define PIPE_SIZE 1
+#define PLC_STATE_DEBUG_PIPE_CREATED 2
+#define PLC_STATE_PYTHON_PIPE_CREATED 8
+#define PLC_STATE_WAITDEBUG_PIPE_CREATED 16
+#define PLC_STATE_WAITPYTHON_PIPE_CREATED 32
+
+#define PIPE_SIZE 1
// rt-pipes commands
@@ -64,14 +52,36 @@
}
RT_TASK PLC_task;
-RT_PIPE WaitDebug_pipe;
-RT_PIPE WaitPython_pipe;
-RT_PIPE Debug_pipe;
-RT_PIPE Python_pipe;
-int WaitDebug_pipe_fd;
-int WaitPython_pipe_fd;
-int Debug_pipe_fd;
-int Python_pipe_fd;
+void *WaitDebug_handle;
+void *WaitPython_handle;
+void *Debug_handle;
+void *Python_handle;
+void *svghmi_handle;
+
+struct RT_to_nRT_signal_s {
+ int used;
+ RT_PIPE pipe;
+ int pipe_fd;
+ char *name;
+};
+typedef struct RT_to_nRT_signal_s RT_to_nRT_signal_t;
+
+#define max_RT_to_nRT_signals 16
+
+static RT_to_nRT_signal_t RT_to_nRT_signal_pool[max_RT_to_nRT_signals];
+
+int recv_RT_to_nRT_signal(void* handle, char* payload){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+ if(!sig->used) return -EINVAL;
+ return read(sig->pipe_fd, payload, 1);
+}
+
+int send_RT_to_nRT_signal(void* handle, char payload){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+ if(!sig->used) return -EINVAL;
+ return rt_pipe_write(&sig->pipe, &payload, 1, P_NORMAL);
+}
+
int PLC_shutdown = 0;
@@ -91,22 +101,94 @@
if (PLC_shutdown) break;
rt_task_wait_period(NULL);
}
- /* since xenomai 3 it is not enough to close()
+ /* since xenomai 3 it is not enough to close()
file descriptor to unblock read()... */
{
/* explicitely finish python thread */
char msg = PYTHON_FINISH;
- rt_pipe_write(&WaitPython_pipe, &msg, sizeof(msg), P_NORMAL);
+ send_RT_to_nRT_signal(WaitPython_handle, msg);
}
{
/* explicitely finish debug thread */
char msg = DEBUG_FINISH;
- rt_pipe_write(&WaitDebug_pipe, &msg, sizeof(msg), P_NORMAL);
+ send_RT_to_nRT_signal(WaitDebug_handle, msg);
}
}
static unsigned long __debug_tick;
+#define _LogAndReturnNull(text) \
+ {\
+ char mstr[256] = text " for ";\
+ strncat(mstr, name, 255);\
+ LogMessage(LOG_CRITICAL, mstr, strlen(mstr));\
+ return NULL;\
+ }
+
+void *create_RT_to_nRT_signal(char* name){
+ int new_index = -1;
+ RT_to_nRT_signal_t *sig;
+ char pipe_dev[64];
+
+ /* find a free slot */
+ for(int i=0; i < max_RT_to_nRT_signals; i++){
+ sig = &RT_to_nRT_signal_pool[i];
+ if(!sig->used){
+ new_index = i;
+ break;
+ }
+ }
+
+ /* fail if none found */
+ if(new_index == -1) {
+ _LogAndReturnNull("Maximum count of RT-PIPE reached while creating pipe");
+ }
+
+ /* create rt pipe */
+ if(rt_pipe_create(&sig->pipe, name, new_index, PIPE_SIZE) < 0){
+ _LogAndReturnNull("Failed opening real-time end of RT-PIPE");
+ }
+
+ /* open pipe's userland */
+ snprintf(pipe_dev, 64, "/dev/rtp%d", new_index);
+ if((sig->pipe_fd = open(pipe_dev, O_RDWR)) == -1){
+ rt_pipe_delete(&sig->pipe);
+ _LogAndReturnNull("Failed opening non-real-time end of RT-PIPE");
+ }
+
+ sig->used = 1;
+ sig->name = name;
+
+ return sig;
+}
+
+void delete_RT_to_nRT_signal(void* handle){
+ RT_to_nRT_signal_t *sig = (RT_to_nRT_signal_t*)handle;
+
+ if(!sig->used) return;
+
+ rt_pipe_delete(&sig->pipe);
+
+ close(sig->pipe_fd);
+
+ sig->used = 0;
+}
+
+int wait_RT_to_nRT_signal(void* handle){
+ char cmd;
+ int ret = recv_RT_to_nRT_signal(handle, &cmd);
+ return (ret == 1) ? 0 : ((ret == 0) ? ENODATA : -ret);
+}
+
+int unblock_RT_to_nRT_signal(void* handle){
+ int ret = send_RT_to_nRT_signal(handle, 0);
+ return (ret == 1) ? 0 : ((ret == 0) ? EINVAL : -ret);
+}
+
+void nRT_reschedule(void){
+ sched_yield();
+}
+
void PLC_cleanup_all(void)
{
if (PLC_state & PLC_STATE_TASK_CREATED) {
@@ -115,45 +197,24 @@
}
if (PLC_state & PLC_STATE_WAITDEBUG_PIPE_CREATED) {
- rt_pipe_delete(&WaitDebug_pipe);
+ delete_RT_to_nRT_signal(WaitDebug_handle);
PLC_state &= ~PLC_STATE_WAITDEBUG_PIPE_CREATED;
}
- if (PLC_state & PLC_STATE_WAITDEBUG_FILE_OPENED) {
- close(WaitDebug_pipe_fd);
- PLC_state &= ~PLC_STATE_WAITDEBUG_FILE_OPENED;
- }
-
if (PLC_state & PLC_STATE_WAITPYTHON_PIPE_CREATED) {
- rt_pipe_delete(&WaitPython_pipe);
+ delete_RT_to_nRT_signal(WaitPython_handle);
PLC_state &= ~PLC_STATE_WAITPYTHON_PIPE_CREATED;
}
- if (PLC_state & PLC_STATE_WAITPYTHON_FILE_OPENED) {
- close(WaitPython_pipe_fd);
- PLC_state &= ~PLC_STATE_WAITPYTHON_FILE_OPENED;
- }
-
if (PLC_state & PLC_STATE_DEBUG_PIPE_CREATED) {
- rt_pipe_delete(&Debug_pipe);
+ delete_RT_to_nRT_signal(Debug_handle);
PLC_state &= ~PLC_STATE_DEBUG_PIPE_CREATED;
}
- if (PLC_state & PLC_STATE_DEBUG_FILE_OPENED) {
- close(Debug_pipe_fd);
- PLC_state &= ~PLC_STATE_DEBUG_FILE_OPENED;
- }
-
if (PLC_state & PLC_STATE_PYTHON_PIPE_CREATED) {
- rt_pipe_delete(&Python_pipe);
+ delete_RT_to_nRT_signal(Python_handle);
PLC_state &= ~PLC_STATE_PYTHON_PIPE_CREATED;
}
-
- if (PLC_state & PLC_STATE_PYTHON_FILE_OPENED) {
- close(Python_pipe_fd);
- PLC_state &= ~PLC_STATE_PYTHON_FILE_OPENED;
- }
-
}
int stopPLC()
@@ -197,49 +258,27 @@
/* no memory swapping for that process */
mlockall(MCL_CURRENT | MCL_FUTURE);
+ /* memory initialization */
PLC_shutdown = 0;
-
- /*** RT Pipes creation and opening ***/
+ bzero(RT_to_nRT_signal_pool, sizeof(RT_to_nRT_signal_pool));
+
+ /*** RT Pipes ***/
/* create Debug_pipe */
- if(rt_pipe_create(&Debug_pipe, "Debug_pipe", DEBUG_PIPE_MINOR, PIPE_SIZE) < 0)
- _startPLCLog(FO "Debug_pipe real-time end");
+ if(!(Debug_handle = create_RT_to_nRT_signal("Debug_pipe"))) goto error;
PLC_state |= PLC_STATE_DEBUG_PIPE_CREATED;
- /* open Debug_pipe*/
- if((Debug_pipe_fd = open(DEBUG_PIPE_DEVICE, O_RDWR)) == -1)
- _startPLCLog(FO DEBUG_PIPE_DEVICE);
- PLC_state |= PLC_STATE_DEBUG_FILE_OPENED;
-
/* create Python_pipe */
- if(rt_pipe_create(&Python_pipe, "Python_pipe", PYTHON_PIPE_MINOR, PIPE_SIZE) < 0)
- _startPLCLog(FO "Python_pipe real-time end");
+ if(!(Python_handle = create_RT_to_nRT_signal("Python_pipe"))) goto error;
PLC_state |= PLC_STATE_PYTHON_PIPE_CREATED;
- /* open Python_pipe*/
- if((Python_pipe_fd = open(PYTHON_PIPE_DEVICE, O_RDWR)) == -1)
- _startPLCLog(FO PYTHON_PIPE_DEVICE);
- PLC_state |= PLC_STATE_PYTHON_FILE_OPENED;
-
/* create WaitDebug_pipe */
- if(rt_pipe_create(&WaitDebug_pipe, "WaitDebug_pipe", WAITDEBUG_PIPE_MINOR, PIPE_SIZE) < 0)
- _startPLCLog(FO "WaitDebug_pipe real-time end");
+ if(!(WaitDebug_handle = create_RT_to_nRT_signal("WaitDebug_pipe"))) goto error;
PLC_state |= PLC_STATE_WAITDEBUG_PIPE_CREATED;
- /* open WaitDebug_pipe*/
- if((WaitDebug_pipe_fd = open(WAITDEBUG_PIPE_DEVICE, O_RDWR)) == -1)
- _startPLCLog(FO WAITDEBUG_PIPE_DEVICE);
- PLC_state |= PLC_STATE_WAITDEBUG_FILE_OPENED;
-
/* create WaitPython_pipe */
- if(rt_pipe_create(&WaitPython_pipe, "WaitPython_pipe", WAITPYTHON_PIPE_MINOR, PIPE_SIZE) < 0)
- _startPLCLog(FO "WaitPython_pipe real-time end");
+ if(!(WaitPython_handle = create_RT_to_nRT_signal("WaitPython_pipe"))) goto error;
PLC_state |= PLC_STATE_WAITPYTHON_PIPE_CREATED;
- /* open WaitPython_pipe*/
- if((WaitPython_pipe_fd = open(WAITPYTHON_PIPE_DEVICE, O_RDWR)) == -1)
- _startPLCLog(FO WAITPYTHON_PIPE_DEVICE);
- PLC_state |= PLC_STATE_WAITPYTHON_FILE_OPENED;
-
/*** create PLC task ***/
if(rt_task_create(&PLC_task, "PLC_task", 0, 50, T_JOINABLE))
_startPLCLog("Failed creating PLC task");
@@ -279,11 +318,11 @@
void LeaveDebugSection(void)
{
- if(AtomicCompareExchange( &debug_state,
+ if(AtomicCompareExchange( &debug_state,
DEBUG_BUSY, DEBUG_FREE) == DEBUG_BUSY){
char msg = DEBUG_UNLOCK;
/* signal to NRT for wakeup */
- rt_pipe_write(&Debug_pipe, &msg, sizeof(msg), P_NORMAL);
+ send_RT_to_nRT_signal(Debug_handle, msg);
}
}
@@ -295,8 +334,8 @@
int res;
if (PLC_shutdown) return -1;
/* Wait signal from PLC thread */
- res = read(WaitDebug_pipe_fd, &cmd, sizeof(cmd));
- if (res == sizeof(cmd) && cmd == DEBUG_PENDING_DATA){
+ res = recv_RT_to_nRT_signal(WaitDebug_handle, &cmd);
+ if (res == 1 && cmd == DEBUG_PENDING_DATA){
*tick = __debug_tick;
return 0;
}
@@ -311,7 +350,7 @@
/* remember tick */
__debug_tick = __tick;
/* signal debugger thread it can read data */
- rt_pipe_write(&WaitDebug_pipe, &msg, sizeof(msg), P_NORMAL);
+ send_RT_to_nRT_signal(WaitDebug_handle, msg);
}
int suspendDebug(int disable)
@@ -323,7 +362,7 @@
DEBUG_FREE,
DEBUG_BUSY) != DEBUG_FREE &&
cmd == DEBUG_UNLOCK){
- if(read(Debug_pipe_fd, &cmd, sizeof(cmd)) != sizeof(cmd)){
+ if(recv_RT_to_nRT_signal(Debug_handle, &cmd) != 1){
return -1;
}
}
@@ -343,11 +382,11 @@
static long python_state = PYTHON_FREE;
int WaitPythonCommands(void)
-{
+{
char cmd;
if (PLC_shutdown) return -1;
/* Wait signal from PLC thread */
- if(read(WaitPython_pipe_fd, &cmd, sizeof(cmd))==sizeof(cmd) && cmd==PYTHON_PENDING_COMMAND){
+ if(recv_RT_to_nRT_signal(WaitPython_handle, &cmd) == 1 && cmd==PYTHON_PENDING_COMMAND){
return 0;
}
return -1;
@@ -357,7 +396,7 @@
void UnBlockPythonCommands(void)
{
char msg = PYTHON_PENDING_COMMAND;
- rt_pipe_write(&WaitPython_pipe, &msg, sizeof(msg), P_NORMAL);
+ send_RT_to_nRT_signal(WaitPython_handle, msg);
}
int TryLockPython(void)
@@ -378,7 +417,7 @@
PYTHON_FREE,
PYTHON_BUSY) != PYTHON_FREE &&
cmd == UNLOCK_PYTHON){
- read(Python_pipe_fd, &cmd, sizeof(cmd));
+ recv_RT_to_nRT_signal(Python_handle, &cmd);
}
}
@@ -390,7 +429,7 @@
PYTHON_FREE) == PYTHON_BUSY){
if(rt_task_self()){/*is that the real time task ?*/
char cmd = UNLOCK_PYTHON;
- rt_pipe_write(&Python_pipe, &cmd, sizeof(cmd), P_NORMAL);
+ send_RT_to_nRT_signal(Python_handle, cmd);
}/* otherwise, no signaling from non real time */
} /* as plc does not wait for lock. */
}
--- a/targets/beremiz.h Wed Jun 30 15:44:32 2021 +0200
+++ b/targets/beremiz.h Thu Sep 02 21:36:29 2021 +0200
@@ -26,5 +26,10 @@
#endif
long AtomicCompareExchange(long* atomicvar,long compared, long exchange);
+void *create_RT_to_nRT_signal(char* name);
+void delete_RT_to_nRT_signal(void* handle);
+int wait_RT_to_nRT_signal(void* handle);
+int unblock_RT_to_nRT_signal(void* handle);
+void nRT_reschedule(void);
#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi/beremiz.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi/plc.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,991 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/>
+ <contentHeader name="Unnamed" modificationDateTime="2021-05-13T10:44:29">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="5" y="5"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes/>
+ <pous>
+ <pou name="MainStuff" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="TargetPressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="selection">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="Pump0">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump1">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump2">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump3">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump4">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump5">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump6">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump7">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="60" width="127">
+ <position x="595" y="50"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="100"/>
+ <position x="582" y="100"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="445" y="65"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="1" typeName="PumpControl" instanceName="Pump1" executionOrderId="0" height="60" width="127">
+ <position x="595" y="280"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="330"/>
+ <position x="582" y="330"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="2" typeName="PumpControl" instanceName="Pump2" executionOrderId="0" height="60" width="127">
+ <position x="595" y="160"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="210"/>
+ <position x="582" y="210"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="3" typeName="PumpControl" instanceName="Pump3" executionOrderId="0" height="60" width="127">
+ <position x="595" y="395"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="445"/>
+ <position x="582" y="445"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="6" typeName="PumpControl" instanceName="Pump4" executionOrderId="0" height="60" width="127">
+ <position x="595" y="515"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="565"/>
+ <position x="582" y="565"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="7" typeName="PumpControl" instanceName="Pump5" executionOrderId="0" height="60" width="127">
+ <position x="595" y="645"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="11">
+ <position x="595" y="675"/>
+ <position x="570" y="675"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="695"/>
+ <position x="582" y="695"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="8" typeName="PumpControl" instanceName="Pump6" executionOrderId="0" height="60" width="127">
+ <position x="595" y="775"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="825"/>
+ <position x="582" y="825"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="9" typeName="PumpControl" instanceName="Pump7" executionOrderId="0" height="60" width="127">
+ <position x="595" y="895"/>
+ <inputVariables>
+ <variable formalParameter="Pump">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="10">
+ <position x="595" y="925"/>
+ <position x="560" y="925"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="5">
+ <position x="595" y="945"/>
+ <position x="582" y="945"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <inVariable localId="10" executionOrderId="0" height="25" width="20" negated="false">
+ <position x="540" y="915"/>
+ <connectionPointOut>
+ <relPosition x="20" y="10"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <inVariable localId="11" executionOrderId="0" height="25" width="20" negated="false">
+ <position x="550" y="665"/>
+ <connectionPointOut>
+ <relPosition x="20" y="10"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ </FBD>
+ </body>
+ </pou>
+ <pou name="PumpControl" pouType="functionBlock">
+ <interface>
+ <inputVars>
+ <variable name="Pump">
+ <type>
+ <derived name="HMI_NODE"/>
+ </type>
+ <initialValue>
+ <simpleValue value="1"/>
+ </initialValue>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="Pressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ <inputVars>
+ <variable name="TargetPressure">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="Sloth">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="boolout">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="boolin">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ <initialValue>
+ <simpleValue value="True"/>
+ </initialValue>
+ </variable>
+ <variable name="strout">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ <variable name="strin">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ <initialValue>
+ <simpleValue value="blup"/>
+ </initialValue>
+ </variable>
+ <variable name="floating">
+ <type>
+ <derived name="HMI_REAL"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="150" y="100"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <inOutVariable localId="4" executionOrderId="0" height="30" width="60" negatedOut="false" negatedIn="false">
+ <position x="510" y="80"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="6" formalParameter="OUT">
+ <position x="510" y="95"/>
+ <position x="470" y="95"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inOutVariable>
+ <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65">
+ <position x="405" y="65"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="4">
+ <position x="405" y="95"/>
+ <position x="385" y="95"/>
+ <position x="385" y="50"/>
+ <position x="580" y="50"/>
+ <position x="580" y="95"/>
+ <position x="570" y="95"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="405" y="115"/>
+ <position x="360" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="150" y="135"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65">
+ <position x="295" y="85"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="295" y="115"/>
+ <position x="275" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="1">
+ <position x="295" y="135"/>
+ <position x="285" y="135"/>
+ <position x="285" y="150"/>
+ <position x="225" y="150"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="190"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="435" y="205"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="8" formalParameter="OUT">
+ <position x="435" y="220"/>
+ <position x="410" y="220"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Pressure</expression>
+ </outVariable>
+ <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65">
+ <position x="345" y="190"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="2">
+ <position x="345" y="220"/>
+ <position x="335" y="220"/>
+ <position x="335" y="205"/>
+ <position x="300" y="205"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="9">
+ <position x="345" y="240"/>
+ <position x="300" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="225"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>100</expression>
+ </inVariable>
+ <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65">
+ <position x="360" y="345"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="13" formalParameter="OUT">
+ <position x="360" y="375"/>
+ <position x="330" y="375"/>
+ <position x="330" y="332"/>
+ <position x="440" y="332"/>
+ <position x="440" y="300"/>
+ <position x="430" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="14">
+ <position x="360" y="395"/>
+ <position x="322" y="395"/>
+ <position x="322" y="400"/>
+ <position x="285" y="400"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false">
+ <position x="495" y="355"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="10" formalParameter="OUT">
+ <position x="495" y="370"/>
+ <position x="450" y="370"/>
+ <position x="450" y="375"/>
+ <position x="425" y="375"/>
+ </connection>
+ </connectionPointIn>
+ <expression>strout</expression>
+ </outVariable>
+ <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="145" y="285"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115">
+ <position x="315" y="270"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="12">
+ <position x="315" y="300"/>
+ <position x="270" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false">
+ <position x="235" y="385"/>
+ <connectionPointOut>
+ <relPosition x="50" y="15"/>
+ </connectionPointOut>
+ <expression>strin</expression>
+ </inVariable>
+ <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="690" y="210"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>boolin</expression>
+ </inVariable>
+ <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false">
+ <position x="915" y="240"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="17" formalParameter="OUT">
+ <position x="915" y="255"/>
+ <position x="880" y="255"/>
+ </connection>
+ </connectionPointIn>
+ <expression>boolout</expression>
+ </outVariable>
+ <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65">
+ <position x="815" y="225"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="15">
+ <position x="815" y="255"/>
+ <position x="762" y="255"/>
+ <position x="762" y="225"/>
+ <position x="750" y="225"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="21" formalParameter="OUT">
+ <position x="815" y="275"/>
+ <position x="750" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="455" y="260"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65">
+ <position x="585" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="18">
+ <position x="585" y="275"/>
+ <position x="530" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="20">
+ <position x="585" y="295"/>
+ <position x="555" y="295"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="535" y="280"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>2</expression>
+ </inVariable>
+ <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65">
+ <position x="685" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="19" formalParameter="OUT">
+ <position x="685" y="275"/>
+ <position x="650" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="22">
+ <position x="685" y="295"/>
+ <position x="670" y="295"/>
+ <position x="670" y="330"/>
+ <position x="650" y="330"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="630" y="315"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <outVariable localId="23" executionOrderId="0" height="25" width="75" negated="false">
+ <position x="935" y="120"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="25" formalParameter="OUT">
+ <position x="935" y="130"/>
+ <position x="922" y="130"/>
+ <position x="922" y="110"/>
+ <position x="910" y="110"/>
+ </connection>
+ </connectionPointIn>
+ <expression>floating</expression>
+ </outVariable>
+ <inVariable localId="24" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="615" y="65"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <block localId="25" typeName="DIV" executionOrderId="0" height="60" width="65">
+ <position x="845" y="80"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="27" formalParameter="OUT">
+ <position x="845" y="110"/>
+ <position x="822" y="110"/>
+ <position x="822" y="80"/>
+ <position x="800" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="26">
+ <position x="845" y="130"/>
+ <position x="810" y="130"/>
+ <position x="810" y="135"/>
+ <position x="800" y="135"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="26" executionOrderId="0" height="30" width="90" negated="false">
+ <position x="710" y="120"/>
+ <connectionPointOut>
+ <relPosition x="90" y="15"/>
+ </connectionPointOut>
+ <expression>REAL#100.0</expression>
+ </inVariable>
+ <block localId="27" typeName="INT_TO_REAL" executionOrderId="0" height="40" width="100">
+ <position x="700" y="50"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="24">
+ <position x="700" y="80"/>
+ <position x="675" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="100" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="28" typeName="EQ" executionOrderId="0" height="60" width="65">
+ <position x="410" y="430"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="36">
+ <position x="418" y="460"/>
+ <position x="401" y="460"/>
+ <position x="401" y="435"/>
+ <position x="380" y="435"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="29">
+ <position x="410" y="480"/>
+ <position x="367" y="480"/>
+ <position x="367" y="475"/>
+ <position x="325" y="475"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="29" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="305" y="460"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <inVariable localId="32" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="765" y="505"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <outVariable localId="31" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="925" y="460"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="33" formalParameter="OUT">
+ <position x="925" y="475"/>
+ <position x="890" y="475"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Sloth</expression>
+ </outVariable>
+ <block localId="33" typeName="MUX" executionOrderId="0" height="80" width="65">
+ <position x="825" y="445"/>
+ <inputVariables>
+ <variable formalParameter="K">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="34" formalParameter="OUT">
+ <position x="825" y="475"/>
+ <position x="685" y="475"/>
+ <position x="685" y="465"/>
+ <position x="675" y="465"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN0">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="30">
+ <position x="825" y="495"/>
+ <position x="800" y="495"/>
+ <position x="800" y="485"/>
+ <position x="790" y="485"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="70"/>
+ <connection refLocalId="32">
+ <position x="825" y="515"/>
+ <position x="795" y="515"/>
+ <position x="795" y="520"/>
+ <position x="785" y="520"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="30" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="715" y="470"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <block localId="34" typeName="BOOL_TO_SINT" executionOrderId="0" height="40" width="110">
+ <position x="565" y="435"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="28" formalParameter="OUT">
+ <position x="565" y="465"/>
+ <position x="520" y="465"/>
+ <position x="520" y="460"/>
+ <position x="475" y="460"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="110" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <connector name="Connection0" localId="35" height="25" width="125">
+ <position x="400" y="140"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="400" y="150"/>
+ <position x="375" y="150"/>
+ <position x="375" y="115"/>
+ <position x="360" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </connector>
+ <continuation name="Connection0" localId="36" height="25" width="125">
+ <position x="255" y="425"/>
+ <connectionPointOut>
+ <relPosition x="125" y="10"/>
+ </connectionPointOut>
+ </continuation>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="MainStuff"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi/py_ext_0@py_ext/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi/py_ext_0@py_ext/pyfile.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='utf-8'?>
+<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <variables>
+ <variable name="AlarmNotify" type="HMI_INT"/>
+ <variable name="SendAlarm" type="HMI_INT" onchange="TriggerAlarm"/>
+ <variable name="AlarmText" type="HMI_STRING" initial="'POS'"/>
+ <variable name="AlarmStatus" type="HMI_STRING" initial="'alarm'"/>
+ </variables>
+ <globals>
+ <xhtml:p><![CDATA[
+from twisted.web.resource import Resource
+import json, time, random, collections
+
+Alarms = []
+AlarmIndex = {}
+lastid = 0
+
+def TriggerAlarm(changed_var_name):
+ global Alarms, lastid
+ new_entry = [time.time(), PLCGlobals.AlarmText, PLCGlobals.AlarmStatus, lastid]
+ Alarms.append(new_entry)
+ AlarmIndex[lastid] = new_entry
+ lastid = lastid + 1
+ PLCGlobals.AlarmNotify = random.randint(0, 4294967296)
+
+class AlarmJsonResource(Resource):
+ def render_GET(self, request):
+ return ''
+
+ def render_POST(self, request):
+ newstr = request.content.getvalue()
+ newdata = json.loads(newstr)
+ args = newdata[u'args']
+ range_feedback = newdata[u'range']
+ slider_position = newdata[u'position']
+ visible = newdata[u'visible']
+ extra = newdata[u'extra']
+ options = newdata[u'options']
+
+ if len(options) == 1 :
+ action, = options
+ if action == "action_reset":
+ del Alarms[:]
+ AlarmIndex.clear()
+ elif len(options) == 2 :
+ action, alarmid = options
+ if action == "onClick[acknowledge]":
+ AlarmIndex[int(alarmid)][2] = "ack"
+
+ answer = self.renderTable(range_feedback, slider_position, visible, extra)
+ janswer = json.dumps(answer)
+ return janswer
+
+ def renderTable(self, old_range, old_position, visible, extra):
+ if len(extra) > 0 and extra[0] != "":
+ fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1]
+ else:
+ fAlarms = Alarms[:]
+ fAlarms.reverse()
+ new_range = len(fAlarms)
+ delta = new_range - visible
+ new_position = 0 if delta <= 0 else delta if old_position > delta else old_position
+ new_visible = new_range if delta <= 0 else visible
+
+ visible_alarms = []
+ for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]:
+ visible_alarms.append({
+ "time": time.ctime(ts),
+ "text": text, # TODO translate text
+ "status": status,
+ "alarmid": alarmid
+ })
+
+ return new_range, new_position, visible_alarms
+
+
+]]></xhtml:p>
+ </globals>
+ <init>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </init>
+ <cleanup>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </cleanup>
+ <start>
+ <xhtml:p><![CDATA[
+
+AddPathToSVGHMIServers("alarms", AlarmJsonResource)
+
+
+]]></xhtml:p>
+ </start>
+ <stop>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </stop>
+</PyFile>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi/svghmi_0@svghmi/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi/svghmi_0@svghmi/confnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" WatchdogInitial="10" WatchdogInterval="5" EnableWatchdog="true" Path="{name}"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi/svghmi_0@svghmi/svghmi.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,7476 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ 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"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="svghmi.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280">
+ <metadata
+ id="metadata4542">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <linearGradient
+ id="linearGradient34303"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop34301" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient20537"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop20535" />
+ </linearGradient>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1971"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1969"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1656"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1654"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient962">
+ <stop
+ style="stop-color:#ff3000;stop-opacity:1;"
+ offset="0"
+ id="stop958" />
+ <stop
+ style="stop-color:#0022ff;stop-opacity:1"
+ offset="1"
+ id="stop960" />
+ </linearGradient>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path895"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ 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>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient962"
+ id="linearGradient964"
+ x1="113.38908"
+ y1="-62.210247"
+ x2="113.38908"
+ y2="4.0725975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5,0,0,0.5,73.144796,-1.4471993)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:document-units="px"
+ inkscape:current-layer="g1499-7"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="0.84355633"
+ inkscape:cx="1857.6296"
+ inkscape:cy="687.32797"
+ inkscape:window-width="1600"
+ inkscape:window-height="836"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="true" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g7994"
+ id="use7996"
+ transform="translate(1480,800)"
+ width="100%"
+ height="100%"
+ inkscape:label="HMI:Page:RelativePageTest@/PUMP0" />
+ <rect
+ sodipodi:insensitive="true"
+ inkscape:label="HMI:Page:Conf"
+ y="780"
+ x="0"
+ height="720"
+ width="1280"
+ id="rect1016"
+ style="color:#000000;fill:#000000" />
+ <g
+ id="g1082"
+ inkscape:label="HMI:Jump:Home"
+ transform="translate(-940,-558)">
+ <g
+ id="g1152"
+ inkscape:label="button">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z"
+ id="rect1022"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssccc" />
+ </g>
+ <g
+ id="g1149"
+ inkscape:label="text">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="1436.9814"
+ id="home_jmp"
+ inkscape:label="home_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1028"
+ x="1090.7626"
+ y="1436.9814"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;fill:#4d4d4d"
+ id="page0"
+ width="1280"
+ height="720"
+ x="0"
+ y="0"
+ inkscape:label="HMI:Page:Home" />
+ <g
+ id="g1077"
+ inkscape:label="HMI:Jump:Conf"
+ transform="matrix(0.57180538,0,0,0.57180538,-373.64055,248.51305)">
+ <g
+ id="g1159"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1020"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1156"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="setting_jmp"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan1024"
+ sodipodi:role="line">Settings</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g84"
+ inkscape:label="HMI:Input@/TARGETPRESSURE,0,100"
+ transform="matrix(0.35865594,0,0,0.35865594,22.072155,63.074421)">
+ <text
+ inkscape:label="value"
+ id="text5151"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan5149"
+ sodipodi:role="line">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path89"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="14.956363"
+ inkscape:label="-100" />
+ <path
+ inkscape:label="-10"
+ inkscape:transform-center-y="7.4781812"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path88"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect85"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ inkscape:label="+100"
+ inkscape:transform-center-y="-14.956361"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path87"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path86"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-7.4781804"
+ inkscape:label="+10" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path91"
+ sodipodi:sides="4"
+ sodipodi:cx="80.740723"
+ sodipodi:cy="165.17262"
+ sodipodi:r1="57.015106"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.77793027"
+ sodipodi:arg2="1.5633284"
+ inkscape:flatsided="true"
+ inkscape:rounded="-0.65084865"
+ inkscape:randomized="0"
+ d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z"
+ inkscape:transform-center-y="-14.956361"
+ inkscape:label="=0" />
+ </g>
+ <text
+ inkscape:label="HMI:Display@/PUMP0/PRESSURE"
+ id="text823"
+ y="141.34827"
+ x="293.33374"
+ style="font-style:normal;font-weight:normal;font-size:57.38494873px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.35865593px"
+ y="141.34827"
+ x="293.33374"
+ id="tspan821"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ id="g4523"
+ transform="matrix(2.1611542,0,0,2.1611542,142.76714,468.92423)"
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4499"
+ sodipodi:type="arc"
+ sodipodi:cx="128.02208"
+ sodipodi:cy="2.2017097"
+ sodipodi:rx="64.411957"
+ sodipodi:ry="64.411957"
+ sodipodi:start="3.1415927"
+ sodipodi:end="4.712389"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:open="true"
+ inkscape:label="range" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ id="path4501"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="needle" />
+ <text
+ inkscape:label="min"
+ id="text4505"
+ y="4.9187088"
+ x="49.132977"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px"
+ y="4.9187088"
+ x="49.132977"
+ id="tspan4503"
+ sodipodi:role="line">0</tspan></text>
+ <text
+ inkscape:label="max"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="127.48073"
+ y="-78.144218"
+ id="text4509"><tspan
+ sodipodi:role="line"
+ id="tspan4507"
+ x="127.48073"
+ y="-78.144218"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text>
+ <text
+ inkscape:label="value"
+ id="text4517"
+ y="-6.1937833"
+ x="113.53007"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan4515"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-6.1937833"
+ x="113.53007"
+ sodipodi:role="line">000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="124.77896"
+ y="1.1408259"
+ id="text4521"
+ inkscape:label="unit"><tspan
+ sodipodi:role="line"
+ x="124.77896"
+ y="1.1408259"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan4519">bar</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="114.11434"
+ y="90.742165"
+ id="text827"
+ inkscape:label="setpoint_label"><tspan
+ sodipodi:role="line"
+ id="tspan825"
+ x="114.11434"
+ y="90.742165"
+ style="stroke-width:0.35865593px">SetPoint</tspan></text>
+ <text
+ id="text831"
+ y="90.742165"
+ x="344.50876"
+ style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="90.742165"
+ x="344.50876"
+ id="tspan829"
+ sodipodi:role="line"
+ style="stroke-width:0.35865593px">Actual</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.57180536px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="206.73413"
+ y="336.90073"
+ id="text4497"
+ inkscape:label="pressure_label"><tspan
+ sodipodi:role="line"
+ id="tspan4495"
+ x="206.73413"
+ y="336.90073"
+ style="fill:#ff6600;stroke-width:0.57180536px">Pressure</tspan></text>
+ <g
+ id="layer4"
+ inkscape:label="HMI:Lang:cn"
+ style="display:none"
+ inkscape:groupmode="layer">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;text-anchor:middle;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="83.669571"
+ y="136.78285"
+ id="text948-6"
+ inkscape:label="setpoint_label"><tspan
+ sodipodi:role="line"
+ id="tspan946-2"
+ x="136.78285"
+ y="83.669571"
+ style="stroke-width:1px">设定值</tspan></text>
+ <text
+ id="text952-9"
+ y="137.16286"
+ x="703.711"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="703.711"
+ x="137.16286"
+ id="tspan950-1"
+ sodipodi:role="line"
+ style="text-align:center;writing-mode:vertical-lr;text-anchor:middle;stroke-width:1px">当前值</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="480.61847"
+ y="278.37503"
+ id="text956-2"
+ inkscape:label="pressure_label"><tspan
+ sodipodi:role="line"
+ id="tspan954-7"
+ x="278.37503"
+ y="480.61847"
+ style="writing-mode:vertical-lr;fill:#ff6600;stroke-width:0.99999994px">压力</tspan></text>
+ <text
+ inkscape:label="setting_jmp"
+ id="text1097"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan1095"
+ sodipodi:role="line">设置</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="1436.9814"
+ id="text1101"
+ inkscape:label="home_jmp"><tspan
+ sodipodi:role="line"
+ x="1090.7626"
+ y="1436.9814"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1107">家</tspan></text>
+ </g>
+ <g
+ id="layer2"
+ inkscape:label="HMI:Lang:fr"
+ style="display:none"
+ inkscape:groupmode="layer">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="340.9082"
+ y="77.142853"
+ id="text948"
+ inkscape:label="setpoint_label"><tspan
+ sodipodi:role="line"
+ id="tspan946"
+ x="340.9082"
+ y="77.142853">Valeur de consigne</tspan></text>
+ <text
+ id="text952"
+ y="77.142853"
+ x="960.9082"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="77.142853"
+ x="960.9082"
+ id="tspan950"
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle">Valeur courante</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="420.37848"
+ y="399.41504"
+ id="text956"
+ inkscape:label="pressure_label"><tspan
+ sodipodi:role="line"
+ id="tspan954"
+ x="420.37848"
+ y="399.41504"
+ style="fill:#ff6600;stroke-width:0.99999994px">Pression</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="setting_jmp-0"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1024-9"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text>
+ <text
+ inkscape:label="home_jmp"
+ id="home_jmp-3"
+ y="1436.9814"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="1436.9814"
+ x="1090.7626"
+ id="tspan1028-6"
+ sodipodi:role="line">Home</tspan></text>
+ </g>
+ <g
+ id="layer3"
+ inkscape:label="HMI:Lang:si"
+ style="display:inline"
+ inkscape:groupmode="layer">
+ <text
+ id="text930"
+ y="77.142853"
+ x="338.67188"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="setpoint_label"><tspan
+ y="77.142853"
+ x="338.67188"
+ id="tspan928"
+ sodipodi:role="line">nastavljena vrednost</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="959.38477"
+ y="77.142853"
+ id="text934"
+ inkscape:label="actual_label"><tspan
+ sodipodi:role="line"
+ id="tspan932"
+ x="959.38477"
+ y="77.142853">dejanska vrednost</tspan></text>
+ <text
+ id="text938"
+ y="399.41504"
+ x="420.37848"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="pressure_label"><tspan
+ style="fill:#ff6600;stroke-width:0.99999994px"
+ y="399.41504"
+ x="420.37848"
+ id="tspan936"
+ sodipodi:role="line">pritisk</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="setting_jmp-06"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1024-2"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text>
+ <text
+ inkscape:label="home_jmp"
+ id="home_jmp-6"
+ y="1436.9814"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="1436.9814"
+ x="1090.7626"
+ id="tspan1028-1"
+ sodipodi:role="line">Home</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH"
+ transform="matrix(7.5590552,0,0,7.5590552,-244.3956,1321.2434)"
+ id="g110">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 113.38908,2.2017068 V -62.210247"
+ id="path90"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="range" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path92"
+ d="M 113.38908,4.0725977 V -62.210247"
+ style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient964);stroke-width:13.22916698;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="115.07632"
+ y="9.3424692"
+ id="text96"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan94"
+ x="115.07632"
+ y="9.3424692"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text100"
+ y="-64.195457"
+ x="113.27539"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-64.195457"
+ x="113.27539"
+ id="tspan98"
+ sodipodi:role="line">10000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-20.624428"
+ y="-109.67243"
+ id="text104"
+ inkscape:label="value"
+ transform="rotate(90)"><tspan
+ sodipodi:role="line"
+ x="-20.624428"
+ y="-109.67243"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan102">000</tspan></text>
+ <text
+ inkscape:label="unit"
+ id="text108"
+ y="-9.4425077"
+ x="140.65398"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan106"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-9.4425077"
+ x="140.65398"
+ sodipodi:role="line">€£$¥</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Input@/TARGETPRESSURE"
+ id="g991"
+ transform="matrix(0.5,0,0,0.5,230.11026,885.7162)"
+ style="stroke-width:2">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text977"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan975"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect983"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ id="g1086"
+ inkscape:label="=0"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:connector-curvature="0"
+ id="path989"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1048"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1046"
+ sodipodi:role="line">→0←</tspan></text>
+ </g>
+ <g
+ id="g1091"
+ inkscape:label="-10"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path981"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1059"><tspan
+ sodipodi:role="line"
+ id="tspan1057"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">-10</tspan></text>
+ </g>
+ <g
+ id="g1096"
+ inkscape:label="-100"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path979"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1063"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1061"
+ sodipodi:role="line">-100</tspan></text>
+ </g>
+ <g
+ id="g1076"
+ inkscape:label="+100"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path985"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1067"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1065"
+ sodipodi:role="line">+100</tspan></text>
+ </g>
+ <g
+ id="g1081"
+ inkscape:label="+10"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path987"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1071"><tspan
+ sodipodi:role="line"
+ id="tspan1069"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">+10</tspan></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="736.32812"
+ y="1478.2422"
+ id="text995"
+ inkscape:label="HMI:Display@/PUMP0/PRESSURE"><tspan
+ sodipodi:role="line"
+ id="tspan993"
+ x="736.32812"
+ y="1478.2422"
+ style="fill:#82ff77;fill-opacity:1;stroke-width:1px;">8888</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="28.181862"
+ y="365.32291"
+ id="text134"
+ inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan132"
+ x="28.181862"
+ y="365.32291"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <text
+ inkscape:label="HMI:Display@/PUMP0/BOOLOUT"
+ id="text138"
+ y="422.50345"
+ x="28.181862"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="422.50345"
+ x="28.181862"
+ id="tspan136"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ transform="matrix(0.28590269,0,0,0.28590269,0.70444171,226.1427)"
+ id="g208-1"
+ inkscape:label="HMI:Input@/PUMP0/STRIN"
+ style="stroke-width:2">
+ <text
+ inkscape:label="value"
+ id="text164"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan162"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect166"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g174"
+ style="stroke-width:2">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path168"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text172"><tspan
+ sodipodi:role="line"
+ id="tspan170"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:1px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g182"
+ style="stroke-width:2">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path176"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text180"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan178"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g190"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path184"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text188"><tspan
+ sodipodi:role="line"
+ id="tspan186"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:1px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g198"
+ style="stroke-width:2">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path192"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text196"><tspan
+ sodipodi:role="line"
+ id="tspan194"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:1px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g206-1"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path200"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text204"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan202"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <g
+ inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL"
+ id="g2432"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:label="Background"
+ inkscape:connector-curvature="0"
+ id="path2136"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ ry="3.8152773"
+ rx="3.8152773"
+ y="15.77106"
+ x="64.024963"
+ height="30.150299"
+ width="361.89996"
+ id="rect2426"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:label="Field" />
+ <text
+ id="text2430"
+ y="37.408375"
+ x="72.50132"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Value"><tspan
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px"
+ y="37.408375"
+ x="72.50132"
+ id="tspan2428"
+ sodipodi:role="line">number</tspan></text>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Enter"
+ id="g4947"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path193"
+ d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z"
+ transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)"
+ id="path6545-4"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Keys"
+ id="g4993"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="7"
+ id="g4892">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path163"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text331"
+ y="129.38269"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="4"
+ id="g4907">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path169"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text335"
+ y="154.10822"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="1"
+ id="g4922">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path175"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text339"
+ y="179.82285"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="8"
+ id="g4897">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path165"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text347"
+ y="129.38269"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="5"
+ id="g4912">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path171"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text351"
+ y="154.10822"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="2"
+ id="g4927">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path177"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text355"
+ y="179.82285"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">2</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="9"
+ id="g4902">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path167"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text363"
+ y="129.38269"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="6"
+ id="g4917">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path173"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text367"
+ y="154.10822"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="3"
+ id="g4932">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path179"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text371"
+ y="179.82285"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="0"
+ id="g4937">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z"
+ id="path373"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text377"
+ y="205.53712"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ </g>
+ </g>
+ <g
+ id="g3113"
+ inkscape:label="Esc"
+ transform="translate(-318.22576)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path167-3"
+ d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="394.42801"
+ y="78.632088"
+ id="text469-4"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928511)">Esc</text>
+ </g>
+ <g
+ id="g3109"
+ inkscape:label="BackSpace"
+ transform="translate(0,-43.420332)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path173-1"
+ d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z"
+ transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)"
+ id="path11623-1-0-2"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g787"
+ inkscape:label="Sign"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path781"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="642.1239"
+ y="135.09822"
+ id="text783"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ transform="scale(1.0007154,0.99928514)">+/-</text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="252.9579"
+ y="12.333653"
+ id="text509"
+ transform="scale(0.96824589,1.0327955)"
+ inkscape:label="Info"><tspan
+ sodipodi:role="line"
+ id="tspan507"
+ x="252.9579"
+ y="12.333653"
+ style="stroke-width:0.30784383px">information</tspan></text>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ id="g4942"
+ inkscape:label="NumDot">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path181"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text771"
+ y="204.54802"
+ x="696.7464"
+ transform="scale(1.0007154,0.99928514)">.</text>
+ </g>
+ </g>
+ <g
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,1556.0198)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4278"
+ inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z"
+ id="rect1006-3"
+ inkscape:connector-curvature="0"
+ inkscape:label="Background"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path185"
+ d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z"
+ inkscape:connector-curvature="0"
+ inkscape:label="Space" />
+ <g
+ id="g4380"
+ inkscape:label="Keys"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <g
+ id="g4283"
+ inkscape:label="q Q"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path41"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="99.378708"
+ y="138.28395"
+ id="text203"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Q</text>
+ </g>
+ <g
+ id="g4337"
+ inkscape:label="w W"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path43"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="127.0709"
+ y="138.28395"
+ id="text207"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">W</text>
+ </g>
+ <g
+ id="g4332"
+ inkscape:label="e E"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path45"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="159.70854"
+ y="138.28395"
+ id="text211"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">E</text>
+ </g>
+ <g
+ id="g4326"
+ inkscape:label="r R"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path47"
+ d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="188.39003"
+ y="138.28395"
+ id="text215"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">R</text>
+ </g>
+ <g
+ id="g4321"
+ inkscape:label="t T"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path49"
+ d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="219.04961"
+ y="138.28395"
+ id="text219"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">T</text>
+ </g>
+ <g
+ id="g4316"
+ inkscape:label="y Y"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path51"
+ d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="248.72017"
+ y="138.28395"
+ id="text223"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Y</text>
+ </g>
+ <g
+ id="g4311"
+ inkscape:label="u U"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path53"
+ d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="278.39075"
+ y="138.28395"
+ id="text227"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">U</text>
+ </g>
+ <g
+ id="g4306"
+ inkscape:label="i I"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path55"
+ d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="311.02859"
+ y="138.28395"
+ id="text231"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">I</text>
+ </g>
+ <g
+ id="g4301"
+ inkscape:label="o O"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path57"
+ d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="336.74319"
+ y="138.28395"
+ id="text235"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">O</text>
+ </g>
+ <g
+ id="g4296"
+ inkscape:label="p P"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path59"
+ d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="367.40256"
+ y="138.28395"
+ id="text239"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">P</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4511"
+ inkscape:label="a A">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path65"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text243"
+ y="163.99854"
+ x="107.29005"
+ transform="scale(1.0007154,0.99928514)">A</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4516"
+ inkscape:label="s S">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path67"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text247"
+ y="163.99854"
+ x="137.95012"
+ transform="scale(1.0007154,0.99928514)">S</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4521"
+ inkscape:label="d D">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path69"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text251"
+ y="163.99854"
+ x="166.63159"
+ transform="scale(1.0007154,0.99928514)">D</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4526"
+ inkscape:label="f F">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path71"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text255"
+ y="163.99854"
+ x="197.29166"
+ transform="scale(1.0007154,0.99928514)">F</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4531"
+ inkscape:label="g G">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path73"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text259"
+ y="163.99854"
+ x="225.97284"
+ transform="scale(1.0007154,0.99928514)">G</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4536"
+ inkscape:label="h H">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path75"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text263"
+ y="163.99854"
+ x="255.64342"
+ transform="scale(1.0007154,0.99928514)">H</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4541"
+ inkscape:label="j J">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path77"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text267"
+ y="163.99854"
+ x="287.29208"
+ transform="scale(1.0007154,0.99928514)">J</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4546"
+ inkscape:label="k K">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path79"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text271"
+ y="163.99854"
+ x="314.98465"
+ transform="scale(1.0007154,0.99928514)">K</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4551"
+ inkscape:label="l L">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path81"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text275"
+ y="163.99854"
+ x="345.64444"
+ transform="scale(1.0007154,0.99928514)">L</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4586"
+ inkscape:label="z Z"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path87-3"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text279"
+ y="188.72411"
+ x="119.15855"
+ transform="scale(1.0007154,0.99928514)">Z</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4581"
+ inkscape:label="x X"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path89-6"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text283"
+ y="188.72411"
+ x="148.82933"
+ transform="scale(1.0007154,0.99928514)">X</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4576"
+ inkscape:label="c C"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path91-7"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text287"
+ y="188.72411"
+ x="178.50011"
+ transform="scale(1.0007154,0.99928514)">C</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4571"
+ inkscape:label="v V"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z"
+ id="path195"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text291"
+ y="188.72411"
+ x="208.16988"
+ transform="scale(1.0007154,0.99928514)">V</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4566"
+ inkscape:label="b B"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path93"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text295"
+ y="188.72411"
+ x="237.84096"
+ transform="scale(1.0007154,0.99928514)">B</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4561"
+ inkscape:label="n N"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path95"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text299"
+ y="188.72411"
+ x="267.51193"
+ transform="scale(1.0007154,0.99928514)">N</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4556"
+ inkscape:label="m M"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path97"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text303"
+ y="188.72411"
+ x="296.1933"
+ transform="scale(1.0007154,0.99928514)">M</text>
+ </g>
+ <g
+ id="g4818"
+ inkscape:label=". :"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path101"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text719"
+ y="189.66107"
+ x="359.58276">.</text>
+ <text
+ x="359.58276"
+ y="181.64532"
+ id="text4834"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928512)">:</text>
+ </g>
+ <g
+ id="g4813"
+ inkscape:label=", ;"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path99"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text727"
+ y="181.64532"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)">;</text>
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ y="189.66107"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)"
+ id="text4826">,</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="1"
+ id="g2845"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2839"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2841"
+ y="138.28395"
+ x="101.07153"
+ transform="scale(1.0007154,0.99928513)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="2"
+ id="g2853"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2847"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2849"
+ y="138.28395"
+ x="130.18704"
+ transform="scale(1.0007154,0.99928513)">2</text>
+ </g>
+ <g
+ inkscape:label="3"
+ id="g2861"
+ style="stroke-width:0.47631353"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2855"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2857"
+ y="138.28395"
+ x="159.70854"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ id="g2957"
+ inkscape:label="4"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z"
+ id="path2865"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2867"
+ y="111.55791"
+ x="176.39188"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ id="g2962"
+ inkscape:label="5"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2873"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2875"
+ y="111.55791"
+ x="205.70567"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ id="g2967"
+ inkscape:label="6"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2881"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2883"
+ y="111.55791"
+ x="236.15851"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ id="g2972"
+ inkscape:label="7"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2889"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2891"
+ y="111.55791"
+ x="266.06564"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ id="g2977"
+ inkscape:label="8"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2897"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2899"
+ y="111.55791"
+ x="295.08231"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ id="g2982"
+ inkscape:label="9 -"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2905"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2907"
+ y="111.55791"
+ x="325.05408"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ x="335.72681"
+ y="102.42173"
+ id="text806"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text>
+ </g>
+ <g
+ id="g2987"
+ inkscape:label="0 +"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2913"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2915"
+ y="111.55791"
+ x="355.05984"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text804"
+ y="102.42173"
+ x="365.30151">+</text>
+ </g>
+ </g>
+ <g
+ transform="translate(335.89988,-58.934803)"
+ id="g3544"
+ inkscape:label="Esc"
+ style="stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path105"
+ d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928512)"
+ style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text469"
+ y="130.02028"
+ x="59.288635">Esc</text>
+ </g>
+ <g
+ inkscape:label="Enter"
+ id="g4291"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3616"
+ d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)"
+ id="path6545"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:label="BackSpace"
+ id="g4287"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(2.3648311e-6,-28.614579)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3624"
+ d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)"
+ id="path11623-1-0"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g934"
+ inkscape:label="CapsLock">
+ <g
+ inkscape:label="inactive"
+ id="g942"
+ style="display:inline;fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path936"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="69.789322"
+ y="156.71973"
+ id="text938-5"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Caps</text>
+ <text
+ x="69.789322"
+ y="166.5585"
+ id="text940"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Lock</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4429"
+ inkscape:label="active">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ id="path199"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text647"
+ y="156.71973"
+ x="69.789322">Caps</text>
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text651"
+ y="166.5585"
+ x="69.789322">Lock</text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect2130"
+ width="361.89996"
+ height="30.150299"
+ x="64.024956"
+ y="15.771065"
+ rx="3.8152773"
+ ry="3.8152773"
+ inkscape:label="Field" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="72.50132"
+ y="38.296417"
+ id="text1309"
+ inkscape:label="Value"><tspan
+ sodipodi:role="line"
+ id="tspan1307"
+ x="72.50132"
+ y="38.296417"
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text>
+ <g
+ id="g437"
+ inkscape:label="Shift">
+ <g
+ id="g421"
+ inkscape:label="inactive">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ id="path910"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text912"
+ y="177.90059"
+ x="392.55679"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path856"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="75.85218"
+ y="177.90059"
+ id="text858"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ </g>
+ <g
+ id="g413"
+ inkscape:label="active">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path551"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ x="392.55679"
+ y="177.90059"
+ id="text629"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ id="path879"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text881"
+ y="177.90059"
+ x="75.85218">Shift</text>
+ </g>
+ </g>
+ <text
+ transform="scale(0.96824588,1.0327955)"
+ id="text471"
+ y="12.333657"
+ x="252.9579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Info"><tspan
+ style="stroke-width:0.30784383px"
+ y="12.333657"
+ x="252.9579"
+ id="tspan469"
+ sodipodi:role="line">information</tspan></text>
+ </g>
+ <g
+ id="g14237"
+ inkscape:label="HMI:DropDown:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27@/SELECTION"
+ transform="matrix(0.81491208,0,0,0.81491208,243.6641,-510.30491)"
+ style="stroke-width:0.35083869">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect14212"
+ width="391.99988"
+ height="130.9433"
+ x="864.00842"
+ y="923.98993"
+ rx="2.4558709"
+ ry="2.4558709"
+ inkscape:label="box" />
+ <rect
+ inkscape:label="highlight"
+ ry="2.4558709"
+ rx="2.4558709"
+ y="943.10553"
+ x="864.00842"
+ height="92.71212"
+ width="391.99988"
+ id="rect5497"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text14183"
+ y="1011.9975"
+ x="881.44226"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="text"><tspan
+ style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px"
+ y="1011.9975"
+ x="881.44226"
+ sodipodi:role="line"
+ id="tspan421">sel_0</tspan></text>
+ <path
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path424"
+ sodipodi:sides="3"
+ sodipodi:cx="1200.5"
+ sodipodi:cy="975"
+ sodipodi:r1="43.683521"
+ sodipodi:r2="21.841761"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="2.6179939"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1200.5,1018.6835 -18.9155,-32.76262 -18.9155,-32.76264 37.831,0 37.831,0 -18.9155,32.76264 z"
+ inkscape:transform-center-y="10.92088"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g14274"
+ inkscape:label="HMI:List:HoodNames:ForEach:HOOD:NAME@/" />
+ <g
+ inkscape:label="HMI:Input@/SELECTION"
+ id="g446"
+ transform="matrix(0.28590269,0,0,0.28590269,85.246911,560.98603)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="216.32812"
+ y="218.24219"
+ id="text432"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan430"
+ x="216.32812"
+ y="218.24219"
+ style="text-align:end;text-anchor:end;stroke-width:1px">8</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path436"
+ sodipodi:sides="3"
+ sodipodi:cx="276.74072"
+ sodipodi:cy="-224.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="7.4781812"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="-174.94055"
+ height="128"
+ width="407.7037"
+ id="rect438"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-7.4781804"
+ d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="96.444443"
+ sodipodi:cx="276.74072"
+ sodipodi:sides="3"
+ id="path442"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ inkscape:label="=0"
+ inkscape:transform-center-y="-10.828983"
+ d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5633284"
+ sodipodi:arg1="0.77793027"
+ sodipodi:r2="21.657967"
+ sodipodi:r1="41.281136"
+ sodipodi:cy="160.71626"
+ sodipodi:cx="276.74072"
+ sodipodi:sides="4"
+ id="path444"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ inkscape:transform-center-x="1.0089177e-06" />
+ </g>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,-522.96165,161.69266)"
+ id="g443"
+ inkscape:label="HMI:Button@/SELECTION"
+ style="stroke-width:1">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect5492"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="23.930969"
+ inkscape:label="inactive"
+ rx="23.930969" />
+ <rect
+ rx="23.930969"
+ inkscape:label="active"
+ ry="23.930969"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect433"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fdfdfd;fill-opacity:1;fill-rule:nonzero;stroke:#ffd0b2;stroke-width:28.60938263;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:1"
+ inkscape:label="text"
+ id="g952">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text950"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan948"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">up</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g5053"
+ inkscape:label="HMI:Switch@/PUMP0/BOOLOUT"
+ transform="translate(43.983597,40.477445)">
+ <g
+ id="g473"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="true">
+ <path
+ d="M 825.90067,963.24473 V 1105.042 L 960.08282,916.47893 V 809.26931 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3451"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90067,1105.042 90.50966,81.6485 121.15167,-225.30346 -77.47918,-44.90811 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3453"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 960.08282,809.26931 77.47918,36.25625 v 115.86148 l -77.47918,-44.90811 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3455"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 825.90067,963.24473 916.41033,1029.3537 1037.562,845.52556 960.08282,809.26931 Z"
+ style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3457"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 916.41033,1029.3537 v 157.3368 L 1037.562,961.38704 V 845.52556 Z"
+ style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3459"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90067,963.24473 90.50966,66.10897 v 157.3368 l -90.50966,-81.6485 z"
+ style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3461"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g501"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="false">
+ <path
+ d="M 855.90069,905.24473 V 1047.042 L 978.3745,966.29311 V 859.0835 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3437"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90069,1047.042 90.50966,81.6485 108.49845,-108.7886 -76.5343,-53.60879 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3439"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 978.3745,859.0835 76.5343,44.95689 v 115.86151 l -76.5343,-53.60879 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3441"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90069,905.24473 90.50966,66.10901 108.49845,-67.31335 -76.5343,-44.95689 z"
+ style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3443"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 946.41035,971.35374 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z"
+ style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3445"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90069,905.24473 90.50966,66.10901 v 157.33676 l -90.50966,-81.6485 z"
+ style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3447"
+ inkscape:connector-curvature="0" />
+ <g
+ inkscape:label="HMI:Switch@/TARGETPRESSURE"
+ id="g991-3"
+ transform="matrix(0.5,0,0,0.5,699.09791,793.95217)"
+ style="stroke-width:2">
+ <g
+ id="g1091-3"
+ inkscape:label="4"
+ transform="translate(-136.52022,250.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path981-1"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="661.09552"
+ y="111.05016"
+ id="text1059-7"><tspan
+ sodipodi:role="line"
+ id="tspan1057-5"
+ x="661.09552"
+ y="111.05016"
+ style="stroke-width:1px">4</tspan></text>
+ </g>
+ <g
+ id="g1096-9"
+ inkscape:label="3"
+ transform="translate(-136.52022,250.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path979-6"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1063-2"
+ y="111.05016"
+ x="565.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="565.25018"
+ id="tspan1061-1"
+ sodipodi:role="line">3</tspan></text>
+ </g>
+ <g
+ id="g1076-7"
+ inkscape:label="2"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path985-8"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1067-5"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1065-7"
+ sodipodi:role="line">2</tspan></text>
+ </g>
+ <g
+ id="g1081-4"
+ inkscape:label="1"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path987-1"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1071-8"><tspan
+ sodipodi:role="line"
+ id="tspan1069-5"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">1</tspan></text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,3116.0198)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g1490"
+ inkscape:label="HMI:ModalOKDialog">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ id="path1386"
+ inkscape:connector-curvature="0"
+ inkscape:label="Background"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+ inkscape:label="Field"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1388"
+ width="314.68832"
+ height="68.369255"
+ x="87.630791"
+ y="56.041908"
+ rx="3.8152773"
+ ry="3.8152773" />
+ <text
+ inkscape:label="Message"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="243.24242"
+ y="94.637527"
+ id="text1392"><tspan
+ sodipodi:role="line"
+ id="tspan1390"
+ x="243.24242"
+ y="94.637527"
+ style="text-align:center;text-anchor:middle;stroke-width:0.47690967px">message</tspan></text>
+ <g
+ transform="translate(-158.98593,95.381925)"
+ inkscape:label="OK"
+ id="g1466">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 363.41531,54.792986 h 81.09115 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -81.09115 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ id="path1462"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text1464"
+ y="78.632088"
+ x="402.71881">
+ <tspan
+ style="text-align:center;text-anchor:middle"
+ id="tspan5195">OK</tspan>
+ </text>
+ </g>
+ <text
+ inkscape:label="Info"
+ transform="scale(0.96824589,1.0327955)"
+ id="text1482"
+ y="12.333653"
+ x="252.9579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.30784383px"
+ y="12.333653"
+ x="252.9579"
+ id="tspan1480"
+ sodipodi:role="line">information</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH"
+ transform="matrix(3.7795276,0,0,3.7795276,1628.51,630.30393)"
+ id="g1338">
+ <path
+ inkscape:label="range"
+ sodipodi:open="true"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:end="4.712389"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="64.411957"
+ sodipodi:rx="64.411957"
+ sodipodi:cy="2.2017097"
+ sodipodi:cx="128.02208"
+ sodipodi:type="arc"
+ id="path1318"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path1320"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1656)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="49.132977"
+ y="4.9187088"
+ id="text1324"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan1322"
+ x="49.132977"
+ y="4.9187088"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text1328"
+ y="-78.144218"
+ x="127.48073"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-78.144218"
+ x="127.48073"
+ id="tspan1326"
+ sodipodi:role="line">10000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="113.53007"
+ y="-6.1937833"
+ id="text1332"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ x="113.53007"
+ y="-6.1937833"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan1330">000</tspan></text>
+ <text
+ inkscape:label="unit"
+ id="text1336"
+ y="1.1408259"
+ x="124.77896"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan1334"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="1.1408259"
+ x="124.77896"
+ sodipodi:role="line">bar</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Switch@/PUMP0/BOOLOUT"
+ id="g1368"
+ transform="translate(1424.3019,-503.18786)">
+ <g
+ id="g1352"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="true">
+ <path
+ d="M 825.90072,963.24473 V 1105.042 L 960.08286,916.47892 V 809.26931 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3479"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90072,1105.042 90.50967,81.6485 121.15161,-225.30347 -77.47914,-44.90811 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3481"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 960.08286,809.26931 77.47914,36.25624 v 115.86148 l -77.47914,-44.90811 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3483"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 825.90072,963.24473 916.41039,1029.3537 1037.562,845.52555 960.08286,809.26931 Z"
+ style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3485"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 916.41039,1029.3537 v 157.3368 L 1037.562,961.38703 V 845.52555 Z"
+ style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3487"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90072,963.24473 90.50967,66.10897 v 157.3368 l -90.50967,-81.6485 z"
+ style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3489"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g1366"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="false">
+ <path
+ d="M 855.90072,905.24473 V 1047.042 L 978.37453,966.29311 V 859.08349 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3465"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90072,1047.042 90.50967,81.6485 108.49841,-108.7886 -76.53427,-53.60879 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3467"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 978.37453,859.08349 76.53427,44.9569 v 115.86151 l -76.53427,-53.60879 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3469"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90072,905.24473 90.50967,66.109 108.49841,-67.31334 -76.53427,-44.9569 z"
+ style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3471"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 946.41039,971.35373 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z"
+ style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3473"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90072,905.24473 90.50967,66.109 v 157.33677 l -90.50967,-81.6485 z"
+ style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3475"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.63690435,0,0,0.63690435,1576.4961,80.355376)"
+ inkscape:label="HMI:Input@/PUMP0/PRESSURE"
+ id="g1394">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1380"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1378"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:1px">8888</tspan></text>
+ <path
+ inkscape:label="-100"
+ inkscape:transform-center-y="14.956363"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1382"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1384"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="7.4781812"
+ inkscape:label="-10" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1386"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1388"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-14.956361"
+ inkscape:label="+100" />
+ <path
+ inkscape:label="+10"
+ inkscape:transform-center-y="-7.4781804"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1390"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ inkscape:label="=0"
+ inkscape:transform-center-y="-14.956361"
+ d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z"
+ inkscape:randomized="0"
+ inkscape:rounded="-0.65084865"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5633284"
+ sodipodi:arg1="0.77793027"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="57.015106"
+ sodipodi:cy="165.17262"
+ sodipodi:cx="80.740723"
+ sodipodi:sides="4"
+ id="path1392"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@/PUMP0/STRIN"
+ id="g1442"
+ transform="matrix(0.5,0,0,0.5,1470.1103,205.71623)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1398"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1396"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1400"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:2"
+ id="g1408"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1402"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1406"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1404"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1416"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1410"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1414"><tspan
+ sodipodi:role="line"
+ id="tspan1412"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1424"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1418"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1422"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1420"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1432"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1426"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1430"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1428"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1440"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1434"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1438"><tspan
+ sodipodi:role="line"
+ id="tspan1436"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="HMI:Display@/PUMP0/STROUT"
+ id="text1446"
+ y="469.12109"
+ x="1578.1641"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.5px"
+ y="469.12109"
+ x="1578.1641"
+ id="tspan1444"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,-153.64055,248.51305)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP0"
+ id="g1458">
+ <g
+ inkscape:label="button"
+ id="g1450">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1448"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1456">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text1454"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1460">Pump 0</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g1475"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP1"
+ transform="matrix(0.57180538,0,0,0.57180538,6.35945,248.51305)">
+ <g
+ id="g1467"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1464"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1473"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1471"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan1469"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ sodipodi:role="line">Pump 1</tspan><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="706.98151"
+ x="1090.7626"
+ sodipodi:role="line"
+ id="tspan1477" /></text>
+ </g>
+ </g>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,166.35945,248.51305)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP2"
+ id="g1491">
+ <g
+ inkscape:label="button"
+ id="g1481">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1479"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1489">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text1487"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1493">Pump 2</tspan><tspan
+ id="tspan1485"
+ sodipodi:role="line"
+ x="1090.7626"
+ y="706.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" /></text>
+ </g>
+ </g>
+ <g
+ id="g1509"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP3"
+ transform="matrix(0.57180538,0,0,0.57180538,326.35945,248.51305)">
+ <g
+ id="g1499"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1497"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1507"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1505"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ sodipodi:role="line"
+ id="tspan1511">Pump 3</tspan><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="706.98151"
+ x="1090.7626"
+ sodipodi:role="line"
+ id="tspan1503" /></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="403.8551"
+ y="700.05371"
+ id="text1517"
+ inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515"
+ x="403.8551"
+ y="700.05371"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text>
+ <text
+ inkscape:label="HMI:Display@/PUMP1/STROUT"
+ id="text1521"
+ y="700.05371"
+ x="563.8551"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px"
+ y="700.05371"
+ x="563.8551"
+ id="tspan1519"
+ sodipodi:role="line">8888</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="723.8551"
+ y="700.05371"
+ id="text1525"
+ inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1523"
+ x="723.8551"
+ y="700.05371"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text>
+ <text
+ inkscape:label="HMI:Display@/PUMP3/STROUT"
+ id="text1529"
+ y="700.05371"
+ x="883.8551"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px"
+ y="700.05371"
+ x="883.8551"
+ id="tspan1527"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ id="g6077"
+ inkscape:label="HMI:ForEach:PUMP@/">
+ <g
+ id="g6130"
+ inkscape:label="PUMP:1">
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,1024.0513,-317.49049)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP0"
+ id="g1458-8">
+ <g
+ inkscape:label="disabled"
+ id="g1450-4"
+ style="display:inline">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1448-8"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.28600003;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ id="g1067"
+ inkscape:label="inactive"
+ style="display:inline">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#3d3d3d;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1065"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ inkscape:label="active"
+ id="g1071"
+ style="display:inline">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1069"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1456-1">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1038.2972"
+ y="635.99542"
+ id="text1454-0"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ x="1038.2972"
+ y="635.99542"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1460-3">Pump</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579209px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="992.45087"
+ y="674.76117"
+ id="text1517-8"
+ inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5"
+ x="992.45087"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579209px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6122"
+ inkscape:label="PUMP:2">
+ <g
+ id="g1475-0"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP1"
+ transform="matrix(0.57180538,0,0,0.57180538,1184.0513,-317.49049)">
+ <g
+ id="g1467-4"
+ inkscape:label="disabled">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.28600003;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1464-4"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ inkscape:label="inactive"
+ id="g1898"
+ style="display:inline">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1896"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#3d3d3d;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ id="g1902"
+ inkscape:label="active"
+ style="display:inline">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1900"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1473-4"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1471-4"
+ y="635.99542"
+ x="1038.2972"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="635.99542"
+ x="1038.2972"
+ sodipodi:role="line"
+ id="tspan1477-6">Pump</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="992.8111"
+ y="674.76117"
+ id="text1517-8-5"
+ inkscape:label="HMI:Display@/PUMP1/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5-3"
+ x="992.8111"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6113"
+ inkscape:label="PUMP:3">
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,1344.0513,-317.49049)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP2"
+ id="g1491-3">
+ <g
+ inkscape:label="disabled"
+ id="g1481-1">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1479-7"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.28600003;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal" />
+ </g>
+ <g
+ id="g1906"
+ inkscape:label="inactive">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#3d3d3d;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;font-variant-east_asian:normal"
+ id="rect1904"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ inkscape:label="active"
+ id="g1910">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1908"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1489-5">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1038.2972"
+ y="635.99542"
+ id="text1487-9"
+ inkscape:label="setting_jmp"><tspan
+ id="tspan1485-2"
+ sodipodi:role="line"
+ x="1038.2972"
+ y="635.99542"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Pump</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="993.17108"
+ y="674.76117"
+ id="text1517-8-8"
+ inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5-8"
+ x="993.17108"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6104"
+ inkscape:label="PUMP:4">
+ <g
+ id="g1509-1"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP3"
+ transform="matrix(0.57180538,0,0,0.57180538,1504.0513,-317.49049)">
+ <g
+ id="g1499-7"
+ inkscape:label="disabled"
+ style="display:inline">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.28600003;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1497-8"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1918"
+ inkscape:label="inactive"
+ style="display:inline">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#3d3d3d;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1916"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ inkscape:label="active"
+ id="g1914"
+ style="display:inline">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1912"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ id="g1507-5"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1505-7"
+ y="635.99542"
+ x="1038.2972"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="635.99542"
+ x="1038.2972"
+ sodipodi:role="line"
+ id="tspan1511-4">Pump</tspan><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="685.99542"
+ x="1038.2972"
+ sodipodi:role="line"
+ id="tspan1503-1" /></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="993.53101"
+ y="674.76117"
+ id="text1517-8-3"
+ inkscape:label="HMI:Display@/PUMP3/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5-1"
+ x="993.53101"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ inkscape:label="PUMP:+1"
+ id="g6241"
+ transform="matrix(0.57180538,0,0,0.57180538,1461.2541,-321.48847)">
+ <rect
+ style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677"
+ id="rect6235"
+ width="89.036743"
+ height="79.143768"
+ x="1326.8333"
+ y="612.41589"
+ rx="22.385239"
+ ry="20.986162" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851"
+ x="1340.5292"
+ y="663.73657"
+ id="text6239"><tspan
+ sodipodi:role="line"
+ id="tspan6237"
+ x="1340.5292"
+ y="663.73657"
+ style="fill:#ffffff;stroke-width:1.0703851">+1</tspan></text>
+ </g>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,752.02604,-322.19558)"
+ id="g6209"
+ inkscape:label="PUMP:-1">
+ <rect
+ ry="20.986162"
+ rx="22.385239"
+ y="612.41589"
+ x="1326.8333"
+ height="79.143768"
+ width="89.036743"
+ id="rect6200"
+ style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677" />
+ <text
+ id="text6204"
+ y="663.73657"
+ x="1340.5292"
+ style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1.0703851"
+ y="663.73657"
+ x="1340.5292"
+ id="tspan6202"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:59.01374435px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:0.3688359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="689.9715"
+ y="539.24927"
+ id="text995-6"
+ inkscape:label="HMI:Display:Ploc %d (%d) grmbl !@/PUMP0/PRESSURE@/PUMP0/SLOTH"><tspan
+ sodipodi:role="line"
+ id="tspan993-3"
+ x="689.9715"
+ y="539.24927"
+ style="text-align:center;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke-width:0.3688359px">8888</tspan></text>
+ <text
+ id="text831-1"
+ y="477.76758"
+ x="581.62634"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="477.76758"
+ x="581.62634"
+ id="tspan829-7"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px">Multiple variables</tspan></text>
+ <text
+ inkscape:label="HMI:Display@paff"
+ id="text1457"
+ y="68.844757"
+ x="750.28473"
+ style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="68.844757"
+ x="750.28473"
+ id="tspan1455"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ style="stroke-width:4"
+ inkscape:label="HMI:Input@paff"
+ id="g1505"
+ transform="matrix(0.14295135,0,0,0.14295135,589.21833,37.615184)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1461"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1459"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:4px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1463"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:4"
+ id="g1471"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1465"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1469"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1467"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1479"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1473"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1477"><tspan
+ sodipodi:role="line"
+ id="tspan1475"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:2px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1487"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1481"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1485"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1483"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1495"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1489"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1493"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1491"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1503"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1497"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1501"><tspan
+ sodipodi:role="line"
+ id="tspan1499"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:2px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="actual_label"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="509.67926"
+ y="43.42762"
+ id="text1527"><tspan
+ style="stroke-width:0.63690436px"
+ sodipodi:role="line"
+ id="tspan1525"
+ x="509.67926"
+ y="43.42762">HMI_LOCAL variables</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="750.28473"
+ y="128.84476"
+ id="text1557"
+ inkscape:label="HMI:Display@.piff"><tspan
+ sodipodi:role="line"
+ id="tspan1555"
+ x="750.28473"
+ y="128.84476"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ transform="matrix(0.14295135,0,0,0.14295135,589.21833,97.61518)"
+ id="g1605"
+ inkscape:label="HMI:Input@.piff"
+ style="stroke-width:4">
+ <text
+ inkscape:label="value"
+ id="text1561"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:4px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1559"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1563"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g1571"
+ style="stroke-width:4">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path1565"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text1569"><tspan
+ sodipodi:role="line"
+ id="tspan1567"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:2px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g1579"
+ style="stroke-width:4">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1573"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text1577"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan1575"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g1587"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1581"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text1585"><tspan
+ sodipodi:role="line"
+ id="tspan1583"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:2px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g1595"
+ style="stroke-width:4">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1589"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text1593"><tspan
+ sodipodi:role="line"
+ id="tspan1591"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:2px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g1603"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1597"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text1601"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan1599"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ id="text1609"
+ y="103.42763"
+ x="509.67926"
+ style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="103.42763"
+ x="509.67926"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px"
+ id="tspan1611">PAGE_LOCAL variables</tspan></text>
+ <g
+ inkscape:label="HMI:Meter@level"
+ transform="matrix(2.1611542,0,0,2.1611542,602.76714,428.92423)"
+ id="g709">
+ <path
+ inkscape:label="range"
+ sodipodi:open="true"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:end="4.712389"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="64.411957"
+ sodipodi:rx="64.411957"
+ sodipodi:cy="2.2017097"
+ sodipodi:cx="128.02208"
+ sodipodi:type="arc"
+ id="path689"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff7f2a;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path691"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1971)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="49.132977"
+ y="4.9187088"
+ id="text695"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan693"
+ x="49.132977"
+ y="4.9187088"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text699"
+ y="-78.144218"
+ x="127.48073"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-78.144218"
+ x="127.48073"
+ id="tspan697"
+ sodipodi:role="line">10000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="113.53007"
+ y="-6.1937833"
+ id="text703"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ x="113.53007"
+ y="-6.1937833"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan701">000</tspan></text>
+ <text
+ inkscape:label="unit"
+ id="text707"
+ y="1.1408259"
+ x="124.77896"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan705"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="1.1408259"
+ x="124.77896"
+ sodipodi:role="line">bar</tspan></text>
+ </g>
+ <g
+ id="g84-3"
+ inkscape:label="HMI:Input@level"
+ transform="matrix(0.35865594,0,0,0.35865594,458.57767,253.49106)">
+ <text
+ inkscape:label="value"
+ id="text5151-6"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan5149-7"
+ sodipodi:role="line">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path89-5"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="14.956363"
+ inkscape:label="-100" />
+ <path
+ inkscape:label="-10"
+ inkscape:transform-center-y="7.4781812"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path88-3"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect85-5"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ inkscape:label="+100"
+ inkscape:transform-center-y="-14.956361"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path87-6"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path86-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-7.4781804"
+ inkscape:label="+10" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path91-9"
+ sodipodi:sides="4"
+ sodipodi:cx="80.740723"
+ sodipodi:cy="165.17262"
+ sodipodi:r1="57.015106"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.77793027"
+ sodipodi:arg2="1.5633284"
+ inkscape:flatsided="true"
+ inkscape:rounded="-0.65084865"
+ inkscape:randomized="0"
+ d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z"
+ inkscape:transform-center-y="-14.956361"
+ inkscape:label="=0" />
+ </g>
+ <text
+ inkscape:label="HMI:Display@paff"
+ id="text1457-1"
+ y="215.65211"
+ x="2632.9148"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="215.65211"
+ x="2632.9148"
+ id="tspan1455-2"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@paff"
+ id="g1505-7"
+ transform="matrix(0.28590269,0,0,0.28590269,2430.782,153.19299)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1461-0"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1459-9"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1463-3"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:2"
+ id="g1471-6"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1465-0"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1469-6"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1467-2"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1479-6"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1473-1"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1477-8"><tspan
+ sodipodi:role="line"
+ id="tspan1475-7"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1487-9"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1481-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1485-0"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1483-2"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1495-3"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1489-7"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1493-5"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1491-9"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1503-2"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1497-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1501-8"><tspan
+ sodipodi:role="line"
+ id="tspan1499-9"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="actual_label"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="2471.7039"
+ y="164.81787"
+ id="text1527-7"><tspan
+ style="stroke-width:0.63690436px"
+ sodipodi:role="line"
+ id="tspan1525-3"
+ x="2471.7039"
+ y="164.81787">HMI_LOCAL variables</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="2632.9148"
+ y="335.65213"
+ id="text1557-6"
+ inkscape:label="HMI:Display@.piff"><tspan
+ sodipodi:role="line"
+ id="tspan1555-1"
+ x="2632.9148"
+ y="335.65213"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ transform="matrix(0.28590269,0,0,0.28590269,2430.782,273.19298)"
+ id="g1605-2"
+ inkscape:label="HMI:Input@.piff"
+ style="stroke-width:2">
+ <text
+ inkscape:label="value"
+ id="text1561-9"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1559-3"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1563-1"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g1571-9"
+ style="stroke-width:2">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path1565-4"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text1569-7"><tspan
+ sodipodi:role="line"
+ id="tspan1567-8"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:1px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g1579-4"
+ style="stroke-width:2">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1573-5"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text1577-0"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan1575-3"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g1587-6"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1581-1"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text1585-0"><tspan
+ sodipodi:role="line"
+ id="tspan1583-6"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:1px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g1595-3"
+ style="stroke-width:2">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1589-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text1593-0"><tspan
+ sodipodi:role="line"
+ id="tspan1591-6"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:1px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g1603-1"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1597-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text1601-5"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan1599-4"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ id="text1609-7"
+ y="284.81787"
+ x="2471.7039"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="284.81787"
+ x="2471.7039"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px"
+ id="tspan1611-6">PAGE_LOCAL variables</tspan></text>
+ <text
+ inkscape:label="HMI:Display@paff"
+ id="text1457-5"
+ y="1208.4301"
+ x="276.83508"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="1208.4301"
+ x="276.83508"
+ id="tspan1455-6"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@paff"
+ id="g1505-9"
+ transform="matrix(0.28590269,0,0,0.28590269,74.702238,1145.9709)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1461-3"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1459-7"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1463-4"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:2"
+ id="g1471-5"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1465-2"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1469-5"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1467-4"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1479-7"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1473-4"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1477-4"><tspan
+ sodipodi:role="line"
+ id="tspan1475-3"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1487-0"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1481-7"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1485-8"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1483-6"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1495-8"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1489-8"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1493-4"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1491-3"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1503-1"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1497-4"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1501-9"><tspan
+ sodipodi:role="line"
+ id="tspan1499-2"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="actual_label"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="115.62414"
+ y="1157.5958"
+ id="text1527-0"><tspan
+ style="stroke-width:0.63690436px"
+ sodipodi:role="line"
+ id="tspan1525-6"
+ x="115.62414"
+ y="1157.5958">HMI_LOCAL variables</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="276.83508"
+ y="1328.4301"
+ id="text1557-8"
+ inkscape:label="HMI:Display@.piff"><tspan
+ sodipodi:role="line"
+ id="tspan1555-9"
+ x="276.83508"
+ y="1328.4301"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ transform="matrix(0.28590269,0,0,0.28590269,74.702238,1265.9709)"
+ id="g1605-26"
+ inkscape:label="HMI:Input@.piff"
+ style="stroke-width:2">
+ <text
+ inkscape:label="value"
+ id="text1561-6"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1559-4"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1563-9"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g1571-5"
+ style="stroke-width:2">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path1565-0"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text1569-4"><tspan
+ sodipodi:role="line"
+ id="tspan1567-87"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:1px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g1579-1"
+ style="stroke-width:2">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1573-7"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text1577-2"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan1575-7"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g1587-2"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1581-2"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text1585-6"><tspan
+ sodipodi:role="line"
+ id="tspan1583-1"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:1px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g1595-0"
+ style="stroke-width:2">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1589-6"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text1593-1"><tspan
+ sodipodi:role="line"
+ id="tspan1591-5"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:1px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g1603-9"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1597-4"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text1601-9"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan1599-0"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ id="text1609-9"
+ y="1277.5958"
+ x="115.62414"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="1277.5958"
+ x="115.62414"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px"
+ id="tspan1611-1">PAGE_LOCAL variables</tspan></text>
+ <g
+ id="g2387"
+ inkscape:label="HMI:VarInit:42@level" />
+ <g
+ inkscape:label="HMI:VarInit:"a string"@paff"
+ id="g2389" />
+ <g
+ id="g825"
+ inkscape:label="HMI:VarInit:"a page string"@.piff" />
+ <g
+ inkscape:label="HMI:VarInit:50@.position"
+ id="g906" />
+ <g
+ id="g908"
+ inkscape:label="HMI:VarInit:100@.range" />
+ <g
+ inkscape:label="HMI:VarInit:7@.visibleAlarms"
+ id="g906-3" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g7994"
+ id="use8000"
+ transform="translate(-1380,800)"
+ width="100%"
+ height="100%"
+ inkscape:label="HMI:Page:AlarmPage" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-738.18359"
+ y="86.260696"
+ id="text2019"><tspan
+ sodipodi:role="line"
+ id="tspan2017"
+ x="-738.18359"
+ y="86.260696"
+ style="fill:#ffffff;stroke-width:1px">Alarm Page</tspan></text>
+ <g
+ id="g1289"
+ inkscape:label="HMI:JsonTable:/alarms@/ALARMNOTIFY@.range@.position@.visibleAlarms@.filter"
+ transform="matrix(0.5,0,0,0.5,-1757.3465,454.4367)">
+ <g
+ id="g5231"
+ inkscape:label="data">
+ <g
+ id="g1384"
+ inkscape:label="[6]"
+ transform="translate(52.326002,240.30067)">
+ <g
+ id="g901"
+ inkscape:label="# commented group"
+ transform="translate(419.716,-441.73566)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 528.62458,486.07049 23.69122,21.00809"
+ id="path903"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#use1297"
+ inkscape:transform-center-x="0.11123312"
+ inkscape:transform-center-y="2.2824109"
+ id="use1378"
+ width="100%"
+ height="100%"
+ transform="matrix(0.7609336,0,0,0.7609336,199.15217,164.3798)"
+ inkscape:label=".status onClick[acknowledge]=.alarmid" />
+ <use
+ transform="matrix(1.3019536,0,0,1.3019536,39.582906,238.73392)"
+ x="0"
+ y="0"
+ xlink:href="#use913"
+ id="use966"
+ width="100%"
+ height="100%"
+ inkscape:label=".status textContent=.time"
+ style="stroke-width:1.53615308" />
+ <use
+ inkscape:label=".status textContent=.text"
+ height="100%"
+ width="100%"
+ id="use1832"
+ xlink:href="#use913"
+ y="0"
+ x="0"
+ transform="matrix(2,0,0,2,85.95394,349.02524)" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 972.0318,65.34292 H 2780.6604"
+ id="path2238"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="# separation line" />
+ </g>
+ <use
+ inkscape:label="[5]"
+ transform="translate(0,-62.914773)"
+ height="100%"
+ width="100%"
+ id="use5200"
+ xlink:href="#g1384"
+ y="0"
+ x="0" />
+ <use
+ inkscape:label="[4]"
+ x="0"
+ y="0"
+ xlink:href="#g1384"
+ id="use5202"
+ width="100%"
+ height="100%"
+ transform="translate(0,-125.82955)" />
+ <use
+ inkscape:label="[3]"
+ transform="translate(0,-188.74432)"
+ height="100%"
+ width="100%"
+ id="use5204"
+ xlink:href="#g1384"
+ y="0"
+ x="0" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g1384"
+ id="use2176"
+ width="100%"
+ height="100%"
+ transform="translate(0,-251.65909)"
+ inkscape:label="[2]" />
+ <use
+ inkscape:label="[1]"
+ transform="translate(0,-314.57387)"
+ height="100%"
+ width="100%"
+ id="use2178"
+ xlink:href="#g1384"
+ y="0"
+ x="0" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g1384"
+ id="use2180"
+ width="100%"
+ height="100%"
+ transform="translate(0,-377.48864)"
+ inkscape:label="[0]" />
+ </g>
+ <g
+ style="stroke-width:1.04184687"
+ inkscape:label="action_reset"
+ id="g1839-6"
+ transform="matrix(2,0,0,2,-181.39997,-864.49004)">
+ <g
+ style="stroke-width:1.04184687"
+ inkscape:label="bg"
+ id="g945-7">
+ <rect
+ rx="26.820074"
+ inkscape:label="button"
+ ry="23.177595"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect943-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ style="stroke-width:1.04184687"
+ inkscape:label="text"
+ id="g951-3">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text949-5"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan947-6"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px">reset</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g1332"
+ inkscape:label="polygons"
+ transform="translate(-1556.6506,114.93627)">
+ <path
+ inkscape:transform-center-y="2.9995242"
+ inkscape:transform-center-x="0.14620371"
+ d="m 1081.9632,-246.81598 -27.9274,5.51725 -27.9273,5.51724 9.1856,-26.94439 9.1856,-26.94439 18.7417,21.42715 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="1.3757507"
+ sodipodi:arg1="0.32855317"
+ sodipodi:r2="16.43548"
+ sodipodi:r1="32.87096"
+ sodipodi:cy="-257.42258"
+ sodipodi:cx="1050.8505"
+ sodipodi:sides="3"
+ id="path1298"
+ style="fill:#8fbc8f;fill-opacity:1;stroke:#ff0000"
+ sodipodi:type="star"
+ inkscape:label="three" />
+ <path
+ sodipodi:type="star"
+ style="fill:#ff8c00;fill-opacity:1;stroke:#ff0000"
+ id="path1308"
+ sodipodi:sides="4"
+ sodipodi:cx="1110.8505"
+ sodipodi:cy="-257.42258"
+ sodipodi:r1="32.87096"
+ sodipodi:r2="16.43548"
+ sodipodi:arg1="0.32855317"
+ sodipodi:arg2="1.1139513"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1141.9632,-246.81598 -23.8627,4.1434 -17.8566,16.3627 -4.1434,-23.8627 -16.3627,-17.8566 23.8627,-4.1434 17.8566,-16.3627 4.1434,23.8627 z"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ inkscape:label="four" />
+ <path
+ inkscape:transform-center-y="2.9995242"
+ inkscape:transform-center-x="0.14620371"
+ d="m 1201.9632,-246.81598 -21.6446,2.82766 -9.9413,19.4333 -9.3778,-19.7114 -21.5541,-3.44949 15.8487,-15.00997 -3.3799,-21.5652 19.1728,10.43473 19.4653,-9.87854 -3.9993,21.45898 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="0.9568717"
+ sodipodi:arg1="0.32855317"
+ sodipodi:r2="16.43548"
+ sodipodi:r1="32.87096"
+ sodipodi:cy="-257.42258"
+ sodipodi:cx="1170.8505"
+ sodipodi:sides="5"
+ id="path1310"
+ style="fill:#bc8f8f;fill-opacity:1;stroke:#ff0000"
+ sodipodi:type="star"
+ inkscape:label="five" />
+ <path
+ sodipodi:type="star"
+ style="fill:#f0f8ff;fill-opacity:1;stroke:#ff0000"
+ id="path1312"
+ sodipodi:sides="6"
+ sodipodi:cx="1230.8505"
+ sodipodi:cy="-257.42258"
+ sodipodi:r1="32.87096"
+ sodipodi:r2="16.43548"
+ sodipodi:arg1="0.32855317"
+ sodipodi:arg2="0.85215195"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1261.9632,-246.81598 -20.2922,1.76437 -4.4498,19.87672 -11.674,-16.69134 -19.4387,6.08474 8.6181,-18.45571 -14.9888,-13.79198 20.2921,-1.76436 4.4498,-19.87673 11.6741,16.69134 19.4386,-6.08473 -8.6181,18.4557 z"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ inkscape:label="six" />
+ </g>
+ <g
+ inkscape:label="HMI:List"
+ id="g1311"
+ transform="translate(-1396.6506,94.93627)">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1298"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1293"
+ width="100%"
+ height="100%"
+ transform="translate(-69.76703,100)"
+ style="display:inline"
+ inkscape:label="ack" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1308"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1295"
+ width="100%"
+ height="100%"
+ transform="translate(-126.48474,100)"
+ inkscape:label="alarm" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1310"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1297"
+ width="100%"
+ height="100%"
+ transform="translate(-186.33351,100)"
+ inkscape:label="active" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1312"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1299"
+ width="100%"
+ height="100%"
+ transform="translate(-246.4848,100)"
+ inkscape:label="disabled" />
+ </g>
+ <g
+ transform="matrix(0.33436432,0,0,0.33436432,-584.21063,278.8185)"
+ inkscape:label="HMI:Input@/ALARMNOTIFY"
+ id="g5222"
+ style="stroke-width:0.75594342">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text5208"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan5206"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:0.75594342px">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path5212"
+ sodipodi:sides="3"
+ sodipodi:cx="608.70374"
+ sodipodi:cy="-209.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:transform-center-y="14.956362"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect5214"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-14.95636"
+ d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="112.17263"
+ sodipodi:cx="608.70374"
+ sodipodi:sides="3"
+ id="path5218"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <g
+ id="g1766"
+ inkscape:label="HMI:ScrollBar@.range@.position@.visibleAlarms"
+ transform="translate(9.7583007e-6)">
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path1266"
+ d="m -234.01097,332.35504 21.18736,28.36866 h -42.37471 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.42391574px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:label="pageup" />
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.4007318px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -234.01097,686.72773 21.18736,-27.45222 h -42.37471 z"
+ id="path1268"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="pagedown" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.30952382;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627348px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1264-3"
+ width="42.374725"
+ height="276.64423"
+ x="-255.19838"
+ y="371.91068"
+ rx="7.6034913"
+ ry="6.8822322"
+ inkscape:label="range" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1264"
+ width="42.374725"
+ height="82.841492"
+ x="-255.19838"
+ y="371.91068"
+ rx="7.6034913"
+ ry="7"
+ inkscape:label="cursor" />
+ </g>
+ <g
+ id="g893"
+ inkscape:label="textstyles"
+ transform="translate(-1566.6506,56.936266)">
+ <text
+ inkscape:label="red"
+ id="text1382-7"
+ y="-171.54395"
+ x="1298.9102"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ y="-171.54395"
+ x="1298.9102"
+ id="tspan1380-5"
+ sodipodi:role="line"
+ style="stroke-width:0.5">value</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1298.9102"
+ y="-191.54395"
+ id="text875"
+ inkscape:label="black"><tspan
+ style="fill:#000000;stroke-width:0.5"
+ sodipodi:role="line"
+ id="tspan873"
+ x="1298.9102"
+ y="-191.54395">value</tspan></text>
+ <text
+ inkscape:label="green"
+ id="text879"
+ y="-211.54395"
+ x="1298.9102"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ y="-211.54395"
+ x="1298.9102"
+ id="tspan877"
+ sodipodi:role="line"
+ style="fill:#00ff00;stroke-width:0.5">value</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1298.9102"
+ y="-231.54395"
+ id="text883"
+ inkscape:label="gray"><tspan
+ style="fill:#999999;stroke-width:0.5"
+ sodipodi:role="line"
+ id="tspan881"
+ x="1298.9102"
+ y="-231.54395">value</tspan></text>
+ </g>
+ <g
+ id="g907"
+ inkscape:label="HMI:TextStyleList"
+ transform="translate(-990.65059,102.93627)">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text879"
+ id="use913"
+ width="100%"
+ height="100%"
+ transform="translate(-573,60.999998)"
+ inkscape:label="active" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text875"
+ id="use911"
+ width="100%"
+ height="100%"
+ transform="translate(-573,40.999998)"
+ inkscape:label="ack" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text1382-7"
+ id="use909"
+ width="100%"
+ height="100%"
+ transform="translate(-573,20.999998)"
+ inkscape:label="alarm" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text883"
+ id="use915"
+ width="100%"
+ height="100%"
+ transform="translate(-573,80.999998)"
+ inkscape:label="disabled" />
+ </g>
+ <g
+ transform="matrix(0.33436432,0,0,0.33436432,-1048.7703,278.8185)"
+ inkscape:label="HMI:Input@.range"
+ id="g5222-3"
+ style="stroke-width:0.75594342">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text5208-6"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan5206-7"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:0.75594342px">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path5212-5"
+ sodipodi:sides="3"
+ sodipodi:cx="620.66675"
+ sodipodi:cy="-209.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 672.4771,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:transform-center-y="14.956362"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect5214-3"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-14.95636"
+ d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="112.17263"
+ sodipodi:cx="620.66675"
+ sodipodi:sides="3"
+ id="path5218-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <g
+ transform="matrix(0.33436432,0,0,0.33436432,-816.49047,278.8185)"
+ inkscape:label="HMI:Input@.position"
+ id="g5222-6"
+ style="stroke-width:0.75594342">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text5208-2"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan5206-9"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:0.75594342px">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path5212-1"
+ sodipodi:sides="3"
+ sodipodi:cx="608.70374"
+ sodipodi:cy="-209.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:transform-center-y="14.956362"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect5214-2"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-14.95636"
+ d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="112.17263"
+ sodipodi:cx="608.70374"
+ sodipodi:sides="3"
+ id="path5218-7"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-935.5838"
+ y="291.8042"
+ id="text887"><tspan
+ sodipodi:role="line"
+ id="tspan885"
+ x="-935.5838"
+ y="291.8042"
+ style="fill:#ffffff;stroke-width:1px">range</tspan></text>
+ <text
+ id="text891"
+ y="291.8042"
+ x="-702.87115"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="291.8042"
+ x="-702.87115"
+ id="tspan889"
+ sodipodi:role="line">position</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-471.33417"
+ y="291.8042"
+ id="text895"><tspan
+ sodipodi:role="line"
+ id="tspan893"
+ x="-471.33417"
+ y="291.8042"
+ style="fill:#ffffff;stroke-width:1px">notify</tspan></text>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@/ALARMTEXT"
+ id="g1442-3"
+ transform="matrix(0.5,0,0,0.5,-915.0529,113.05833)">
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="77.265099"
+ x="-648.04266"
+ height="179.83517"
+ width="1195.5988"
+ id="rect1400-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ ry="36.786537" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="545.95312"
+ y="218.24219"
+ id="text1398-6"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1396-7"
+ x="545.95312"
+ y="218.24219"
+ style="text-align:end;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke-width:2px">8888</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.04184687"
+ inkscape:label="HMI:Input@/SENDALARM"
+ id="g953"
+ transform="translate(-1386.3329,-450.57041)">
+ <g
+ id="g1839"
+ inkscape:label="+1">
+ <g
+ id="g945"
+ inkscape:label="bg"
+ style="stroke-width:1.04184687">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect943"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="23.177595"
+ inkscape:label="button"
+ rx="26.820074" />
+ </g>
+ <g
+ id="g951"
+ inkscape:label="text"
+ style="stroke-width:1.04184687">
+ <text
+ inkscape:label="setting_jmp"
+ id="text949"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan947"
+ sodipodi:role="line">trigger</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@/ALARMSTATUS"
+ id="g1887"
+ transform="matrix(0.28590269,0,0,0.28590269,-631.94615,129.07897)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:148.39013672px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="329.13501"
+ y="214.01605"
+ id="text1843"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1841"
+ x="329.13501"
+ y="214.01605"
+ style="text-align:center;text-anchor:middle;stroke-width:1.99999988px">8888</tspan></text>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1853"
+ inkscape:label="="ack""
+ transform="matrix(1.8285648,0,0,1.8285648,-936.17681,115.40643)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1851"
+ y="112.62867"
+ x="738.57678"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.54687697px"
+ y="112.62867"
+ x="738.57678"
+ id="tspan1849"
+ sodipodi:role="line">ack</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1861"
+ inkscape:label="="disabled""
+ transform="matrix(1.8285648,0,0,1.8285648,-1012.4359,109.57379)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847-7"
+ d="m 738.52607,148.37593 -80.6293,0.60214 -0.6021,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="656.177"
+ y="115.81841"
+ id="text1859"><tspan
+ sodipodi:role="line"
+ id="tspan1857"
+ x="656.177"
+ y="115.81841"
+ style="stroke-width:0.54687697px">disabled</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1869"
+ inkscape:label="="active""
+ transform="matrix(1.8285648,0,0,1.8285648,-998.18055,84.666267)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847-5"
+ d="m 630.35651,161.99728 -80.6293,0.60214 -0.6021,-80.629287 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1867"
+ y="129.43976"
+ x="559.26227"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.54687697px"
+ y="129.43976"
+ x="559.26227"
+ id="tspan1865"
+ sodipodi:role="line">active</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1877"
+ inkscape:label="="alarm""
+ transform="matrix(1.8285648,0,0,1.8285648,-1114.212,118.29284)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847-3"
+ d="m 994.91832,143.60768 -80.62931,0.60214 -0.6021,-80.629285 80.62931,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1875"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.54687697px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1873"
+ sodipodi:role="line">alarm</tspan></text>
+ </g>
+ </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:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-926.47461"
+ y="134.36742"
+ id="text2019-9"><tspan
+ sodipodi:role="line"
+ id="tspan2017-2"
+ x="-926.47461"
+ y="134.36742"
+ style="fill:#ffffff;stroke-width:1px">Alarm Text</tspan></text>
+ <text
+ id="text2174"
+ y="134.36742"
+ x="-546.47461"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="134.36742"
+ x="-546.47461"
+ id="tspan2172"
+ sodipodi:role="line">Status</tspan></text>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,326.35945,-231.48695)"
+ inkscape:label="HMI:Jump:AlarmPage"
+ id="g2198">
+ <g
+ inkscape:label="button"
+ id="g2190">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect2188"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ rx="35.579063" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g2196">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text2194"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan2192"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Alarms</tspan></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="628.18188"
+ y="242.50345"
+ id="text889"
+ inkscape:label="HMI:Display@/PUMP0/FLOATING"><tspan
+ sodipodi:role="line"
+ id="tspan887"
+ x="628.18188"
+ y="242.50345"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ style="stroke-width:0.75594342"
+ id="g900"
+ inkscape:label="HMI:Input@.filter"
+ transform="matrix(0.33436432,0,0,0.33436432,-1288.7703,278.8185)">
+ <text
+ inkscape:label="value"
+ id="text892"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.75594342px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan890"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect896"
+ width="615.05096"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ </g>
+ <text
+ id="text904"
+ y="291.8042"
+ x="-1175.5837"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="291.8042"
+ x="-1175.5837"
+ id="tspan902"
+ sodipodi:role="line">filter</tspan></text>
+ <g
+ id="g909"
+ inkscape:label="HMI:VarInit:"POS"@.filter" />
+ <g
+ transform="matrix(0.14295135,0,0,0.14295135,449.21833,37.615184)"
+ id="g4646"
+ inkscape:label="HMI:Input@paff"
+ style="stroke-width:4">
+ <text
+ inkscape:label="value"
+ id="text4602"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:4px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan4600"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4604"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g4612"
+ style="stroke-width:4">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path4606"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text4610"><tspan
+ sodipodi:role="line"
+ id="tspan4608"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:2px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g4620"
+ style="stroke-width:4">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4614"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text4618"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan4616"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g4628"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4622"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text4626"><tspan
+ sodipodi:role="line"
+ id="tspan4624"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:2px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g4636"
+ style="stroke-width:4">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4630"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text4634"><tspan
+ sodipodi:role="line"
+ id="tspan4632"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:2px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g4644"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4638"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text4642"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan4640"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <g
+ style="stroke-width:4"
+ inkscape:label="HMI:Input@.piff"
+ id="g4694"
+ transform="matrix(0.14295135,0,0,0.14295135,449.21833,97.61518)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text4650"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan4648"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:4px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect4652"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:4"
+ id="g4660"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4654"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4658"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan4656"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4668"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4662"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text4666"><tspan
+ sodipodi:role="line"
+ id="tspan4664"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:2px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4676"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4670"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text4674"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan4672"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4684"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4678"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text4682"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan4680"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4692"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4686"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text4690"><tspan
+ sodipodi:role="line"
+ id="tspan4688"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:2px">mhe</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g7994"
+ inkscape:label="Gray Page Template">
+ <rect
+ y="-800"
+ x="0"
+ height="720"
+ width="1280"
+ id="rect4270"
+ style="color:#000000;fill:#4d4d4d" />
+ <g
+ id="g4282"
+ inkscape:label="HMI:Jump:Home"
+ transform="translate(-10.6526,-2134.1633)">
+ <g
+ id="g4274"
+ inkscape:label="button">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z"
+ id="path4272"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssccc" />
+ </g>
+ <g
+ id="g4280"
+ inkscape:label="text">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="1436.9814"
+ id="text4278"
+ inkscape:label="home_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan4276"
+ x="1090.7626"
+ y="1436.9814"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text>
+ </g>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1905.4562"
+ y="2520.5203"
+ id="text3613"><tspan
+ sodipodi:role="line"
+ id="tspan3611"
+ x="1905.4562"
+ y="2538.2156"
+ style="stroke-width:0.5" /></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="2852.2148"
+ y="1710.4241"
+ id="text10521-7"><tspan
+ sodipodi:role="line"
+ id="tspan10519-6"
+ x="2852.2148"
+ y="1745.8147" /></text>
+ <use
+ inkscape:label="HMI:Page:AlarmPage2"
+ height="100%"
+ width="100%"
+ transform="translate(-1380,1580)"
+ id="use938"
+ xlink:href="#g7994"
+ y="0"
+ x="0" />
+ <text
+ id="text942"
+ y="866.26068"
+ x="-738.18359"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="866.26068"
+ x="-738.18359"
+ id="tspan940"
+ sodipodi:role="line">Alarm Page 2</tspan></text>
+ <g
+ transform="matrix(0.5,0,0,0.5,-1757.3465,1234.4367)"
+ inkscape:label="HMI:JsonTable:/alarms@/ALARMNOTIFY@.range@.position@.visibleAlarms@.filter"
+ id="g973">
+ <g
+ inkscape:label="data"
+ id="g971">
+ <g
+ transform="translate(52.326002,240.30067)"
+ inkscape:label="[5]"
+ id="g956">
+ <g
+ transform="translate(419.716,-441.73566)"
+ inkscape:label="# commented group"
+ id="g946">
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path944"
+ d="m 528.62458,486.07049 23.69122,21.00809"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <use
+ inkscape:label=".status onClick[acknowledge]=.alarmid"
+ transform="matrix(0.7609336,0,0,0.7609336,199.15217,164.3798)"
+ height="100%"
+ width="100%"
+ id="use948"
+ inkscape:transform-center-y="2.2824109"
+ inkscape:transform-center-x="0.11123312"
+ xlink:href="#use1297"
+ y="0"
+ x="0" />
+ <use
+ style="stroke-width:1.53615308"
+ inkscape:label=".status textContent=.time"
+ height="100%"
+ width="100%"
+ id="use950"
+ xlink:href="#use913"
+ y="0"
+ x="0"
+ transform="matrix(1.3019536,0,0,1.3019536,39.582906,238.73392)" />
+ <use
+ transform="matrix(2,0,0,2,85.95394,349.02524)"
+ x="0"
+ y="0"
+ xlink:href="#use913"
+ id="use952"
+ width="100%"
+ height="100%"
+ inkscape:label=".status textContent=.text" />
+ <path
+ inkscape:label="# separation line"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path954"
+ d="M 972.0318,65.34292 H 2780.6604"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g956"
+ id="use1145"
+ width="100%"
+ height="100%"
+ transform="translate(0,-80)"
+ inkscape:label="[4]" />
+ <use
+ transform="translate(0,-160)"
+ height="100%"
+ width="100%"
+ id="use1147"
+ xlink:href="#g956"
+ y="0"
+ x="0"
+ inkscape:label="[3]" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g956"
+ id="use1149"
+ width="100%"
+ height="100%"
+ transform="translate(0,-240)"
+ inkscape:label="[2]" />
+ <use
+ transform="translate(0,-320)"
+ height="100%"
+ width="100%"
+ id="use1151"
+ xlink:href="#g956"
+ y="0"
+ x="0"
+ inkscape:label="[1]" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g956"
+ id="use1153"
+ width="100%"
+ height="100%"
+ transform="translate(0,-400)"
+ inkscape:label="[0]" />
+ </g>
+ </g>
+ <g
+ style="stroke-width:0.75594342"
+ id="g986"
+ inkscape:label="HMI:Input@/ALARMNOTIFY"
+ transform="matrix(0.33436432,0,0,0.33436432,-584.21063,1058.8185)">
+ <text
+ inkscape:label="value"
+ id="text978"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.75594342px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan976"
+ sodipodi:role="line">8888</tspan></text>
+ <path
+ inkscape:label="-1"
+ inkscape:transform-center-y="14.956362"
+ d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-209.2599"
+ sodipodi:cx="608.70374"
+ sodipodi:sides="3"
+ id="path980"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect982"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path984"
+ sodipodi:sides="3"
+ sodipodi:cx="608.70374"
+ sodipodi:cy="112.17263"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:transform-center-y="-14.95636"
+ inkscape:label="+1" />
+ </g>
+ <g
+ style="stroke-width:0.75594342"
+ id="g1012"
+ inkscape:label="HMI:Input@.range"
+ transform="matrix(0.33436432,0,0,0.33436432,-1048.7703,1058.8185)">
+ <text
+ inkscape:label="value"
+ id="text1004"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.75594342px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1002"
+ sodipodi:role="line">8888</tspan></text>
+ <path
+ inkscape:label="-1"
+ inkscape:transform-center-y="14.956362"
+ d="m 672.4771,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-209.2599"
+ sodipodi:cx="620.66675"
+ sodipodi:sides="3"
+ id="path1006"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1008"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1010"
+ sodipodi:sides="3"
+ sodipodi:cx="620.66675"
+ sodipodi:cy="112.17263"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:transform-center-y="-14.95636"
+ inkscape:label="+1" />
+ </g>
+ <g
+ style="stroke-width:0.75594342"
+ id="g1025"
+ inkscape:label="HMI:Input@.position"
+ transform="matrix(0.33436432,0,0,0.33436432,-816.49047,1058.8185)">
+ <text
+ inkscape:label="value"
+ id="text1016"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.75594342px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1014"
+ sodipodi:role="line">8888</tspan></text>
+ <path
+ inkscape:label="-1"
+ inkscape:transform-center-y="14.956362"
+ d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-209.2599"
+ sodipodi:cx="608.70374"
+ sodipodi:sides="3"
+ id="path1018"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1021"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1023"
+ sodipodi:sides="3"
+ sodipodi:cx="608.70374"
+ sodipodi:cy="112.17263"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:transform-center-y="-14.95636"
+ inkscape:label="+1" />
+ </g>
+ <text
+ id="text1029"
+ y="1071.8042"
+ x="-935.5838"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="1071.8042"
+ x="-935.5838"
+ id="tspan1027"
+ sodipodi:role="line">range</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-702.87115"
+ y="1071.8042"
+ id="text1033"><tspan
+ sodipodi:role="line"
+ id="tspan1031"
+ x="-702.87115"
+ y="1071.8042"
+ style="fill:#ffffff;stroke-width:1px">position</tspan></text>
+ <text
+ id="text1037"
+ y="1071.8042"
+ x="-471.33417"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="1071.8042"
+ x="-471.33417"
+ id="tspan1035"
+ sodipodi:role="line">notify</tspan></text>
+ <g
+ transform="matrix(0.5,0,0,0.5,-915.0529,893.05833)"
+ id="g1045"
+ inkscape:label="HMI:Input@/ALARMTEXT"
+ style="stroke-width:2">
+ <rect
+ ry="36.786537"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1039"
+ width="1195.5988"
+ height="179.83517"
+ x="-648.04266"
+ y="77.265099"
+ onclick=""
+ inkscape:label="edit" />
+ <text
+ inkscape:label="value"
+ id="text1043"
+ y="218.24219"
+ x="545.95312"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:end;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke-width:2px"
+ y="218.24219"
+ x="545.95312"
+ id="tspan1041"
+ sodipodi:role="line">8888</tspan></text>
+ </g>
+ <g
+ transform="translate(-1386.3329,329.42959)"
+ id="g1059"
+ inkscape:label="HMI:Input@/SENDALARM"
+ style="stroke-width:1.04184687">
+ <g
+ inkscape:label="+1"
+ id="g1057">
+ <g
+ style="stroke-width:1.04184687"
+ inkscape:label="bg"
+ id="g1049">
+ <rect
+ rx="26.820074"
+ inkscape:label="button"
+ ry="23.177595"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1047"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ style="stroke-width:1.04184687"
+ inkscape:label="text"
+ id="g1055">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text1053"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1051"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px">trigger</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ transform="matrix(0.28590269,0,0,0.28590269,-631.94615,909.07897)"
+ id="g1099"
+ inkscape:label="HMI:Input@/ALARMSTATUS"
+ style="stroke-width:2">
+ <text
+ inkscape:label="value"
+ id="text1064"
+ y="214.01605"
+ x="329.13501"
+ style="font-style:normal;font-weight:normal;font-size:148.39013672px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;stroke-width:1.99999988px"
+ y="214.01605"
+ x="329.13501"
+ id="tspan1062"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ transform="matrix(1.8285648,0,0,1.8285648,-936.17681,115.40643)"
+ inkscape:label="="ack""
+ id="g1072"
+ style="stroke-width:1.09375393">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path1066"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="738.57678"
+ y="112.62867"
+ id="text1070"><tspan
+ sodipodi:role="line"
+ id="tspan1068"
+ x="738.57678"
+ y="112.62867"
+ style="stroke-width:0.54687697px">ack</tspan></text>
+ </g>
+ <g
+ transform="matrix(1.8285648,0,0,1.8285648,-1012.4359,109.57379)"
+ inkscape:label="="disabled""
+ id="g1080"
+ style="stroke-width:1.09375393">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 738.52607,148.37593 -80.6293,0.60214 -0.6021,-80.629288 80.6293,-0.60214 z"
+ id="path1074"
+ inkscape:connector-curvature="0" />
+ <text
+ id="text1078"
+ y="115.81841"
+ x="656.177"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.54687697px"
+ y="115.81841"
+ x="656.177"
+ id="tspan1076"
+ sodipodi:role="line">disabled</tspan></text>
+ </g>
+ <g
+ transform="matrix(1.8285648,0,0,1.8285648,-998.18055,84.666267)"
+ inkscape:label="="active""
+ id="g1088"
+ style="stroke-width:1.09375393">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 630.35651,161.99728 -80.6293,0.60214 -0.6021,-80.629287 80.6293,-0.60214 z"
+ id="path1082"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="559.26227"
+ y="129.43976"
+ id="text1086"><tspan
+ sodipodi:role="line"
+ id="tspan1084"
+ x="559.26227"
+ y="129.43976"
+ style="stroke-width:0.54687697px">active</tspan></text>
+ </g>
+ <g
+ transform="matrix(1.8285648,0,0,1.8285648,-1114.212,118.29284)"
+ inkscape:label="="alarm""
+ id="g1097"
+ style="stroke-width:1.09375393">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 994.91832,143.60768 -80.62931,0.60214 -0.6021,-80.629285 80.62931,-0.60214 z"
+ id="path1090"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text1094"><tspan
+ sodipodi:role="line"
+ id="tspan1092"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:0.54687697px">alarm</tspan></text>
+ </g>
+ </g>
+ <text
+ id="text1103"
+ y="914.36743"
+ x="-926.47461"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="914.36743"
+ x="-926.47461"
+ id="tspan1101"
+ sodipodi:role="line">Alarm Text</tspan></text>
+ <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:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-546.47461"
+ y="914.36743"
+ id="text1107"><tspan
+ sodipodi:role="line"
+ id="tspan1105"
+ x="-546.47461"
+ y="914.36743"
+ style="fill:#ffffff;stroke-width:1px">Status</tspan></text>
+ <g
+ transform="matrix(0.33436432,0,0,0.33436432,-1288.7703,1058.8185)"
+ inkscape:label="HMI:Input@.filter"
+ id="g1115"
+ style="stroke-width:0.75594342">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1111"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1109"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:0.75594342px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="615.05096"
+ id="rect1113"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-1175.5837"
+ y="1071.8042"
+ id="text1119"><tspan
+ sodipodi:role="line"
+ id="tspan1117"
+ x="-1175.5837"
+ y="1071.8042"
+ style="fill:#ffffff;stroke-width:1px">filter</tspan></text>
+ <g
+ id="g1131"
+ inkscape:label="HMI:Jump:AlarmPage2"
+ transform="matrix(0.57180538,0,0,0.57180538,-1914.3456,-318.69327)">
+ <g
+ id="g1123"
+ inkscape:label="button">
+ <rect
+ rx="35.579063"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1121"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1129"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1127"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan1125"
+ sodipodi:role="line">Alarms2</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g1143"
+ inkscape:label="HMI:Jump:AlarmPage"
+ transform="matrix(0.57180538,0,0,0.57180538,-1915.7751,459.87722)">
+ <g
+ id="g1135"
+ inkscape:label="button">
+ <rect
+ rx="35.579063"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1133"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1141"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1139"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan1137"
+ sodipodi:role="line">Alarms</tspan></text>
+ </g>
+ </g>
+ <g
+ inkscape:label="HMI:ScrollBar@.range@.position@.visibleAlarms"
+ id="g1165"
+ transform="translate(-2.4169924e-7,779.99999)">
+ <path
+ inkscape:label="pageup"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.42391574px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -234.01097,332.35504 21.18736,28.36866 h -42.37471 z"
+ id="path1157"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:label="pagedown"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path1159"
+ d="m -234.01097,686.72773 21.18736,-27.45222 h -42.37471 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.4007318px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ inkscape:label="range"
+ ry="6.8822322"
+ rx="7.6034913"
+ y="371.91068"
+ x="-255.19838"
+ height="276.64423"
+ width="42.374725"
+ id="rect1161"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.30952382;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627348px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ inkscape:label="cursor"
+ ry="7"
+ rx="7.6034913"
+ y="371.91068"
+ x="-255.19838"
+ height="82.841492"
+ width="42.374725"
+ id="rect1163"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1569.0527"
+ y="594.56055"
+ id="text1042"
+ inkscape:label="HMI:Display@page_node"><tspan
+ sodipodi:role="line"
+ id="tspan1040"
+ x="1569.0527"
+ y="594.56055"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.25px">page node</tspan></text>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,165.58244,517.80347)"
+ id="g443-9"
+ inkscape:label="HMI:ToggleButton@/PUMP0/BOOLIN"
+ style="stroke-width:1">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect5492-7"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="23.930969"
+ inkscape:label="inactive"
+ rx="23.930969" />
+ <rect
+ rx="23.930969"
+ inkscape:label="active"
+ ry="23.930969"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect433-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fdfdfd;fill-opacity:1;fill-rule:nonzero;stroke:#ffd0b2;stroke-width:28.60938263;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:1"
+ inkscape:label="text"
+ id="g952-3">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text950-8"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan948-8"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">up</tspan></text>
+ </g>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/beremiz.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/plc.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,73 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/>
+ <contentHeader name="Unnamed" modificationDateTime="2021-01-19T09:52:38">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="5" y="5"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes/>
+ <pous>
+ <pou name="MainStuff" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="TargetPressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="selection">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="445" y="65"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <outVariable localId="10" executionOrderId="0" height="25" width="85" negated="false">
+ <position x="710" y="105"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="5">
+ <position x="710" y="115"/>
+ <position x="640" y="115"/>
+ <position x="640" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ <expression>selection</expression>
+ </outVariable>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="MainStuff"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/svghmi_0@svghmi/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/svghmi_0@svghmi/confnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/>
Binary file tests/svghmi_i18n/svghmi_0@svghmi/fr_FR.mo has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/svghmi_0@svghmi/fr_FR.po Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2021-02-14 18:36+CET\n"
+"PO-Revision-Date: 2021-02-14 18:37+0100\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: fr_FR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: SVGHMI 1.0\n"
+"X-Generator: Poedit 2.4.2\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "height is %d meters"
+msgstr "la hauteur est de %d metres"
+
+msgid "This is an integer value : %d"
+msgstr "C'est un nombre entier : %d"
+
+msgid "Some \"other\" ČĆĐš english text"
+msgstr "De l'\"autre\" texte en français žfšŽŠĐĆČ"
+
+msgid ""
+"Some english text\n"
+"another line\n"
+"a third one"
+msgstr ""
+"Trois lignes en francais\n"
+"blah\n"
+"blah"
+
+#~ msgid "Some english text"
+#~ msgstr "Du texte en français"
+
+#~ msgid "Blah"
+#~ msgstr "Blup"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/svghmi_0@svghmi/messages.pot Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,36 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2021-02-15 14:45+CET\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: SVGHMI 1.0\n"
+
+
+#:svghmi.svg: format:text424
+msgid "height is %d meters"
+msgstr ""
+
+#:svghmi.svg: format:text5271
+msgid "This is an integer value : %d"
+msgstr ""
+
+#:svghmi.svg: someothertext:text5267
+msgid "Some \"other\" ČĆĐš english text"
+msgstr ""
+
+#:svghmi.svg: sometext:text5283
+msgid ""
+"Some english text\n"
+"another line\n"
+"a third one"
+msgstr ""
+
Binary file tests/svghmi_i18n/svghmi_0@svghmi/sl_SI.mo has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/svghmi_0@svghmi/sl_SI.po Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2021-02-14 18:36+CET\n"
+"PO-Revision-Date: 2021-02-14 18:38+0100\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: sl_SI\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: SVGHMI 1.0\n"
+"X-Generator: Poedit 2.4.2\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
+"%100<=4 ? 2 : 3);\n"
+
+msgid "height is %d meters"
+msgstr "To je celo število %d m"
+
+msgid "This is an integer value : %d"
+msgstr "To je celo število %d"
+
+msgid "Some \"other\" ČĆĐš english text"
+msgstr "En drug angleški tekt"
+
+msgid ""
+"Some english text\n"
+"another line\n"
+"a third one"
+msgstr ""
+"En angleški tekst\n"
+"druga vrstica\n"
+"tretja vrstica"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_i18n/svghmi_0@svghmi/svghmi.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2632 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ 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"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="svghmi.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280">
+ <metadata
+ id="metadata4542">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <linearGradient
+ id="linearGradient48067"
+ inkscape:collect="always">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop48065" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1"
+ id="stop48063" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="marker47537"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#464646;fill-opacity:1;fill-rule:evenodd;stroke:#464646;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path47535" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker35048"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path35046" />
+ </marker>
+ <linearGradient
+ id="linearGradient34303"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop34301" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="marker33393"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path33391" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker30413"
+ style="overflow:visible">
+ <path
+ id="path30411"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker27950"
+ style="overflow:visible">
+ <path
+ id="path27948"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker21366"
+ style="overflow:visible">
+ <path
+ id="path21364"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker20902"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path20900" />
+ </marker>
+ <linearGradient
+ id="linearGradient20537"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop20535" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="marker14281"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path14279" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13481"
+ style="overflow:visible">
+ <path
+ id="path13479"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13093"
+ style="overflow:visible">
+ <path
+ id="path13091"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker30978"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path30976"
+ 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:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker30668"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path30666"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ transform="scale(0.4) translate(7.4, 1)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker29562"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;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="path29560" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker29276"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path29274"
+ 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:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker28710"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;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="path28708" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker28436"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path28434"
+ 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:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker27764"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;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="path27762" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker27514"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DotM">
+ <path
+ transform="scale(0.4) translate(7.4, 1)"
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ id="path27512" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker25879"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="SquareL">
+ <path
+ transform="scale(0.8)"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ id="path25877"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker24867"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path8226"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#3ee800;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(1,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker22543"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="scale(1.1) rotate(180) translate(1,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ id="path22541" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker21870"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path21868"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker21674"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="SquareL">
+ <path
+ transform="scale(0.8)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ id="path21672"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="SquareL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker20566"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path20564"
+ d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker20382"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path20380"
+ 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="SquareL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="SquareL"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path8275"
+ d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker19998"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path19996"
+ 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:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19672"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;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="path19670" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19488"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path19486" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19352"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path19350" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker17321"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;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="path17319" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker17197"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;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="path17195" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker16921"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path16919" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker16821"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path16819" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path8205"
+ 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:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path8223"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff3000;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) translate(1,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker10905"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path10903"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path8208"
+ 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="marker1971"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1969"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1536"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1534"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1656"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1654"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="1454.3019 : 921.18786 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="2782.3019 : 507.18786 : 1"
+ inkscape:persp3d-origin="2094.3019 : 801.18786 : 1"
+ id="perspective1372" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="1424.3019 : 863.18786 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="2800.3019 : 891.18786 : 1"
+ inkscape:persp3d-origin="2064.3019 : 743.18786 : 1"
+ id="perspective1370" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="73.983557 : 377.52255 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1401.9836 : -36.477445 : 1"
+ inkscape:persp3d-origin="713.98356 : 257.52255 : 1"
+ id="perspective503" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="43.983597 : 319.52255 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1419.9836 : 347.52255 : 1"
+ inkscape:persp3d-origin="683.98356 : 199.52255 : 1"
+ id="perspective445" />
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker926"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path924"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient3919"
+ inkscape:collect="always">
+ <stop
+ id="stop3921"
+ style="stop-color:#ffffff"
+ offset="0" />
+ <stop
+ id="stop3923"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3862">
+ <stop
+ id="stop3864"
+ style="stop-color:#414141"
+ offset="0" />
+ <stop
+ id="stop3868"
+ style="stop-color:#41433f"
+ offset=".15789" />
+ <stop
+ id="stop3866"
+ style="stop-color:#000000"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3994">
+ <stop
+ id="stop3996"
+ style="stop-color:#626262"
+ offset="0" />
+ <stop
+ id="stop4000"
+ style="stop-color:#919191"
+ offset=".74085" />
+ <stop
+ id="stop3998"
+ style="stop-color:#ceced2"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4108">
+ <stop
+ id="stop4110"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop4112"
+ style="stop-color:#ccd21b"
+ offset="0.28542241" />
+ <stop
+ id="stop4114"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4292">
+ <stop
+ id="stop4294"
+ style="stop-color:#666666"
+ offset="0" />
+ <stop
+ id="stop4296"
+ style="stop-color:#c3c3c5"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ id="radialGradient9759"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="271.12"
+ cx="488.75"
+ gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <marker
+ inkscape:stockid="DiamondMend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="DiamondMend-9"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8305-2"
+ d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,-2.6,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="DiamondMend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker16719"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path16717"
+ d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,-2.6,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mstart-2"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8211-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,4,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-7"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8214-5"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <linearGradient
+ id="linearGradient5712">
+ <stop
+ id="stop5714"
+ style="stop-color:#cccccc"
+ offset="0" />
+ <stop
+ id="stop5716"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset=".12299" />
+ <stop
+ id="stop5718"
+ style="stop-color:#999999;stop-opacity:.63813"
+ offset="1" />
+ </linearGradient>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker23223-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path23221-2" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="DotM-2"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8269-0"
+ d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,2.96,0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker26099-6"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path26097-1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19820-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path19818-4" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker25117-7"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path25115-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-3"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8208-5"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <radialGradient
+ id="radialGradient4432-9"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="331.47"
+ cx="487.54999"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-7"
+ id="radialGradient2918-3"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient4436-7"
+ gradientUnits="userSpaceOnUse"
+ cy="336.42001"
+ cx="491.09"
+ gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)"
+ r="42.073002"
+ inkscape:collect="always">
+ <stop
+ id="stop3894-5"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop3898-9"
+ style="stop-color:#ccd21b"
+ offset=".5" />
+ <stop
+ id="stop3896-2"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ id="radialGradient4438-2"
+ xlink:href="#linearGradient3919"
+ gradientUnits="userSpaceOnUse"
+ cy="379.03"
+ cx="520.47998"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <radialGradient
+ id="radialGradient5322"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="331.47"
+ cx="487.54999"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-7"
+ id="radialGradient5340"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient5350"
+ xlink:href="#linearGradient3919"
+ gradientUnits="userSpaceOnUse"
+ cy="379.03"
+ cx="520.47998"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-3-9"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8208-5-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3862"
+ id="radialGradient8154-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ cx="487.54999"
+ cy="331.47"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-5"
+ id="radialGradient8158-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134" />
+ <radialGradient
+ id="radialGradient4436-5"
+ gradientUnits="userSpaceOnUse"
+ cy="336.42001"
+ cx="491.09"
+ gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)"
+ r="42.073002"
+ inkscape:collect="always">
+ <stop
+ id="stop3894-54"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop3898-7"
+ style="stop-color:#ccd21b"
+ offset=".5" />
+ <stop
+ id="stop3896-6"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3919"
+ id="radialGradient8160-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ cx="520.47998"
+ cy="379.03"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4440-9"
+ id="radialGradient8162-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ cx="477.91"
+ cy="325.29001"
+ r="26.870001" />
+ <radialGradient
+ id="radialGradient4440-9"
+ gradientUnits="userSpaceOnUse"
+ cy="325.29001"
+ cx="477.91"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ r="26.870001"
+ inkscape:collect="always">
+ <stop
+ id="stop3876-3"
+ style="stop-color:#333333"
+ offset="0" />
+ <stop
+ id="stop3878-7"
+ style="stop-color:#333333;stop-opacity:0"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3862"
+ id="radialGradient8996"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ cx="487.54999"
+ cy="331.47"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-5"
+ id="radialGradient9014"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3919"
+ id="radialGradient9024"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ cx="520.47998"
+ cy="379.03"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4440-9"
+ id="radialGradient9032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ cx="477.91"
+ cy="325.29001"
+ r="26.870001" />
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker22786-9"
+ style="overflow:visible">
+ <path
+ id="path22784-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker22786-3"
+ style="overflow:visible">
+ <path
+ id="path22784-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker22786-8"
+ style="overflow:visible">
+ <path
+ id="path22784-60"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <pattern
+ patternUnits="userSpaceOnUse"
+ width="1280"
+ height="720"
+ patternTransform="translate(-120,1560)"
+ id="pattern32315">
+ <g
+ inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL"
+ id="use32313"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,-3.9802)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:label="Background"
+ inkscape:connector-curvature="0"
+ id="path4383"
+ d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="Space"
+ inkscape:connector-curvature="0"
+ d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z"
+ id="path4385"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="translate(0,-19.076386)"
+ style="stroke-width:0.47631353"
+ inkscape:label="Keys"
+ id="g4627">
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="q Q"
+ id="g4391">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path4387"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4389"
+ y="138.28395"
+ x="99.378708">Q</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="w W"
+ id="g4397">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path4393"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4395"
+ y="138.28395"
+ x="127.0709">W</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="e E"
+ id="g4403">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path4399"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4401"
+ y="138.28395"
+ x="159.70854">E</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="r R"
+ id="g4409">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path4405"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4407"
+ y="138.28395"
+ x="188.39003">R</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="t T"
+ id="g4415">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ id="path4411"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4413"
+ y="138.28395"
+ x="219.04961">T</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="y Y"
+ id="g4421">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ id="path4417"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4419"
+ y="138.28395"
+ x="248.72017">Y</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="u U"
+ id="g4427">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ id="path4423"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4425"
+ y="138.28395"
+ x="278.39075">U</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="i I"
+ id="g4433">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ id="path4429"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4431"
+ y="138.28395"
+ x="311.02859">I</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="o O"
+ id="g4439">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ id="path4435"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4437"
+ y="138.28395"
+ x="336.74319">O</text>
+ </g>
+ <g
+ transform="translate(0,-9.5381931)"
+ style="stroke-width:0.47631353"
+ inkscape:label="p P"
+ id="g4445">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ id="path4441"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text4443"
+ y="138.28395"
+ x="367.40256">P</text>
+ </g>
+ <g
+ inkscape:label="a A"
+ id="g4451"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4447"
+ d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="107.29005"
+ y="163.99854"
+ id="text4449"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">A</text>
+ </g>
+ <g
+ inkscape:label="s S"
+ id="g4457"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4453"
+ d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="137.95012"
+ y="163.99854"
+ id="text4455"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">S</text>
+ </g>
+ <g
+ inkscape:label="d D"
+ id="g4463"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4459"
+ d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="166.63159"
+ y="163.99854"
+ id="text4461"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">D</text>
+ </g>
+ <g
+ inkscape:label="f F"
+ id="g4469"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4465"
+ d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="197.29166"
+ y="163.99854"
+ id="text4467"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">F</text>
+ </g>
+ <g
+ inkscape:label="g G"
+ id="g4475"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4471"
+ d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="225.97284"
+ y="163.99854"
+ id="text4473"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">G</text>
+ </g>
+ <g
+ inkscape:label="h H"
+ id="g4481"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4477"
+ d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="255.64342"
+ y="163.99854"
+ id="text4479"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">H</text>
+ </g>
+ <g
+ inkscape:label="j J"
+ id="g4487"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4483"
+ d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="287.29208"
+ y="163.99854"
+ id="text4485"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">J</text>
+ </g>
+ <g
+ inkscape:label="k K"
+ id="g4493"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4489"
+ d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="314.98465"
+ y="163.99854"
+ id="text4491"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">K</text>
+ </g>
+ <g
+ inkscape:label="l L"
+ id="g4500"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4495"
+ d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="345.64444"
+ y="163.99854"
+ id="text4498"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">L</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ inkscape:label="z Z"
+ id="g4506"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4502"
+ d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="119.15855"
+ y="188.72411"
+ id="text4504"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">Z</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ inkscape:label="x X"
+ id="g4512"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4508"
+ d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="148.82933"
+ y="188.72411"
+ id="text4510"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">X</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ inkscape:label="c C"
+ id="g4518"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4514"
+ d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="178.50011"
+ y="188.72411"
+ id="text4516"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">C</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ inkscape:label="v V"
+ id="g4524"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4520"
+ d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="208.16988"
+ y="188.72411"
+ id="text4522"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">V</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ inkscape:label="b B"
+ id="g4530"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4526"
+ d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="237.84096"
+ y="188.72411"
+ id="text4528"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">B</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ inkscape:label="n N"
+ id="g4537"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4532"
+ d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="267.51193"
+ y="188.72411"
+ id="text4534"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">N</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ inkscape:label="m M"
+ id="g4543"
+ style="fill-rule:evenodd;stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4539"
+ d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="296.1933"
+ y="188.72411"
+ id="text4541"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">M</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ style="stroke-width:0.47631353"
+ inkscape:label=". :"
+ id="g4552">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4545"
+ d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="359.58276"
+ y="189.66107"
+ id="text4547"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928513)">.</text>
+ <text
+ transform="scale(1.0007154,0.99928512)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text4549"
+ y="181.64532"
+ x="359.58276">:</text>
+ </g>
+ <g
+ transform="translate(0,9.5381929)"
+ style="stroke-width:0.47631353"
+ inkscape:label=", ;"
+ id="g4560">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4554"
+ d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928512)"
+ x="330.00806"
+ y="181.64532"
+ id="text4556"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">;</text>
+ <text
+ id="text4558"
+ transform="scale(1.0007154,0.99928512)"
+ x="330.00806"
+ y="189.66107"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">,</text>
+ </g>
+ <g
+ transform="translate(-13.353469,-45.783327)"
+ id="g4567"
+ inkscape:label="1"
+ style="stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4562"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ x="101.07153"
+ y="138.28395"
+ id="text4564"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">1</text>
+ </g>
+ <g
+ transform="translate(-13.353469,-45.783327)"
+ id="g4573"
+ inkscape:label="2"
+ style="stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4569"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ x="130.18704"
+ y="138.28395"
+ id="text4571"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">2</text>
+ </g>
+ <g
+ transform="translate(-13.353469,-45.783327)"
+ style="stroke-width:0.47631353"
+ id="g4579"
+ inkscape:label="3">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4575"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="159.70854"
+ y="138.28395"
+ id="text4577"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">3</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ inkscape:label="4"
+ id="g4585">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4581"
+ d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="176.39188"
+ y="111.55791"
+ id="text4583"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">4</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ inkscape:label="5"
+ id="g4591">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4587"
+ d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="205.70567"
+ y="111.55791"
+ id="text4589"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">5</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ inkscape:label="6"
+ id="g4597">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4593"
+ d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="236.15851"
+ y="111.55791"
+ id="text4595"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">6</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ inkscape:label="7"
+ id="g4603">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4599"
+ d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="266.06564"
+ y="111.55791"
+ id="text4601"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">7</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ inkscape:label="8"
+ id="g4609">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4605"
+ d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="295.08231"
+ y="111.55791"
+ id="text4607"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">8</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ inkscape:label="9 -"
+ id="g4617">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4611"
+ d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="325.05408"
+ y="111.55791"
+ id="text4613"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">9</text>
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text4615"
+ y="102.42173"
+ x="335.72681"
+ transform="scale(1.0007154,0.99928511)">-</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ inkscape:label="0 +"
+ id="g4625">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4619"
+ d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="355.05984"
+ y="111.55791"
+ id="text4621"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">0</text>
+ <text
+ x="365.30151"
+ y="102.42173"
+ id="text4623"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928511)">+</text>
+ </g>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="Esc"
+ id="g4633"
+ transform="translate(335.89988,-58.934803)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ inkscape:connector-curvature="0"
+ d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z"
+ id="path4629"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ x="59.288635"
+ y="130.02028"
+ id="text4631"
+ style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928512)">Esc</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ style="stroke-width:0.47631353"
+ id="g4639"
+ inkscape:label="Enter">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ id="path4635"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4637"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)"
+ d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ transform="translate(2.3648311e-6,-28.614579)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4645"
+ inkscape:label="BackSpace">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ id="path4641"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4643"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)"
+ d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="CapsLock"
+ id="g4663">
+ <g
+ transform="translate(0,-19.076386)"
+ style="display:inline;fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4653"
+ inkscape:label="inactive">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ id="path4647"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ id="text4649"
+ y="156.71973"
+ x="69.789322">Caps</text>
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ id="text4651"
+ y="166.5585"
+ x="69.789322">Lock</text>
+ </g>
+ <g
+ inkscape:label="active"
+ id="g4661"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4655"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="69.789322"
+ y="156.71973"
+ id="text4657"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Caps</text>
+ <text
+ x="69.789322"
+ y="166.5585"
+ id="text4659"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Lock</text>
+ </g>
+ </g>
+ <rect
+ inkscape:label="Field"
+ ry="3.8152773"
+ rx="3.8152773"
+ y="15.771065"
+ x="64.024956"
+ height="30.150299"
+ width="361.89996"
+ id="rect4665"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ inkscape:label="Value"
+ id="text4669"
+ y="38.296417"
+ x="72.50132"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px"
+ y="38.296417"
+ x="72.50132"
+ id="tspan4667"
+ sodipodi:role="line">text</tspan></text>
+ <g
+ inkscape:label="Shift"
+ id="g4691">
+ <g
+ inkscape:label="inactive"
+ id="g4679">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4671"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ x="392.55679"
+ y="177.90059"
+ id="text4673"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826">Shift</text>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ id="path4675"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text4677"
+ y="177.90059"
+ x="75.85218">Shift</text>
+ </g>
+ <g
+ inkscape:label="active"
+ id="g4689">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ id="path4681"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826"
+ id="text4683"
+ y="177.90059"
+ x="392.55679"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4685"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="75.85218"
+ y="177.90059"
+ id="text4687"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ </g>
+ </g>
+ <text
+ inkscape:label="Info"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="252.9579"
+ y="12.333657"
+ id="text4695"
+ transform="scale(0.96824588,1.0327955)"><tspan
+ sodipodi:role="line"
+ id="tspan4693"
+ x="252.9579"
+ y="12.333657"
+ style="stroke-width:0.30784383px">information</tspan></text>
+ </g>
+ </pattern>
+ <pattern
+ patternUnits="userSpaceOnUse"
+ width="1280"
+ height="720"
+ patternTransform="translate(4.5843587e-5,2340)"
+ id="pattern33040">
+ <g
+ transform="matrix(3.3549332,0,0,3.14525,-181.87462,-3.9802)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="use33038"
+ inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ id="path4699"
+ inkscape:connector-curvature="0"
+ inkscape:label="Background"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+ inkscape:label="Field"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4701"
+ width="361.89996"
+ height="30.150299"
+ x="64.024963"
+ y="15.77106"
+ rx="3.8152773"
+ ry="3.8152773" />
+ <text
+ inkscape:label="Value"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="72.50132"
+ y="37.408375"
+ id="text4705"><tspan
+ sodipodi:role="line"
+ id="tspan4703"
+ x="72.50132"
+ y="37.408375"
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px">number</tspan></text>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"
+ id="g4711"
+ inkscape:label="Enter"
+ style="fill-rule:evenodd;stroke-width:0.13585199">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z"
+ id="path4707"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4709"
+ transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)"
+ d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)"
+ id="g4773"
+ inkscape:label="Keys"
+ style="fill-rule:evenodd;stroke-width:0.13585199">
+ <g
+ id="g4717"
+ inkscape:label="7"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4713"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="636.4165"
+ y="129.38269"
+ id="text4715"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">7</text>
+ </g>
+ <g
+ id="g4723"
+ inkscape:label="4"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4719"
+ d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="636.4165"
+ y="154.10822"
+ id="text4721"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">4</text>
+ </g>
+ <g
+ id="g4729"
+ inkscape:label="1"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4725"
+ d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="636.4165"
+ y="179.82285"
+ id="text4727"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">1</text>
+ </g>
+ <g
+ id="g4735"
+ inkscape:label="8"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4731"
+ d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="667.07562"
+ y="129.38269"
+ id="text4733"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">8</text>
+ </g>
+ <g
+ id="g4741"
+ inkscape:label="5"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4737"
+ d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="667.07562"
+ y="154.10822"
+ id="text4739"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">5</text>
+ </g>
+ <g
+ id="g4747"
+ inkscape:label="2"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4743"
+ d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="667.07562"
+ y="179.82285"
+ id="text4745"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">2</text>
+ </g>
+ <g
+ id="g4753"
+ inkscape:label="9"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4749"
+ d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="695.75708"
+ y="129.38269"
+ id="text4751"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">9</text>
+ </g>
+ <g
+ id="g4759"
+ inkscape:label="6"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4755"
+ d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="695.75708"
+ y="154.10822"
+ id="text4757"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">6</text>
+ </g>
+ <g
+ id="g4765"
+ inkscape:label="3"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4761"
+ d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="695.75708"
+ y="179.82285"
+ id="text4763"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">3</text>
+ </g>
+ <g
+ id="g4771"
+ inkscape:label="0"
+ style="stroke-width:0.13585199">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4767"
+ d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="636.4165"
+ y="205.53712"
+ id="text4769"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">0</text>
+ </g>
+ </g>
+ <g
+ transform="translate(-318.22576)"
+ inkscape:label="Esc"
+ id="g4779">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ id="path4775"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text4777"
+ y="78.632088"
+ x="394.42801">Esc</text>
+ </g>
+ <g
+ transform="translate(0,-43.420332)"
+ inkscape:label="BackSpace"
+ id="g4785">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z"
+ id="path4781"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4783"
+ transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)"
+ d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Sign"
+ id="g4791">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path4787"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text4789"
+ y="135.09822"
+ x="642.1239">+/-</text>
+ </g>
+ <text
+ inkscape:label="Info"
+ transform="scale(0.96824589,1.0327955)"
+ id="text4795"
+ y="12.333653"
+ x="252.9579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.30784383px"
+ y="12.333653"
+ x="252.9579"
+ id="tspan4793"
+ sodipodi:role="line">information</tspan></text>
+ <g
+ inkscape:label="NumDot"
+ id="g4801"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4797"
+ d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928514)"
+ x="696.7464"
+ y="204.54802"
+ id="text4799"
+ style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989">.</text>
+ </g>
+ </g>
+ </pattern>
+ <marker
+ style="overflow:visible"
+ id="marker33393-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path33391-4" />
+ </marker>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient48067"
+ id="radialGradient48061-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.02836882,4.436331,-1.9717971,0.01260898,731.53273,-19692.285)"
+ cx="4437.6318"
+ cy="434.84348"
+ fx="4437.6318"
+ fy="434.84348"
+ r="35.250397" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:document-units="px"
+ inkscape:current-layer="hmi0"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="0.70710678"
+ inkscape:cx="535.49777"
+ inkscape:cy="380.79328"
+ inkscape:window-width="1600"
+ inkscape:window-height="836"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="true">
+ <sodipodi:guide
+ position="1265,637"
+ orientation="1,0"
+ id="guide424"
+ inkscape:locked="false" />
+ </sodipodi:namedview>
+ <rect
+ style="color:#000000;fill:#ffffff"
+ id="page0"
+ width="1280"
+ height="720"
+ x="0"
+ y="0"
+ inkscape:label="HMI:Page:Home" />
+ <g
+ id="g5275"
+ inkscape:label="HMI:Display@/TARGETPRESSURE">
+ <text
+ inkscape:label="_format"
+ id="text5271"
+ y="430.74841"
+ x="440.99014"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="430.74841"
+ x="440.99014"
+ id="tspan5269"
+ sodipodi:role="line">This is an integer value : %d</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="373.99341"
+ y="160.46414"
+ id="text5267"
+ inkscape:label="_someothertext"><tspan
+ sodipodi:role="line"
+ id="tspan5265"
+ x="373.99341"
+ y="160.46414">Some "other" ČĆĐš english text</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="725.49988"
+ y="141.49683"
+ id="text5279"
+ inkscape:label="HMI:Display@/SELECTION"><tspan
+ sodipodi:role="line"
+ id="tspan5277"
+ x="725.49988"
+ y="141.49683">8888</tspan></text>
+ <text
+ inkscape:label="_sometext"
+ id="text5283"
+ y="240.46414"
+ x="293.99341"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="240.46414"
+ x="293.99341"
+ id="tspan5281"
+ sodipodi:role="line">Some english text</tspan><tspan
+ y="290.46414"
+ x="293.99341"
+ sodipodi:role="line"
+ id="tspan1894">another line</tspan><tspan
+ y="340.46414"
+ x="293.99341"
+ sodipodi:role="line"
+ id="tspan1896">a third one</tspan></text>
+ <g
+ id="g1913"
+ inkscape:label="HMI:Input@/TARGETPRESSURE">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4827"
+ width="165.96402"
+ height="78.240181"
+ x="203.89867"
+ y="501.87585"
+ rx="7"
+ ry="7"
+ inkscape:label="edit" />
+ <text
+ id="text405"
+ y="551.66504"
+ x="275.02609"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="value"><tspan
+ y="551.66504"
+ x="275.02609"
+ id="tspan403"
+ sodipodi:role="line">1234</tspan></text>
+ <g
+ id="g1905"
+ inkscape:label="+1"
+ transform="translate(391.20092,80.611099)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect407"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="425.65189"
+ y="566.1087"
+ id="text1558"><tspan
+ sodipodi:role="line"
+ id="tspan1556"
+ x="425.65189"
+ y="566.1087">+1</tspan></text>
+ </g>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text5283"
+ id="use411"
+ transform="translate(281.09259,279.27093)"
+ width="100%"
+ height="100%" />
+ </g>
+ <g
+ id="g14237"
+ inkscape:label="HMI:DropDown:#langs@lang"
+ transform="matrix(0.81491208,0,0,0.81491208,92.392121,-676.64521)"
+ style="stroke-width:0.35083869">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect14212"
+ width="574.92957"
+ height="84.312515"
+ x="864.00842"
+ y="946.07819"
+ rx="2.4558709"
+ ry="2.4558709"
+ inkscape:label="box" />
+ <rect
+ inkscape:label="highlight"
+ ry="2.4558709"
+ rx="2.4558709"
+ y="968.2616"
+ x="864.00842"
+ height="39.945667"
+ width="574.92957"
+ id="rect5497"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text14183"
+ y="998.13739"
+ x="890.70056"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35.95956421px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="text"><tspan
+ style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px"
+ y="998.13739"
+ x="890.70056"
+ sodipodi:role="line"
+ id="tspan421">Language (Country)</tspan></text>
+ <path
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path424"
+ sodipodi:sides="3"
+ sodipodi:cx="1387.0236"
+ sodipodi:cy="977.31356"
+ sodipodi:r1="43.683521"
+ sodipodi:r2="21.841761"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="2.6179939"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1387.0236,1020.9971 -18.9156,-32.76268 -18.9155,-32.76264 37.8311,0 37.831,0 -18.9155,32.76264 z"
+ inkscape:transform-center-y="10.92088"
+ inkscape:label="button" />
+ </g>
+ <g
+ inkscape:label="HMI:Display@/TARGETPRESSURE"
+ id="g436"
+ transform="translate(381.33428,-264.45794)">
+ <text
+ inkscape:label="_format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="375.02609"
+ y="571.66504"
+ id="text424"><tspan
+ sodipodi:role="line"
+ x="375.02609"
+ y="571.66504"
+ id="tspan438">height is %d meters</tspan></text>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_real/beremiz.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_real/plc.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,97 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/>
+ <contentHeader name="Unnamed" modificationDateTime="2021-02-16T10:38:12">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="5" y="5"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes/>
+ <pous>
+ <pou name="MainStuff" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="var0">
+ <type>
+ <derived name="HMI_REAL"/>
+ </type>
+ </variable>
+ <variable name="var1">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="240" y="45"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>var0</expression>
+ </inVariable>
+ <outVariable localId="10" executionOrderId="0" height="25" width="85" negated="false">
+ <position x="720" y="70"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="11" formalParameter="OUT">
+ <position x="720" y="80"/>
+ <position x="667" y="80"/>
+ <position x="667" y="75"/>
+ <position x="605" y="75"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var1</expression>
+ </outVariable>
+ <block localId="11" typeName="REAL_TO_INT" executionOrderId="0" height="40" width="100">
+ <position x="505" y="45"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="505" y="75"/>
+ <position x="445" y="75"/>
+ <position x="445" y="60"/>
+ <position x="365" y="60"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="100" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="MainStuff"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_real/svghmi_0@svghmi/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_real/svghmi_0@svghmi/confnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_real/svghmi_0@svghmi/svghmi.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,647 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ 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"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="svghmi.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280">
+ <metadata
+ id="metadata4542">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <linearGradient
+ id="linearGradient34303"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop34301" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient20537"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop20535" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:document-units="px"
+ inkscape:current-layer="hmi0"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="0.64"
+ inkscape:cx="106.50649"
+ inkscape:cy="372.66049"
+ inkscape:window-width="1600"
+ inkscape:window-height="836"
+ inkscape:window-x="1600"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="true" />
+ <g
+ inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL"
+ id="g2432"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:label="Background"
+ inkscape:connector-curvature="0"
+ id="path2136"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ ry="3.8152773"
+ rx="3.8152773"
+ y="15.77106"
+ x="64.024963"
+ height="30.150299"
+ width="361.89996"
+ id="rect2426"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:label="Field" />
+ <text
+ id="text2430"
+ y="37.408375"
+ x="72.50132"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Value"><tspan
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px"
+ y="37.408375"
+ x="72.50132"
+ id="tspan2428"
+ sodipodi:role="line">number</tspan></text>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Enter"
+ id="g4947"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path193"
+ d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z"
+ transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)"
+ id="path6545-4"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Keys"
+ id="g4993"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="7"
+ id="g4892">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path163"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text331"
+ y="129.38269"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="4"
+ id="g4907">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path169"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text335"
+ y="154.10822"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="1"
+ id="g4922">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path175"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text339"
+ y="179.82285"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="8"
+ id="g4897">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path165"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text347"
+ y="129.38269"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="5"
+ id="g4912">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path171"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text351"
+ y="154.10822"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="2"
+ id="g4927">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path177"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text355"
+ y="179.82285"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">2</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="9"
+ id="g4902">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path167"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text363"
+ y="129.38269"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="6"
+ id="g4917">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path173"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text367"
+ y="154.10822"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="3"
+ id="g4932">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path179"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text371"
+ y="179.82285"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="0"
+ id="g4937">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z"
+ id="path373"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text377"
+ y="205.53712"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ </g>
+ </g>
+ <g
+ id="g3113"
+ inkscape:label="Esc"
+ transform="translate(-318.22576)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path167-3"
+ d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="394.42801"
+ y="78.632088"
+ id="text469-4"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928511)">Esc</text>
+ </g>
+ <g
+ id="g3109"
+ inkscape:label="BackSpace"
+ transform="translate(0,-43.420332)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path173-1"
+ d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z"
+ transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)"
+ id="path11623-1-0-2"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g787"
+ inkscape:label="Sign"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path781"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="642.1239"
+ y="135.09822"
+ id="text783"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ transform="scale(1.0007154,0.99928514)">+/-</text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="252.9579"
+ y="12.333653"
+ id="text509"
+ transform="scale(0.96824589,1.0327955)"
+ inkscape:label="Info"><tspan
+ sodipodi:role="line"
+ id="tspan507"
+ x="252.9579"
+ y="12.333653"
+ style="stroke-width:0.30784383px">information</tspan></text>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ id="g4942"
+ inkscape:label="NumDot">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path181"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text771"
+ y="204.54802"
+ x="696.7464"
+ transform="scale(1.0007154,0.99928514)">.</text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;fill:#ffffff"
+ id="page0"
+ width="1280"
+ height="720"
+ x="0"
+ y="0"
+ inkscape:label="HMI:Page:Home"
+ sodipodi:insensitive="true" />
+ <g
+ id="g4490"
+ inkscape:label="HMI:Input:%.4f@/VAR0"
+ transform="translate(220,-220)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4452"
+ width="165.96402"
+ height="78.240181"
+ x="207.3945"
+ y="501.87585"
+ rx="7"
+ ry="7"
+ inkscape:label="edit" />
+ <text
+ id="text4456"
+ y="551.66504"
+ x="289.30231"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="value"><tspan
+ y="551.66504"
+ x="289.30231"
+ id="tspan4454"
+ sodipodi:role="line">1234</tspan></text>
+ <g
+ id="g4464"
+ inkscape:label="-1"
+ transform="translate(-414.79908,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4458"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text4462"><tspan
+ sodipodi:role="line"
+ id="tspan4460"
+ x="441.65189"
+ y="566.1087">-1</tspan></text>
+ </g>
+ <g
+ transform="translate(-534.79908,-17.189114)"
+ inkscape:label="-10"
+ id="g4472">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4466"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4470"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4468"
+ sodipodi:role="line">-10</tspan></text>
+ </g>
+ <g
+ transform="translate(111.20092,-17.189114)"
+ inkscape:label="+1"
+ id="g4480">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4474"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4478"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4476"
+ sodipodi:role="line">+1</tspan></text>
+ </g>
+ <g
+ id="g4488"
+ inkscape:label="+10"
+ transform="translate(231.20092,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4482"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text4486"><tspan
+ sodipodi:role="line"
+ id="tspan4484"
+ x="441.65189"
+ y="566.1087">+10</tspan></text>
+ </g>
+ <g
+ id="g154"
+ inkscape:label="+0.1"
+ transform="translate(-8.7991028,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect148"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text152"><tspan
+ sodipodi:role="line"
+ id="tspan150"
+ x="441.65189"
+ y="566.1087">+.1</tspan></text>
+ </g>
+ <g
+ transform="translate(-294.79907,-17.189114)"
+ inkscape:label="-0.1"
+ id="g162">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect156"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text160"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan158"
+ sodipodi:role="line">-.1</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g170"
+ inkscape:label="HMI:Display@/VAR0"
+ transform="translate(-400)">
+ <text
+ id="text166"
+ y="96.5625"
+ x="595.3125"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="595.3125"
+ id="tspan164"
+ sodipodi:role="line">%.2f</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Display@/VAR1"
+ id="g3879"
+ transform="translate(-400,80)">
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="595.3125"
+ y="96.5625"
+ id="text3877"><tspan
+ sodipodi:role="line"
+ id="tspan3875"
+ x="595.3125"
+ y="96.5625">%d</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Display@/VAR0"
+ id="g3885"
+ transform="translate(-140)">
+ <text
+ inkscape:label="format"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="595.3125"
+ y="96.5625"
+ id="text3883"><tspan
+ sodipodi:role="line"
+ id="tspan3881"
+ x="595.3125"
+ y="96.5625">temp: %.2f℃</tspan></text>
+ </g>
+ <g
+ transform="translate(220)"
+ id="g3895"
+ inkscape:label="HMI:Display@/VAR0">
+ <text
+ id="text3893"
+ y="96.5625"
+ x="595.3125"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="595.3125"
+ id="tspan3891"
+ sodipodi:role="line">ratio: %.2f%%</tspan></text>
+ </g>
+ <g
+ transform="translate(-220,80)"
+ id="g3901"
+ inkscape:label="HMI:Display@/VAR1">
+ <text
+ id="text3899"
+ y="96.5625"
+ x="655.3125"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="655.3125"
+ id="tspan3897"
+ sodipodi:role="line">padded: %'04d</tspan></text>
+ </g>
+ <g
+ transform="translate(-140,440)"
+ id="g3907"
+ inkscape:label="HMI:Display@/VAR1@/VAR0">
+ <text
+ id="text3905"
+ y="96.5625"
+ x="595.3125"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="format"><tspan
+ y="96.5625"
+ x="595.3125"
+ id="tspan3903"
+ sodipodi:role="line">this way, %d and %.3f are together</tspan></text>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_scrollbar/beremiz.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_scrollbar/plc.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,73 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/>
+ <contentHeader name="Unnamed" modificationDateTime="2021-02-12T19:29:13">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="5" y="5"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes/>
+ <pous>
+ <pou name="MainStuff" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="var0">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="var1">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="445" y="65"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>var0</expression>
+ </inVariable>
+ <outVariable localId="10" executionOrderId="0" height="25" width="85" negated="false">
+ <position x="710" y="105"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="5">
+ <position x="710" y="115"/>
+ <position x="640" y="115"/>
+ <position x="640" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ <expression>var1</expression>
+ </outVariable>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="MainStuff"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/confnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/messages.pot Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,17 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2021-02-12 21:55+CET\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: SVGHMI 1.0\n"
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_scrollbar/svghmi_0@svghmi/svghmi.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,891 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ 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"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="svghmi.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280">
+ <metadata
+ id="metadata4542">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <linearGradient
+ id="linearGradient34303"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop34301" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient20537"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop20535" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:document-units="px"
+ inkscape:current-layer="hmi0"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="0.64"
+ inkscape:cx="318.22524"
+ inkscape:cy="196.09799"
+ inkscape:window-width="1939"
+ inkscape:window-height="1243"
+ inkscape:window-x="3325"
+ inkscape:window-y="162"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="true" />
+ <g
+ inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL"
+ id="g2432"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:label="Background"
+ inkscape:connector-curvature="0"
+ id="path2136"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ ry="3.8152773"
+ rx="3.8152773"
+ y="15.77106"
+ x="64.024963"
+ height="30.150299"
+ width="361.89996"
+ id="rect2426"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:label="Field" />
+ <text
+ id="text2430"
+ y="37.408375"
+ x="72.50132"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Value"><tspan
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px"
+ y="37.408375"
+ x="72.50132"
+ id="tspan2428"
+ sodipodi:role="line">number</tspan></text>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Enter"
+ id="g4947"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path193"
+ d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z"
+ transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)"
+ id="path6545-4"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Keys"
+ id="g4993"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="7"
+ id="g4892">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path163"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text331"
+ y="129.38269"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="4"
+ id="g4907">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path169"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text335"
+ y="154.10822"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="1"
+ id="g4922">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path175"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text339"
+ y="179.82285"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="8"
+ id="g4897">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path165"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text347"
+ y="129.38269"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="5"
+ id="g4912">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path171"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text351"
+ y="154.10822"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="2"
+ id="g4927">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path177"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text355"
+ y="179.82285"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">2</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="9"
+ id="g4902">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path167"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text363"
+ y="129.38269"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="6"
+ id="g4917">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path173"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text367"
+ y="154.10822"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="3"
+ id="g4932">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path179"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text371"
+ y="179.82285"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="0"
+ id="g4937">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z"
+ id="path373"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text377"
+ y="205.53712"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ </g>
+ </g>
+ <g
+ id="g3113"
+ inkscape:label="Esc"
+ transform="translate(-318.22576)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path167-3"
+ d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="394.42801"
+ y="78.632088"
+ id="text469-4"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928511)">Esc</text>
+ </g>
+ <g
+ id="g3109"
+ inkscape:label="BackSpace"
+ transform="translate(0,-43.420332)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path173-1"
+ d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z"
+ transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)"
+ id="path11623-1-0-2"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g787"
+ inkscape:label="Sign"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path781"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="642.1239"
+ y="135.09822"
+ id="text783"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ transform="scale(1.0007154,0.99928514)">+/-</text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="252.9579"
+ y="12.333653"
+ id="text509"
+ transform="scale(0.96824589,1.0327955)"
+ inkscape:label="Info"><tspan
+ sodipodi:role="line"
+ id="tspan507"
+ x="252.9579"
+ y="12.333653"
+ style="stroke-width:0.30784383px">information</tspan></text>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ id="g4942"
+ inkscape:label="NumDot">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path181"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text771"
+ y="204.54802"
+ x="696.7464"
+ transform="scale(1.0007154,0.99928514)">.</text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;fill:#ffffff"
+ id="page0"
+ width="1280"
+ height="720"
+ x="0"
+ y="0"
+ inkscape:label="HMI:Page:Home" />
+ <g
+ id="g1913"
+ inkscape:label="HMI:Input@.size"
+ transform="translate(80,100)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4827"
+ width="165.96402"
+ height="78.240181"
+ x="203.89867"
+ y="501.87585"
+ rx="7"
+ ry="7"
+ inkscape:label="edit" />
+ <text
+ id="text405"
+ y="551.66504"
+ x="275.02609"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="value"><tspan
+ y="551.66504"
+ x="275.02609"
+ id="tspan403"
+ sodipodi:role="line">1234</tspan></text>
+ <g
+ id="g1905"
+ inkscape:label="-1"
+ transform="translate(-314.79908,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect407"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text1558"><tspan
+ sodipodi:role="line"
+ id="tspan1556"
+ x="441.65189"
+ y="566.1087">-1</tspan></text>
+ </g>
+ <g
+ transform="translate(-434.79908,-17.189114)"
+ inkscape:label="-10"
+ id="g4394">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4388"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4392"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4390"
+ sodipodi:role="line">-10</tspan></text>
+ </g>
+ <g
+ transform="translate(11.20092,-17.189114)"
+ inkscape:label="+1"
+ id="g4402">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4396"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4400"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4398"
+ sodipodi:role="line">+1</tspan></text>
+ </g>
+ <g
+ id="g4410"
+ inkscape:label="+10"
+ transform="translate(131.20092,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4404"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text4408"><tspan
+ sodipodi:role="line"
+ id="tspan4406"
+ x="441.65189"
+ y="566.1087">+10</tspan></text>
+ </g>
+ </g>
+ <g
+ transform="translate(80,-60)"
+ inkscape:label="HMI:Input@.range"
+ id="g4450">
+ <rect
+ inkscape:label="edit"
+ ry="7"
+ rx="7"
+ y="501.87585"
+ x="203.89867"
+ height="78.240181"
+ width="165.96402"
+ id="rect4412"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ inkscape:label="value"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="275.02609"
+ y="551.66504"
+ id="text4416"><tspan
+ sodipodi:role="line"
+ id="tspan4414"
+ x="275.02609"
+ y="551.66504">1234</tspan></text>
+ <g
+ transform="translate(-314.79908,-17.189114)"
+ inkscape:label="-1"
+ id="g4424">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4418"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4422"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4420"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ <g
+ id="g4432"
+ inkscape:label="-10"
+ transform="translate(-434.79908,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4426"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text4430"><tspan
+ sodipodi:role="line"
+ id="tspan4428"
+ x="441.65189"
+ y="566.1087">-10</tspan></text>
+ </g>
+ <g
+ id="g4440"
+ inkscape:label="+1"
+ transform="translate(11.20092,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4434"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text4438"><tspan
+ sodipodi:role="line"
+ id="tspan4436"
+ x="441.65189"
+ y="566.1087">+1</tspan></text>
+ </g>
+ <g
+ transform="translate(131.20092,-17.189114)"
+ inkscape:label="+10"
+ id="g4448">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4442"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4446"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4444"
+ sodipodi:role="line">+10</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g4490"
+ inkscape:label="HMI:Input@.position"
+ transform="translate(80,-220)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4452"
+ width="165.96402"
+ height="78.240181"
+ x="203.89867"
+ y="501.87585"
+ rx="7"
+ ry="7"
+ inkscape:label="edit" />
+ <text
+ id="text4456"
+ y="551.66504"
+ x="275.02609"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="value"><tspan
+ y="551.66504"
+ x="275.02609"
+ id="tspan4454"
+ sodipodi:role="line">1234</tspan></text>
+ <g
+ id="g4464"
+ inkscape:label="-1"
+ transform="translate(-314.79908,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4458"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text4462"><tspan
+ sodipodi:role="line"
+ id="tspan4460"
+ x="441.65189"
+ y="566.1087">-1</tspan></text>
+ </g>
+ <g
+ transform="translate(-434.79908,-17.189114)"
+ inkscape:label="-10"
+ id="g4472">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4466"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4470"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4468"
+ sodipodi:role="line">-10</tspan></text>
+ </g>
+ <g
+ transform="translate(11.20092,-17.189114)"
+ inkscape:label="+1"
+ id="g4480">
+ <rect
+ ry="7"
+ rx="7"
+ y="513.73041"
+ x="392.38638"
+ height="88.909302"
+ width="99.578415"
+ id="rect4474"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4478"
+ y="566.1087"
+ x="441.65189"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="566.1087"
+ x="441.65189"
+ id="tspan4476"
+ sodipodi:role="line">+1</tspan></text>
+ </g>
+ <g
+ id="g4488"
+ inkscape:label="+10"
+ transform="translate(131.20092,-17.189114)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4482"
+ width="99.578415"
+ height="88.909302"
+ x="392.38638"
+ y="513.73041"
+ rx="7"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="441.65189"
+ y="566.1087"
+ id="text4486"><tspan
+ sodipodi:role="line"
+ id="tspan4484"
+ x="441.65189"
+ y="566.1087">+10</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g4507"
+ inkscape:label="HMI:ScrollBar@.position@.range@.size"
+ transform="translate(-202)">
+ <rect
+ y="84"
+ x="960"
+ height="516"
+ width="100"
+ id="rect4492"
+ style="opacity:1;vector-effect:none;fill:#ff35ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ inkscape:label="range" />
+ <rect
+ y="236"
+ x="969"
+ height="171"
+ width="81"
+ id="rect4494"
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ inkscape:label="cursor" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ d="M 1009.5,23 1047,81 H 972 Z"
+ id="rect4498"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="pageup" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ d="m 972,603 h 75 l -37.5,58 z"
+ id="rect4500"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="pagedown" />
+ </g>
+ <g
+ id="g4877"
+ inkscape:label="HMI:VarInit:50@.position" />
+ <g
+ inkscape:label="HMI:VarInit:20@.size"
+ id="g4879" />
+ <g
+ id="g4881"
+ inkscape:label="HMI:VarInit:100@.range" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="277.58728"
+ y="276.54129"
+ id="text941"><tspan
+ sodipodi:role="line"
+ id="tspan939"
+ x="277.58728"
+ y="276.54129">Position</tspan></text>
+ <text
+ id="text945"
+ y="436.54129"
+ x="277.58728"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="436.54129"
+ x="277.58728"
+ id="tspan943"
+ sodipodi:role="line">Range</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="277.58728"
+ y="596.54126"
+ id="text949"><tspan
+ sodipodi:role="line"
+ id="tspan947"
+ x="277.58728"
+ y="596.54126">Size</tspan></text>
+ <g
+ inkscape:label="HMI:ScrollBar@.position@.range@.size"
+ id="g146"
+ transform="rotate(90,837.8103,-106.02497)">
+ <rect
+ inkscape:label="range"
+ style="opacity:1;vector-effect:none;fill:#ff35ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect138"
+ width="100"
+ height="516"
+ x="960"
+ y="84" />
+ <rect
+ inkscape:label="cursor"
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect140"
+ width="81"
+ height="171"
+ x="969"
+ y="236" />
+ <path
+ inkscape:label="pageup"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path142"
+ d="M 1009.5,23 1047,81 H 972 Z"
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <path
+ inkscape:label="pagedown"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path144"
+ d="m 972,603 h 75 l -37.5,58 z"
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ </g>
+ <g
+ transform="matrix(0.35355339,0.35355339,-0.35355339,0.35355339,831.43929,-136.17916)"
+ inkscape:label="HMI:ScrollBar@.position@.range@.size"
+ id="g156"
+ style="stroke-width:2">
+ <rect
+ inkscape:label="range"
+ style="opacity:1;vector-effect:none;fill:#ff35ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect148"
+ width="100"
+ height="516"
+ x="960"
+ y="84" />
+ <rect
+ inkscape:label="cursor"
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect150"
+ width="81"
+ height="171"
+ x="969"
+ y="236" />
+ <path
+ inkscape:label="pageup"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path152"
+ d="M 1009.5,23 1047,81 H 972 Z"
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <path
+ inkscape:label="pagedown"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path154"
+ d="m 972,603 h 75 l -37.5,58 z"
+ style="opacity:1;vector-effect:none;fill:#3835ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_v2/beremiz.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_v2/plc.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,585 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/>
+ <contentHeader name="Unnamed" modificationDateTime="2020-09-30T13:04:27">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="5" y="5"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes/>
+ <pous>
+ <pou name="MainStuff" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="TargetPressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="selection">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="Pump0">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="TestButton">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="TestLocal">
+ <type>
+ <BOOL/>
+ </type>
+ </variable>
+ <variable name="Multistate">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="Radiostate">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="Toggle">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="Toggle1">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="Toggle2">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="MultistateExt">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ <variable name="Speed">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="40" width="127">
+ <position x="595" y="50"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="445" y="65"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <inVariable localId="6" executionOrderId="0" height="25" width="90" negated="false">
+ <position x="130" y="60"/>
+ <connectionPointOut>
+ <relPosition x="90" y="10"/>
+ </connectionPointOut>
+ <expression>TestButton</expression>
+ </inVariable>
+ <outVariable localId="7" executionOrderId="0" height="25" width="85" negated="false">
+ <position x="495" y="220"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="6">
+ <position x="495" y="230"/>
+ <position x="367" y="230"/>
+ <position x="367" y="70"/>
+ <position x="220" y="70"/>
+ </connection>
+ </connectionPointIn>
+ <expression>TestLocal</expression>
+ </outVariable>
+ <inVariable localId="1" executionOrderId="0" height="25" width="115" negated="false">
+ <position x="175" y="355"/>
+ <connectionPointOut>
+ <relPosition x="115" y="10"/>
+ </connectionPointOut>
+ <expression>Multistate</expression>
+ </inVariable>
+ <outVariable localId="8" executionOrderId="0" height="25" width="115" negated="false">
+ <position x="495" y="355"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="1">
+ <position x="495" y="365"/>
+ <position x="290" y="365"/>
+ </connection>
+ </connectionPointIn>
+ <expression>MultistateExt</expression>
+ </outVariable>
+ </FBD>
+ </body>
+ </pou>
+ <pou name="PumpControl" pouType="functionBlock">
+ <interface>
+ <localVars>
+ <variable name="Pump">
+ <type>
+ <derived name="HMI_NODE"/>
+ </type>
+ </variable>
+ <variable name="Pressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ <inputVars>
+ <variable name="TargetPressure">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="Sloth">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="boolout">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="boolin">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ <initialValue>
+ <simpleValue value="True"/>
+ </initialValue>
+ </variable>
+ <variable name="strout">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ <variable name="strin">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ <initialValue>
+ <simpleValue value="blup"/>
+ </initialValue>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="150" y="100"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65">
+ <position x="405" y="65"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="405" y="115"/>
+ <position x="360" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="150" y="135"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65">
+ <position x="295" y="85"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="295" y="115"/>
+ <position x="275" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="1">
+ <position x="295" y="135"/>
+ <position x="285" y="135"/>
+ <position x="285" y="150"/>
+ <position x="225" y="150"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="190"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="435" y="205"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="8" formalParameter="OUT">
+ <position x="435" y="220"/>
+ <position x="410" y="220"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Pressure</expression>
+ </outVariable>
+ <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65">
+ <position x="345" y="190"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="2">
+ <position x="345" y="220"/>
+ <position x="335" y="220"/>
+ <position x="335" y="205"/>
+ <position x="300" y="205"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="9">
+ <position x="345" y="240"/>
+ <position x="300" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="225"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>100</expression>
+ </inVariable>
+ <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65">
+ <position x="360" y="345"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="13" formalParameter="OUT">
+ <position x="360" y="375"/>
+ <position x="330" y="375"/>
+ <position x="330" y="332"/>
+ <position x="440" y="332"/>
+ <position x="440" y="300"/>
+ <position x="430" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="14">
+ <position x="360" y="395"/>
+ <position x="322" y="395"/>
+ <position x="322" y="400"/>
+ <position x="285" y="400"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false">
+ <position x="495" y="355"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="10" formalParameter="OUT">
+ <position x="495" y="370"/>
+ <position x="450" y="370"/>
+ <position x="450" y="375"/>
+ <position x="425" y="375"/>
+ </connection>
+ </connectionPointIn>
+ <expression>strout</expression>
+ </outVariable>
+ <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="145" y="285"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115">
+ <position x="315" y="270"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="12">
+ <position x="315" y="300"/>
+ <position x="270" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false">
+ <position x="235" y="385"/>
+ <connectionPointOut>
+ <relPosition x="50" y="15"/>
+ </connectionPointOut>
+ <expression>strin</expression>
+ </inVariable>
+ <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="690" y="210"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>boolin</expression>
+ </inVariable>
+ <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false">
+ <position x="915" y="240"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="17" formalParameter="OUT">
+ <position x="915" y="255"/>
+ <position x="880" y="255"/>
+ </connection>
+ </connectionPointIn>
+ <expression>boolout</expression>
+ </outVariable>
+ <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65">
+ <position x="815" y="225"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="15">
+ <position x="815" y="255"/>
+ <position x="762" y="255"/>
+ <position x="762" y="225"/>
+ <position x="750" y="225"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="21" formalParameter="OUT">
+ <position x="815" y="275"/>
+ <position x="750" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="455" y="260"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65">
+ <position x="585" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="18">
+ <position x="585" y="275"/>
+ <position x="530" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="20">
+ <position x="585" y="295"/>
+ <position x="555" y="295"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="535" y="280"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>2</expression>
+ </inVariable>
+ <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65">
+ <position x="685" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="19" formalParameter="OUT">
+ <position x="685" y="275"/>
+ <position x="650" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="22">
+ <position x="685" y="295"/>
+ <position x="670" y="295"/>
+ <position x="670" y="330"/>
+ <position x="650" y="330"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="630" y="315"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <inVariable localId="4" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="510" y="80"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="MainStuff"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_v2/py_ext_0@py_ext/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_v2/py_ext_0@py_ext/pyfile.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='utf-8'?>
+<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <variables>
+ <variable name="SomePLCglobal" type="HMI_STRING" initial="'blaf'" onchange="MyOnChangeFunc"/>
+ </variables>
+ <globals>
+ <xhtml:p><![CDATA[
+
+def MyOnChangeFunc(changed_var_name):
+ print changed_var_name + ": " + getattr(PLCGlobals, changed_var_name)
+
+]]></xhtml:p>
+ </globals>
+ <init>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </init>
+ <cleanup>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </cleanup>
+ <start>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </start>
+ <stop>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </stop>
+</PyFile>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_v2/svghmi_0@svghmi/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_v2/svghmi_0@svghmi/confnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="xdg-open http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_v2/svghmi_0@svghmi/svghmi.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,1619 @@
+<?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="1280"
+ height="720"
+ viewBox="0 0 1280 720"
+ version="1.1"
+ id="hmi0"
+ sodipodi:docname="svghmi.svg"
+ inkscape:version="0.92.5 (0.92.5+68)"
+ inkscape:label="Layer">
+ <metadata
+ id="metadata4542">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="-688.56326 : 510.71991 : 1"
+ inkscape:vp_y="0 : 1306.0642 : 0"
+ inkscape:vp_z="662.62627 : 323.72015 : 1"
+ inkscape:persp3d-origin="147.31778 : 353.99223 : 1"
+ id="perspective258" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="-457.78124 : 416.79285 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="576.76945 : 273.61475 : 1"
+ inkscape:persp3d-origin="182.21876 : 296.79285 : 1"
+ id="perspective503" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="-104 : 357 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1272 : 385 : 1"
+ inkscape:persp3d-origin="536 : 237 : 1"
+ id="perspective445" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient962">
+ <stop
+ style="stop-color:#ff3000;stop-opacity:1;"
+ offset="0"
+ id="stop958" />
+ <stop
+ style="stop-color:#0022ff;stop-opacity:1"
+ offset="1"
+ id="stop960" />
+ </linearGradient>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker926"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path924"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient962"
+ id="linearGradient1407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5,0,0,0.03945396,73.07865,3.7693345)"
+ x1="113.38908"
+ y1="-62.210247"
+ x2="113.38908"
+ y2="4.0725975" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="-470.06413 : 851.30353 : 1"
+ inkscape:vp_y="0 : 1319.7648 : 0"
+ inkscape:vp_z="895.29941 : 662.3421 : 1"
+ inkscape:persp3d-origin="374.58537 : 692.93174 : 1"
+ id="perspective503-6" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:document-units="px"
+ inkscape:current-layer="hmi0"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="1"
+ inkscape:cx="379.07861"
+ inkscape:cy="265.09897"
+ inkscape:window-width="2503"
+ inkscape:window-height="1416"
+ inkscape:window-x="57"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <rect
+ style="color:#000000;fill:#4d4d4d"
+ id="page0"
+ width="1280"
+ height="720"
+ x="0"
+ y="0"
+ inkscape:label="HMI:Page:Home"
+ sodipodi:insensitive="true" />
+ <g
+ inkscape:label="HMI:Slider@/SPEED"
+ transform="matrix(7.5590552,0,0,7.5590552,-780.78539,561.61779)"
+ id="g110-0">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.52916664;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 113.38908,2.2017068 V -62.210247"
+ id="path90-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="range" />
+ <path
+ inkscape:label="handle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path92-3"
+ d="m 113.32293,4.2048893 v -5.230241"
+ style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient1407);stroke-width:5.28146696;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="115.07632"
+ y="9.3424692"
+ id="text96-6"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan94-0"
+ x="115.07632"
+ y="9.3424692"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text100-6"
+ y="-64.195457"
+ x="113.27539"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-64.195457"
+ x="113.27539"
+ sodipodi:role="line"
+ id="tspan1409">10</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-24.72547"
+ y="-121.97556"
+ id="text104-6"
+ inkscape:label="value"
+ transform="rotate(90)"><tspan
+ sodipodi:role="line"
+ x="-24.72547"
+ y="-121.97556"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan102-1">000</tspan></text>
+ </g>
+ <g
+ id="g4557"
+ inkscape:label="HMI:Input@/SOMEPLCGLOBAL">
+ <text
+ inkscape:label="value"
+ transform="scale(1.1201068,0.89277202)"
+ id="text2398"
+ y="479.46704"
+ x="247.53484"
+ style="font-style:normal;font-weight:normal;font-size:124.08008575px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.10200214px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:3.10200214px"
+ y="479.46704"
+ x="247.53484"
+ id="tspan2396"
+ sodipodi:role="line">Test</tspan></text>
+ <rect
+ style="opacity:0.18600003;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:1.11699021"
+ id="rect4559"
+ width="323.85489"
+ height="132.93608"
+ x="257.10974"
+ y="328.97858"
+ inkscape:label="edit" />
+ <rect
+ style="opacity:0;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:3.45667744"
+ id="rect4561"
+ width="580.42413"
+ height="339.91623"
+ x="699.57587"
+ y="380.08374"
+ inkscape:label="key_pos" />
+ </g>
+ <g
+ transform="matrix(1.5213157,0,0,1.4848913,-82.472173,789.79964)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4278"
+ inkscape:label="HMI:Keypad:HMI_STRING">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z"
+ id="rect1006-3"
+ inkscape:connector-curvature="0"
+ inkscape:label="Background"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path185"
+ d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z"
+ inkscape:connector-curvature="0"
+ inkscape:label="Space" />
+ <g
+ id="g4380"
+ inkscape:label="Keys"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <g
+ id="g4283"
+ inkscape:label="q Q"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path41"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="99.378708"
+ y="138.28395"
+ id="text203"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Q</text>
+ </g>
+ <g
+ id="g4337"
+ inkscape:label="w W"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path43"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="127.0709"
+ y="138.28395"
+ id="text207"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">W</text>
+ </g>
+ <g
+ id="g4332"
+ inkscape:label="e E"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path45"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="159.70854"
+ y="138.28395"
+ id="text211"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">E</text>
+ </g>
+ <g
+ id="g4326"
+ inkscape:label="r R"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path47"
+ d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="188.39003"
+ y="138.28395"
+ id="text215"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">R</text>
+ </g>
+ <g
+ id="g4321"
+ inkscape:label="t T"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path49"
+ d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="219.04961"
+ y="138.28395"
+ id="text219"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">T</text>
+ </g>
+ <g
+ id="g4316"
+ inkscape:label="y Y"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path51"
+ d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="248.72017"
+ y="138.28395"
+ id="text223"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Y</text>
+ </g>
+ <g
+ id="g4311"
+ inkscape:label="u U"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path53"
+ d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="278.39075"
+ y="138.28395"
+ id="text227"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">U</text>
+ </g>
+ <g
+ id="g4306"
+ inkscape:label="i I"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path55"
+ d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="311.02859"
+ y="138.28395"
+ id="text231"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">I</text>
+ </g>
+ <g
+ id="g4301"
+ inkscape:label="o O"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path57"
+ d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="336.74319"
+ y="138.28395"
+ id="text235"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">O</text>
+ </g>
+ <g
+ id="g4296"
+ inkscape:label="p P"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path59"
+ d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="367.40256"
+ y="138.28395"
+ id="text239"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">P</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4511"
+ inkscape:label="a A">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path65"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text243"
+ y="163.99854"
+ x="107.29005"
+ transform="scale(1.0007154,0.99928514)">A</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4516"
+ inkscape:label="s S">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path67"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text247"
+ y="163.99854"
+ x="137.95012"
+ transform="scale(1.0007154,0.99928514)">S</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4521"
+ inkscape:label="d D">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path69"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text251"
+ y="163.99854"
+ x="166.63159"
+ transform="scale(1.0007154,0.99928514)">D</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4526"
+ inkscape:label="f F">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path71"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text255"
+ y="163.99854"
+ x="197.29166"
+ transform="scale(1.0007154,0.99928514)">F</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4531"
+ inkscape:label="g G">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path73"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text259"
+ y="163.99854"
+ x="225.97284"
+ transform="scale(1.0007154,0.99928514)">G</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4536"
+ inkscape:label="h H">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path75"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text263"
+ y="163.99854"
+ x="255.64342"
+ transform="scale(1.0007154,0.99928514)">H</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4541"
+ inkscape:label="j J">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path77"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text267"
+ y="163.99854"
+ x="287.29208"
+ transform="scale(1.0007154,0.99928514)">J</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4546"
+ inkscape:label="k K">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path79"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text271"
+ y="163.99854"
+ x="314.98465"
+ transform="scale(1.0007154,0.99928514)">K</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4551"
+ inkscape:label="l L">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path81"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text275"
+ y="163.99854"
+ x="345.64444"
+ transform="scale(1.0007154,0.99928514)">L</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4586"
+ inkscape:label="z Z"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path87-3"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text279"
+ y="188.72411"
+ x="119.15855"
+ transform="scale(1.0007154,0.99928514)">Z</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4581"
+ inkscape:label="x X"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path89-6"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text283"
+ y="188.72411"
+ x="148.82933"
+ transform="scale(1.0007154,0.99928514)">X</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4576"
+ inkscape:label="c C"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path91-7"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text287"
+ y="188.72411"
+ x="178.50011"
+ transform="scale(1.0007154,0.99928514)">C</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4571"
+ inkscape:label="v V"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z"
+ id="path195"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text291"
+ y="188.72411"
+ x="208.16988"
+ transform="scale(1.0007154,0.99928514)">V</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4566"
+ inkscape:label="b B"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path93"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text295"
+ y="188.72411"
+ x="237.84096"
+ transform="scale(1.0007154,0.99928514)">B</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4561"
+ inkscape:label="n N"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path95"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text299"
+ y="188.72411"
+ x="267.51193"
+ transform="scale(1.0007154,0.99928514)">N</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4556"
+ inkscape:label="m M"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path97"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text303"
+ y="188.72411"
+ x="296.1933"
+ transform="scale(1.0007154,0.99928514)">M</text>
+ </g>
+ <g
+ id="g4818"
+ inkscape:label=". :"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path101"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text719"
+ y="189.66107"
+ x="359.58276">.</text>
+ <text
+ x="359.58276"
+ y="181.64532"
+ id="text4834"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928512)">:</text>
+ </g>
+ <g
+ id="g4813"
+ inkscape:label=", ;"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path99"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text727"
+ y="181.64532"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)">;</text>
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ y="189.66107"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)"
+ id="text4826">,</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="1"
+ id="g2845"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2839"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2841"
+ y="138.28395"
+ x="101.07153"
+ transform="scale(1.0007154,0.99928513)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="2"
+ id="g2853"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2847"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2849"
+ y="138.28395"
+ x="130.18704"
+ transform="scale(1.0007154,0.99928513)">2</text>
+ </g>
+ <g
+ inkscape:label="3"
+ id="g2861"
+ style="stroke-width:0.47631353"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2855"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2857"
+ y="138.28395"
+ x="159.70854"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ id="g2957"
+ inkscape:label="4"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z"
+ id="path2865"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2867"
+ y="111.55791"
+ x="176.39188"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ id="g2962"
+ inkscape:label="5"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2873"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2875"
+ y="111.55791"
+ x="205.70567"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ id="g2967"
+ inkscape:label="6"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2881"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2883"
+ y="111.55791"
+ x="236.15851"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ id="g2972"
+ inkscape:label="7"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2889"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2891"
+ y="111.55791"
+ x="266.06564"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ id="g2977"
+ inkscape:label="8"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2897"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2899"
+ y="111.55791"
+ x="295.08231"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ id="g2982"
+ inkscape:label="9 -"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2905"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2907"
+ y="111.55791"
+ x="325.05408"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ x="335.72681"
+ y="102.42173"
+ id="text806"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text>
+ </g>
+ <g
+ id="g2987"
+ inkscape:label="0 +"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2913"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2915"
+ y="111.55791"
+ x="355.05984"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text804"
+ y="102.42173"
+ x="365.30151">+</text>
+ </g>
+ </g>
+ <g
+ transform="translate(335.89988,-58.934803)"
+ id="g3544"
+ inkscape:label="Esc"
+ style="stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path105"
+ d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928512)"
+ style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text469"
+ y="130.02028"
+ x="59.288635">Esc</text>
+ </g>
+ <g
+ inkscape:label="Enter"
+ id="g4291"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3616"
+ d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)"
+ id="path6545"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:label="BackSpace"
+ id="g4287"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(2.3648311e-6,-28.614579)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3624"
+ d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)"
+ id="path11623-1-0"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g934"
+ inkscape:label="CapsLock">
+ <g
+ inkscape:label="inactive"
+ id="g942"
+ style="display:inline;fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path936-3"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="69.789322"
+ y="156.71973"
+ id="text938-5"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Caps</text>
+ <text
+ x="69.789322"
+ y="166.5585"
+ id="text940"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Lock</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4429"
+ inkscape:label="active">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ id="path199"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text647"
+ y="156.71973"
+ x="69.789322">Caps</text>
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text651"
+ y="166.5585"
+ x="69.789322">Lock</text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect2130"
+ width="361.89996"
+ height="30.150299"
+ x="64.024956"
+ y="15.771065"
+ rx="3.8152773"
+ ry="3.8152773"
+ inkscape:label="Field" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="72.50132"
+ y="38.296417"
+ id="text1309"
+ inkscape:label="Value"><tspan
+ sodipodi:role="line"
+ id="tspan1307"
+ x="72.50132"
+ y="38.296417"
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text>
+ <g
+ id="g437"
+ inkscape:label="Shift">
+ <g
+ id="g421"
+ inkscape:label="inactive">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ id="path910"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text912"
+ y="177.90059"
+ x="392.55679"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path856"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="75.85218"
+ y="177.90059"
+ id="text858"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ </g>
+ <g
+ id="g413"
+ inkscape:label="active">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path551"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ x="392.55679"
+ y="177.90059"
+ id="text629"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ id="path879"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text881"
+ y="177.90059"
+ x="75.85218">Shift</text>
+ </g>
+ </g>
+ <text
+ transform="scale(0.96824588,1.0327955)"
+ id="text471"
+ y="12.333657"
+ x="252.9579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Info"><tspan
+ style="stroke-width:0.30784383px"
+ y="12.333657"
+ x="252.9579"
+ id="tspan469"
+ sodipodi:role="line">information</tspan></text>
+ <rect
+ style="opacity:0.18600003;fill:#de2cc9;fill-opacity:1;stroke:none;stroke-width:0.31677353"
+ id="rect4563"
+ width="381.45959"
+ height="14.110301"
+ x="54.211086"
+ y="1.2654642"
+ inkscape:label="position" />
+ </g>
+ <g
+ inkscape:label="HMI:Slider@/PUMP0/SLOTH"
+ transform="matrix(7.5590552,0,0,7.5590552,-248.554,584.0829)"
+ id="g110-0-9">
+ <g
+ inkscape:label="setpoint"
+ style="opacity:0.5;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.76565915"
+ inkscape:corner7="-0.15304809 : -0.15652183 : 0.051043755 : 1"
+ inkscape:corner0="-0.13109479 : -0.13697746 : 0 : 1"
+ inkscape:perspectiveID="#perspective258"
+ id="g256"
+ sodipodi:type="inkscape:box3d">
+ <path
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ points="69.054145,5.4029493 71.910946,3.7246414 71.910946,0.053890203 69.054145,1.5165601 "
+ d="M 69.054145,1.5165601 V 5.4029493 L 71.910946,3.7246414 V 0.0538902 Z"
+ inkscape:box3dsidetype="6"
+ id="path244"
+ sodipodi:type="inkscape:box3dside" />
+ <path
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ points="72.352867,6.8282124 75.092002,5.0278603 71.910946,3.7246414 69.054145,5.4029493 "
+ d="M 69.054145,5.4029493 72.352867,6.8282124 75.092002,5.0278603 71.910946,3.7246414 Z"
+ inkscape:box3dsidetype="13"
+ id="path246"
+ sodipodi:type="inkscape:box3dside" />
+ <path
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ points="75.092002,1.2673703 75.092002,5.0278603 71.910946,3.7246414 71.910946,0.053890203 "
+ d="m 71.910946,0.0538902 3.181056,1.2134801 v 3.76049 L 71.910946,3.7246414 Z"
+ inkscape:box3dsidetype="11"
+ id="path248"
+ sodipodi:type="inkscape:box3dside" />
+ <path
+ style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ points="72.352867,2.8410867 75.092002,1.2673703 71.910946,0.053890203 69.054145,1.5165601 "
+ d="M 69.054145,1.5165601 72.352867,2.8410867 75.092002,1.2673703 71.910946,0.0538902 Z"
+ inkscape:box3dsidetype="5"
+ id="path250"
+ sodipodi:type="inkscape:box3dside" />
+ <path
+ style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ points="72.352867,6.8282124 75.092002,5.0278603 75.092002,1.2673703 72.352867,2.8410867 "
+ d="m 72.352867,2.8410867 v 3.9871257 l 2.739135,-1.8003521 v -3.76049 z"
+ inkscape:box3dsidetype="14"
+ id="path252"
+ sodipodi:type="inkscape:box3dside" />
+ <path
+ style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+ points="72.352867,2.8410867 72.352867,6.8282124 69.054145,5.4029493 69.054145,1.5165601 "
+ d="m 69.054145,1.5165601 3.298722,1.3245266 V 6.8282124 L 69.054145,5.4029493 Z"
+ inkscape:box3dsidetype="3"
+ id="path254"
+ sodipodi:type="inkscape:box3dside" />
+ </g>
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:0.52375954;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 71.94894,3.6581855 79.3256,0.040092"
+ id="path90-9-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="range" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="68.771873"
+ y="5.501111"
+ id="text96-6-0"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan94-0-62"
+ x="68.771873"
+ y="5.501111"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text100-6-6"
+ y="5.501111"
+ x="159.67337"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="5.501111"
+ x="159.67337"
+ sodipodi:role="line"
+ id="tspan1409-1">1000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:7.78479624px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.19461991px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-115.32294"
+ y="-9.0188799"
+ id="text104-6-8"
+ inkscape:label="value"
+ transform="scale(-1)"><tspan
+ sodipodi:role="line"
+ x="-115.32294"
+ y="-9.0188799"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.19461991px"
+ id="tspan102-1-7">000</tspan></text>
+ <g
+ sodipodi:type="inkscape:box3d"
+ id="g930"
+ inkscape:perspectiveID="#perspective503"
+ inkscape:corner0="-0.13109479 : -0.13697746 : 0 : 1"
+ inkscape:corner7="-0.15304809 : -0.15652183 : 0.051043755 : 1"
+ style="fill:#ff0000;fill-opacity:1;stroke:none"
+ inkscape:label="handle"
+ transform="translate(0.01,0.01)">
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path932"
+ inkscape:box3dsidetype="6"
+ d="M 69.751604,1.9575481 V 4.9331975 L 71.93894,3.6481857 V 0.8376415 Z"
+ points="69.751604,4.9331975 71.93894,3.6481857 71.93894,0.8376415 69.751604,1.9575481 "
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path940"
+ inkscape:box3dsidetype="13"
+ d="M 69.751604,4.9331975 72.2773,6.0244633 74.374544,4.6460073 71.93894,3.6481857 Z"
+ points="72.2773,6.0244633 74.374544,4.6460073 71.93894,3.6481857 69.751604,4.9331975 "
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path942"
+ inkscape:box3dsidetype="11"
+ d="m 71.93894,0.8376415 2.435604,0.9291122 V 4.6460073 L 71.93894,3.6481857 Z"
+ points="74.374544,1.7667537 74.374544,4.6460073 71.93894,3.6481857 71.93894,0.8376415 "
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path934"
+ inkscape:box3dsidetype="5"
+ d="M 69.751604,1.9575481 72.2773,2.971684 74.374544,1.7667537 71.93894,0.8376415 Z"
+ points="72.2773,2.971684 74.374544,1.7667537 71.93894,0.8376415 69.751604,1.9575481 "
+ style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path938"
+ inkscape:box3dsidetype="14"
+ d="m 72.2773,2.971684 v 3.0527793 l 2.097244,-1.378456 V 1.7667537 Z"
+ points="72.2773,6.0244633 74.374544,4.6460073 74.374544,1.7667537 72.2773,2.971684 "
+ style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path936"
+ inkscape:box3dsidetype="3"
+ d="M 69.751604,1.9575481 72.2773,2.971684 V 6.0244633 L 69.751604,4.9331975 Z"
+ points="72.2773,2.971684 72.2773,6.0244633 69.751604,4.9331975 69.751604,1.9575481 "
+ style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ id="g1292-3"
+ inkscape:label="HMI:Input@/RADIOSTATE"
+ transform="matrix(0.94144976,0,0,1.7212489,176.35468,-2117.077)">
+ <g
+ id="g2530"
+ inkscape:label="=3">
+ <rect
+ style="display:inline;fill:#0009ff;fill-opacity:1;stroke:none;stroke-width:0.24259248"
+ id="rect1273-6-3"
+ width="57.391823"
+ height="24.148804"
+ x="230.03636"
+ y="1238.2637"
+ inkscape:label="3" />
+ <g
+ transform="translate(-213.152,55.750293)"
+ id="g2520-5"
+ inkscape:label="HMI:Switch@/RADIOSTATE"
+ style="fill:#0009ff;fill-opacity:1">
+ <rect
+ inkscape:label="3"
+ y="1206.6622"
+ x="443.18835"
+ height="24.148754"
+ width="57.39183"
+ id="rect1273-6-9-9-9"
+ style="display:inline;fill:#0009ff;fill-opacity:1;stroke:none;stroke-width:0.24259226" />
+ </g>
+ </g>
+ <g
+ id="g2527"
+ inkscape:label="=2">
+ <rect
+ style="display:inline;fill:#00ffed;fill-opacity:1;stroke:none;stroke-width:0.24259254"
+ id="rect1273-6-56"
+ width="57.391857"
+ height="24.148804"
+ x="313.84549"
+ y="1238.2637"
+ inkscape:label="2" />
+ <g
+ transform="translate(-303.62283,32.70105)"
+ id="g2520-2"
+ inkscape:label="HMI:Switch@/RADIOSTATE">
+ <rect
+ inkscape:label="2"
+ y="1229.7114"
+ x="617.46832"
+ height="24.148754"
+ width="57.39183"
+ id="rect1273-6-9-9-0"
+ style="display:inline;fill:#00ffed;fill-opacity:1;stroke:none;stroke-width:0.24259226" />
+ </g>
+ </g>
+ <g
+ id="g2524"
+ inkscape:label="=1">
+ <rect
+ style="display:inline;fill:#3eff00;fill-opacity:1;stroke:none;stroke-width:0.24182089"
+ id="rect1273-6-2"
+ width="57.027344"
+ height="24.148796"
+ x="146.22725"
+ y="1238.2637"
+ inkscape:label="1" />
+ <g
+ transform="translate(-213.152,55.750293)"
+ id="g2520-23"
+ inkscape:label="HMI:Switch@/RADIOSTATE">
+ <rect
+ inkscape:label="1"
+ y="1206.6622"
+ x="359.37924"
+ height="24.148754"
+ width="57.39183"
+ id="rect1273-6-9-9-7"
+ style="display:inline;fill:#3eff00;fill-opacity:1;stroke:none;stroke-width:0.24259226" />
+ </g>
+ </g>
+ <g
+ id="g2501"
+ inkscape:label="=0"
+ transform="translate(-260.62575)">
+ <rect
+ inkscape:label="0"
+ y="1238.2637"
+ x="323.04385"
+ height="24.148754"
+ width="57.39183"
+ id="rect1273-6-9"
+ style="display:inline;fill:#ffea00;fill-opacity:1;stroke:none;stroke-width:0.24259225" />
+ <g
+ id="g2520"
+ inkscape:label="HMI:Switch@/RADIOSTATE">
+ <rect
+ inkscape:label="0"
+ y="1262.4125"
+ x="323.04385"
+ height="24.148754"
+ width="57.39183"
+ id="rect1273-6-9-9"
+ style="display:inline;fill:#ffea00;fill-opacity:1;stroke:none;stroke-width:0.24259226" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g1047"
+ inkscape:label="HMI:CircularBar@/PUMP0/SLOTH"
+ transform="matrix(0.39840034,0,0,0.35920948,-97.955902,106.13488)">
+ <path
+ inkscape:label="range"
+ sodipodi:open="true"
+ d="M 1079.626,411.60913 A 184.25998,167.44942 0 0 1 874.51345,308.78336 184.25998,167.44942 0 0 1 946.20137,106.11681 184.25998,167.44942 0 0 1 1178.8257,131.16507"
+ sodipodi:end="5.5191826"
+ sodipodi:start="1.3860423"
+ sodipodi:ry="167.44942"
+ sodipodi:rx="184.25998"
+ sodipodi:cy="247.00946"
+ sodipodi:cx="1045.7766"
+ sodipodi:type="arc"
+ id="path1044"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#fe00dc;stroke-width:22.07197189;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1046.8701"
+ y="258.16129"
+ id="text1051"
+ transform="scale(0.91814752,1.0891496)"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1049"
+ x="1046.8701"
+ y="258.16129"
+ style="fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-opacity:1">000</tspan></text>
+ <path
+ inkscape:label="path"
+ sodipodi:open="true"
+ d="M 1083.68,410.87778 A 184.25998,167.44942 0 0 1 875.42544,310.83196 184.25998,167.44942 0 0 1 945.58759,106.47662 184.25998,167.44942 0 0 1 1179.4956,131.8038"
+ sodipodi:end="5.524452"
+ sodipodi:start="1.3636114"
+ sodipodi:ry="167.44942"
+ sodipodi:rx="184.25998"
+ sodipodi:cy="247.00946"
+ sodipodi:cx="1045.7766"
+ sodipodi:type="arc"
+ id="path1044-3"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#00fff1;stroke-width:40;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g1047-6"
+ inkscape:label="HMI:CircularSlider@/PUMP0/SLOTH"
+ transform="matrix(0.45707797,0,0,0.45707797,33.744118,80.994747)">
+ <path
+ inkscape:label="range"
+ d="M 970.29569,399.76446 A 184.25998,167.44942 0 0 1 866.26395,284.77467 184.25998,167.44942 0 0 1 904.10823,139.93753"
+ sodipodi:end="3.8353474"
+ sodipodi:start="1.9928597"
+ sodipodi:ry="167.44942"
+ sodipodi:rx="184.25998"
+ sodipodi:cy="247.00946"
+ sodipodi:cx="1045.7766"
+ sodipodi:type="arc"
+ id="path1044-7"
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#fe00dc;stroke-width:22.07197189;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:open="true" />
+ <g
+ sodipodi:type="inkscape:box3d"
+ id="g930-2"
+ inkscape:perspectiveID="#perspective503-6"
+ inkscape:corner0="-0.086129988 : -0.14445971 : 0 : 1"
+ inkscape:corner7="-0.10808329 : -0.16400408 : 0.051043755 : 1"
+ style="fill:#ff0000;fill-opacity:1;stroke:none"
+ inkscape:label="handle"
+ inkscape:transform-center-x="8"
+ inkscape:transform-center-y="98">
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path932-9"
+ inkscape:box3dsidetype="6"
+ d="m 919.8592,371.09875 v 61.75093 l 51.05152,-25.59855 v -58.48432 z"
+ points="919.8592,432.84968 970.91072,407.25113 970.91072,348.76681 919.8592,371.09875 "
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path940-1"
+ inkscape:box3dsidetype="13"
+ d="m 919.8592,432.84968 49.77112,22.08624 49.54588,-27.39007 -48.26548,-20.29472 z"
+ points="969.63032,454.93592 1019.1762,427.54585 970.91072,407.25113 919.8592,432.84968 "
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path942-2"
+ inkscape:box3dsidetype="11"
+ d="m 970.91072,348.76681 48.26548,18.93313 v 59.84591 l -48.26548,-20.29472 z"
+ points="1019.1762,367.69994 1019.1762,427.54585 970.91072,407.25113 970.91072,348.76681 "
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path934-7"
+ inkscape:box3dsidetype="5"
+ d="m 919.8592,371.09875 49.77112,20.56633 49.54588,-23.96514 -48.26548,-18.93313 z"
+ points="969.63032,391.66508 1019.1762,367.69994 970.91072,348.76681 919.8592,371.09875 "
+ style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path938-0"
+ inkscape:box3dsidetype="14"
+ d="m 969.63032,391.66508 v 63.27084 l 49.54588,-27.39007 v -59.84591 z"
+ points="969.63032,454.93592 1019.1762,427.54585 1019.1762,367.69994 969.63032,391.66508 "
+ style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path936-9"
+ inkscape:box3dsidetype="3"
+ d="m 919.8592,371.09875 49.77112,20.56633 v 63.27084 L 919.8592,432.84968 Z"
+ points="969.63032,391.66508 969.63032,454.93592 919.8592,432.84968 919.8592,371.09875 "
+ style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:21.82598114px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1046.8701"
+ y="258.16129"
+ id="text1051-5"
+ transform="scale(0.91814752,1.0891496)"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1049-3"
+ x="1046.8701"
+ y="258.16129"
+ style="fill:#ff00ca;fill-opacity:1;stroke:none;stroke-width:2.25346255px;stroke-opacity:1">000</tspan></text>
+ </g>
+ <g
+ transform="translate(-289.17513,-33.060654)"
+ id="g4791-6"
+ inkscape:label="HMI:ToggleButton@/TOGGLE1">
+ <rect
+ inkscape:label="inactive"
+ y="47.187904"
+ x="906.51086"
+ height="44.547726"
+ width="45.254833"
+ id="rect4772-5"
+ style="opacity:1;fill:#ff0015;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:label="active"
+ y="47.187904"
+ x="906.51086"
+ height="44.547726"
+ width="45.254833"
+ id="rect4772-3-7"
+ style="opacity:1;fill:#00ff03;fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ transform="translate(-287.05529,41.033314)"
+ id="g479hgjk"
+ inkscape:label="HMI:Button@/TOGGLE">
+ <rect
+ inkscape:label="active"
+ y="46.127251"
+ x="906.51086"
+ height="44.547726"
+ width="45.254833"
+ id="rect47fuzkj"
+ style="opacity:1;fill:#00ff03;fill-opacity:1;stroke:none" />
+ <rect
+ inkscape:label="inactive"
+ y="46.127251"
+ x="906.51086"
+ height="44.547726"
+ width="45.254833"
+ id="rect477hjoj"
+ style="opacity:1;fill:#ff0015;fill-opacity:1;stroke:none" />
+ </g>
+ <g
+ id="g1112"
+ inkscape:label="HMI:AnimateRotation@/SPEED">
+ <circle
+ r="32.057827"
+ cy="436.18585"
+ cx="747.05347"
+ id="path1380"
+ style="fill:#ececec;fill-opacity:1;stroke:#ff0000;stroke-width:2.95733476;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="286.18585"
+ x="597.05353"
+ height="300"
+ width="300"
+ id="rect1382"
+ style="opacity:0;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:3.69000006;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="sssssss"
+ inkscape:connector-curvature="0"
+ id="path1388"
+ d="m 719.75481,403.83452 c 1.9692,9.54564 9.417,-4.37059 26.6751,-4.06174 27.2477,0.48762 30.0401,21.24497 35.5749,12.81174 6.6594,-10.14673 12.6699,-22.7446 14.75,-33.25 13.5509,-68.43783 -46.4736,-97.18589 -72,-91.49999 -40.88858,9.10778 -49.54078,47.21136 -31.99998,71.75 13.16428,18.41615 23.37448,26.67508 26.99998,44.24999 z"
+ style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="sssssss"
+ inkscape:connector-curvature="0"
+ id="path1388-9"
+ d="m 789.45321,432.25975 c -8.9783,-3.79302 -1.7422,10.23457 -11.7862,24.27224 -15.8577,22.16324 -34.5364,12.68834 -30.7308,22.03024 4.5788,11.24 11.5443,23.3361 19.0162,31.0083 48.6752,49.9808 106.3992,16.8549 116.1963,-7.3926 15.6932,-38.84015 -10.7791,-67.57972 -40.9378,-67.05341 -22.634,0.39495 -35.2273,4.11873 -51.7577,-2.86477 z"
+ style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="sssssss"
+ inkscape:connector-curvature="0"
+ id="path1388-9-8"
+ d="m 730.85671,475.85643 c 7.5732,-6.1355 -8.2092,-6.3552 -15.8654,-21.82523 -12.0882,-24.42445 5.0646,-36.44319 -4.9688,-37.48364 -12.07218,-1.25186 -26.02318,-0.80116 -36.30958,2.17903 -67.0109,19.41388 -64.9607,85.93594 -48.1806,105.99474 26.8787,32.1304 64.6969,22.3051 78.43058,-4.5502 10.3071,-20.1549 12.9505,-33.0184 26.8938,-44.3147 z"
+ style="fill:#fd0000;fill-opacity:1;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <animateTransform
+ attributeName="transform"
+ attributeType="XML"
+ type="rotate"
+ from="0 1049 278"
+ to="360 1049 278"
+ dur="1s"
+ repeatCount="indefinite" />
+ </g>
+ <g
+ id="g1093"
+ inkscape:label="HMI:CustomHtml">
+ <rect
+ inkscape:label="container"
+ y="12"
+ x="818"
+ height="323"
+ width="452"
+ id="rect1072"
+ style="opacity:0.29800002;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1.11057007" />
+ <text
+ inkscape:label="code"
+ transform="scale(0.57360572,1.7433578)"
+ id="text1076"
+ y="23.059681"
+ x="1433.04"
+ style="font-style:normal;font-weight:normal;font-size:9.29032898px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.87096828px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.87096828px"
+ id="tspan1078"
+ y="23.059681"
+ x="1433.04"
+ sodipodi:role="line"> <img xmlns="http://www.w3.org/1999/xhtml" id="img" src="https://thumbs.gfycat.com/ImpoliteSoupyKakapo-size_restricted.gif" width="100%" height="80%" /></tspan><tspan
+ style="stroke-width:0.87096828px"
+ id="tspan1080"
+ y="34.672592"
+ x="1433.04"
+ sodipodi:role="line"> <a xmlns="http://www.w3.org/1999/xhtml" href='www.gmail.com'>Gmail</a></tspan><tspan
+ style="stroke-width:0.87096828px"
+ id="tspan1082"
+ y="46.285503"
+ x="1433.04"
+ sodipodi:role="line"> <p xmlns="http://www.w3.org/1999/xhtml">Koj kurac to ne dela</p></tspan><tspan
+ style="stroke-width:0.87096828px"
+ id="tspan1084"
+ y="57.898415"
+ x="1433.04"
+ sodipodi:role="line" /></text>
+ </g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_widgets/beremiz.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BeremizRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" URI_location="PYRO://127.0.0.1:61284">
+ <TargetType/>
+ <Libraries Enable_SVGHMI_Library="true"/>
+</BeremizRoot>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_widgets/plc.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,922 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns:ns1="http://www.plcopen.org/xml/tc6_0201" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
+ <fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2019-08-06T14:23:42"/>
+ <contentHeader name="Unnamed" modificationDateTime="2020-12-01T09:52:25">
+ <coordinateInfo>
+ <fbd>
+ <scaling x="5" y="5"/>
+ </fbd>
+ <ld>
+ <scaling x="0" y="0"/>
+ </ld>
+ <sfc>
+ <scaling x="0" y="0"/>
+ </sfc>
+ </coordinateInfo>
+ </contentHeader>
+ <types>
+ <dataTypes/>
+ <pous>
+ <pou name="MainStuff" pouType="program">
+ <interface>
+ <localVars>
+ <variable name="TargetPressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="selection">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="Pump0">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump1">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump2">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump3">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump4">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump5">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump6">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ <variable name="Pump7">
+ <type>
+ <derived name="PumpControl"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <block localId="4" typeName="PumpControl" instanceName="Pump0" executionOrderId="0" height="40" width="127">
+ <position x="595" y="50"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="445" y="65"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="1" typeName="PumpControl" instanceName="Pump1" executionOrderId="0" height="40" width="127">
+ <position x="595" y="180"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="210"/>
+ <position x="582" y="210"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="2" typeName="PumpControl" instanceName="Pump2" executionOrderId="0" height="40" width="127">
+ <position x="595" y="110"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="140"/>
+ <position x="582" y="140"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="3" typeName="PumpControl" instanceName="Pump3" executionOrderId="0" height="40" width="127">
+ <position x="595" y="245"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="275"/>
+ <position x="582" y="275"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="6" typeName="PumpControl" instanceName="Pump4" executionOrderId="0" height="40" width="127">
+ <position x="595" y="315"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="345"/>
+ <position x="582" y="345"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="7" typeName="PumpControl" instanceName="Pump5" executionOrderId="0" height="40" width="127">
+ <position x="595" y="395"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="425"/>
+ <position x="582" y="425"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="8" typeName="PumpControl" instanceName="Pump6" executionOrderId="0" height="40" width="127">
+ <position x="595" y="475"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="505"/>
+ <position x="582" y="505"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ <block localId="9" typeName="PumpControl" instanceName="Pump7" executionOrderId="0" height="40" width="127">
+ <position x="595" y="545"/>
+ <inputVariables>
+ <variable formalParameter="TargetPressure">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="595" y="575"/>
+ <position x="582" y="575"/>
+ <position x="582" y="80"/>
+ <position x="570" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables/>
+ </block>
+ </FBD>
+ </body>
+ </pou>
+ <pou name="PumpControl" pouType="functionBlock">
+ <interface>
+ <localVars>
+ <variable name="Pump">
+ <type>
+ <derived name="HMI_NODE"/>
+ </type>
+ </variable>
+ <variable name="Pressure">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ </localVars>
+ <inputVars>
+ <variable name="TargetPressure">
+ <type>
+ <INT/>
+ </type>
+ </variable>
+ </inputVars>
+ <localVars>
+ <variable name="Sloth">
+ <type>
+ <derived name="HMI_INT"/>
+ </type>
+ </variable>
+ <variable name="boolout">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ </variable>
+ <variable name="boolin">
+ <type>
+ <derived name="HMI_BOOL"/>
+ </type>
+ <initialValue>
+ <simpleValue value="True"/>
+ </initialValue>
+ </variable>
+ <variable name="strout">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ </variable>
+ <variable name="strin">
+ <type>
+ <derived name="HMI_STRING"/>
+ </type>
+ <initialValue>
+ <simpleValue value="blup"/>
+ </initialValue>
+ </variable>
+ <variable name="floating">
+ <type>
+ <derived name="HMI_REAL"/>
+ </type>
+ </variable>
+ </localVars>
+ </interface>
+ <body>
+ <FBD>
+ <inVariable localId="5" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="150" y="100"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <inOutVariable localId="4" executionOrderId="0" height="30" width="60" negatedOut="false" negatedIn="false">
+ <position x="510" y="80"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="6" formalParameter="OUT">
+ <position x="510" y="95"/>
+ <position x="470" y="95"/>
+ </connection>
+ </connectionPointIn>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inOutVariable>
+ <block localId="6" typeName="ADD" executionOrderId="0" height="60" width="65">
+ <position x="405" y="65"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="4">
+ <position x="405" y="95"/>
+ <position x="385" y="95"/>
+ <position x="385" y="50"/>
+ <position x="580" y="50"/>
+ <position x="580" y="95"/>
+ <position x="570" y="95"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="405" y="115"/>
+ <position x="360" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="1" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="150" y="135"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="7" typeName="SUB" executionOrderId="0" height="60" width="65">
+ <position x="295" y="85"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="5">
+ <position x="295" y="115"/>
+ <position x="275" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="1">
+ <position x="295" y="135"/>
+ <position x="285" y="135"/>
+ <position x="285" y="150"/>
+ <position x="225" y="150"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="2" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="190"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <outVariable localId="3" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="435" y="205"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="8" formalParameter="OUT">
+ <position x="435" y="220"/>
+ <position x="410" y="220"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Pressure</expression>
+ </outVariable>
+ <block localId="8" typeName="DIV" executionOrderId="0" height="60" width="65">
+ <position x="345" y="190"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="2">
+ <position x="345" y="220"/>
+ <position x="335" y="220"/>
+ <position x="335" y="205"/>
+ <position x="300" y="205"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="9">
+ <position x="345" y="240"/>
+ <position x="300" y="240"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="9" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="240" y="225"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>100</expression>
+ </inVariable>
+ <block localId="10" typeName="CONCAT" executionOrderId="0" height="60" width="65">
+ <position x="360" y="345"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="13" formalParameter="OUT">
+ <position x="360" y="375"/>
+ <position x="330" y="375"/>
+ <position x="330" y="332"/>
+ <position x="440" y="332"/>
+ <position x="440" y="300"/>
+ <position x="430" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="14">
+ <position x="360" y="395"/>
+ <position x="322" y="395"/>
+ <position x="322" y="400"/>
+ <position x="285" y="400"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <outVariable localId="11" executionOrderId="0" height="30" width="58" negated="false">
+ <position x="495" y="355"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="10" formalParameter="OUT">
+ <position x="495" y="370"/>
+ <position x="450" y="370"/>
+ <position x="450" y="375"/>
+ <position x="425" y="375"/>
+ </connection>
+ </connectionPointIn>
+ <expression>strout</expression>
+ </outVariable>
+ <inVariable localId="12" executionOrderId="0" height="30" width="125" negated="false">
+ <position x="145" y="285"/>
+ <connectionPointOut>
+ <relPosition x="125" y="15"/>
+ </connectionPointOut>
+ <expression>TargetPressure</expression>
+ </inVariable>
+ <block localId="13" typeName="INT_TO_STRING" executionOrderId="0" height="40" width="115">
+ <position x="315" y="270"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="12">
+ <position x="315" y="300"/>
+ <position x="270" y="300"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="115" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="14" executionOrderId="0" height="30" width="50" negated="false">
+ <position x="235" y="385"/>
+ <connectionPointOut>
+ <relPosition x="50" y="15"/>
+ </connectionPointOut>
+ <expression>strin</expression>
+ </inVariable>
+ <inVariable localId="15" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="690" y="210"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>boolin</expression>
+ </inVariable>
+ <outVariable localId="16" executionOrderId="0" height="30" width="70" negated="false">
+ <position x="915" y="240"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="17" formalParameter="OUT">
+ <position x="915" y="255"/>
+ <position x="880" y="255"/>
+ </connection>
+ </connectionPointIn>
+ <expression>boolout</expression>
+ </outVariable>
+ <block localId="17" typeName="AND" executionOrderId="0" height="60" width="65">
+ <position x="815" y="225"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="15">
+ <position x="815" y="255"/>
+ <position x="762" y="255"/>
+ <position x="762" y="225"/>
+ <position x="750" y="225"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="21" formalParameter="OUT">
+ <position x="815" y="275"/>
+ <position x="750" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="18" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="455" y="260"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Pressure</expression>
+ </inVariable>
+ <block localId="19" typeName="MOD" executionOrderId="0" height="60" width="65">
+ <position x="585" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="18">
+ <position x="585" y="275"/>
+ <position x="530" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="20">
+ <position x="585" y="295"/>
+ <position x="555" y="295"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="20" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="535" y="280"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>2</expression>
+ </inVariable>
+ <block localId="21" typeName="EQ" executionOrderId="0" height="60" width="65">
+ <position x="685" y="245"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="19" formalParameter="OUT">
+ <position x="685" y="275"/>
+ <position x="650" y="275"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="22">
+ <position x="685" y="295"/>
+ <position x="670" y="295"/>
+ <position x="670" y="330"/>
+ <position x="650" y="330"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="22" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="630" y="315"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <outVariable localId="23" executionOrderId="0" height="25" width="75" negated="false">
+ <position x="935" y="120"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="25" formalParameter="OUT">
+ <position x="935" y="130"/>
+ <position x="922" y="130"/>
+ <position x="922" y="110"/>
+ <position x="910" y="110"/>
+ </connection>
+ </connectionPointIn>
+ <expression>floating</expression>
+ </outVariable>
+ <inVariable localId="24" executionOrderId="0" height="30" width="60" negated="false">
+ <position x="615" y="65"/>
+ <connectionPointOut>
+ <relPosition x="60" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <block localId="25" typeName="DIV" executionOrderId="0" height="60" width="65">
+ <position x="845" y="80"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="27" formalParameter="OUT">
+ <position x="845" y="110"/>
+ <position x="822" y="110"/>
+ <position x="822" y="80"/>
+ <position x="800" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="26">
+ <position x="845" y="130"/>
+ <position x="810" y="130"/>
+ <position x="810" y="135"/>
+ <position x="800" y="135"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="26" executionOrderId="0" height="30" width="90" negated="false">
+ <position x="710" y="120"/>
+ <connectionPointOut>
+ <relPosition x="90" y="15"/>
+ </connectionPointOut>
+ <expression>REAL#100.0</expression>
+ </inVariable>
+ <block localId="27" typeName="INT_TO_REAL" executionOrderId="0" height="40" width="100">
+ <position x="700" y="50"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="24">
+ <position x="700" y="80"/>
+ <position x="675" y="80"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="100" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <block localId="28" typeName="EQ" executionOrderId="0" height="60" width="65">
+ <position x="410" y="430"/>
+ <inputVariables>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="36">
+ <position x="418" y="460"/>
+ <position x="401" y="460"/>
+ <position x="401" y="435"/>
+ <position x="380" y="435"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN2">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="29">
+ <position x="410" y="480"/>
+ <position x="367" y="480"/>
+ <position x="367" y="475"/>
+ <position x="325" y="475"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="29" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="305" y="460"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <inVariable localId="32" executionOrderId="0" height="30" width="20" negated="false">
+ <position x="765" y="505"/>
+ <connectionPointOut>
+ <relPosition x="20" y="15"/>
+ </connectionPointOut>
+ <expression>0</expression>
+ </inVariable>
+ <outVariable localId="31" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="925" y="460"/>
+ <connectionPointIn>
+ <relPosition x="0" y="15"/>
+ <connection refLocalId="33" formalParameter="OUT">
+ <position x="925" y="475"/>
+ <position x="890" y="475"/>
+ </connection>
+ </connectionPointIn>
+ <expression>Sloth</expression>
+ </outVariable>
+ <block localId="33" typeName="MUX" executionOrderId="0" height="80" width="65">
+ <position x="825" y="445"/>
+ <inputVariables>
+ <variable formalParameter="K">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="34" formalParameter="OUT">
+ <position x="825" y="475"/>
+ <position x="685" y="475"/>
+ <position x="685" y="465"/>
+ <position x="675" y="465"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN0">
+ <connectionPointIn>
+ <relPosition x="0" y="50"/>
+ <connection refLocalId="30">
+ <position x="825" y="495"/>
+ <position x="800" y="495"/>
+ <position x="800" y="485"/>
+ <position x="790" y="485"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ <variable formalParameter="IN1">
+ <connectionPointIn>
+ <relPosition x="0" y="70"/>
+ <connection refLocalId="32">
+ <position x="825" y="515"/>
+ <position x="795" y="515"/>
+ <position x="795" y="520"/>
+ <position x="785" y="520"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="65" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <inVariable localId="30" executionOrderId="0" height="30" width="75" negated="false">
+ <position x="715" y="470"/>
+ <connectionPointOut>
+ <relPosition x="75" y="15"/>
+ </connectionPointOut>
+ <expression>Sloth</expression>
+ </inVariable>
+ <block localId="34" typeName="BOOL_TO_SINT" executionOrderId="0" height="40" width="110">
+ <position x="565" y="435"/>
+ <inputVariables>
+ <variable formalParameter="IN">
+ <connectionPointIn>
+ <relPosition x="0" y="30"/>
+ <connection refLocalId="28" formalParameter="OUT">
+ <position x="565" y="465"/>
+ <position x="520" y="465"/>
+ <position x="520" y="460"/>
+ <position x="475" y="460"/>
+ </connection>
+ </connectionPointIn>
+ </variable>
+ </inputVariables>
+ <inOutVariables/>
+ <outputVariables>
+ <variable formalParameter="OUT">
+ <connectionPointOut>
+ <relPosition x="110" y="30"/>
+ </connectionPointOut>
+ </variable>
+ </outputVariables>
+ </block>
+ <connector name="Connection0" localId="35" height="25" width="125">
+ <position x="400" y="140"/>
+ <connectionPointIn>
+ <relPosition x="0" y="10"/>
+ <connection refLocalId="7" formalParameter="OUT">
+ <position x="400" y="150"/>
+ <position x="375" y="150"/>
+ <position x="375" y="115"/>
+ <position x="360" y="115"/>
+ </connection>
+ </connectionPointIn>
+ </connector>
+ <continuation name="Connection0" localId="36" height="25" width="125">
+ <position x="255" y="425"/>
+ <connectionPointOut>
+ <relPosition x="125" y="10"/>
+ </connectionPointOut>
+ </continuation>
+ </FBD>
+ </body>
+ </pou>
+ </pous>
+ </types>
+ <instances>
+ <configurations>
+ <configuration name="config">
+ <resource name="resource1">
+ <task name="task0" priority="0" interval="T#20ms">
+ <pouInstance name="instance0" typeName="MainStuff"/>
+ </task>
+ </resource>
+ </configuration>
+ </configurations>
+ </instances>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_widgets/py_ext_0@py_ext/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="1" Name="py_ext_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_widgets/py_ext_0@py_ext/pyfile.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,93 @@
+<?xml version='1.0' encoding='utf-8'?>
+<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <variables>
+ <variable name="AlarmNotify" type="HMI_INT"/>
+ <variable name="SendAlarm" type="HMI_INT" onchange="TriggerAlarm"/>
+ <variable name="AlarmText" type="HMI_STRING" initial="'POS'"/>
+ <variable name="AlarmStatus" type="HMI_STRING" initial="'alarm'"/>
+ </variables>
+ <globals>
+ <xhtml:p><![CDATA[
+from twisted.web.resource import Resource
+import json, time, random, collections
+
+Alarms = []
+AlarmIndex = {}
+lastid = 0
+
+def TriggerAlarm(changed_var_name):
+ global Alarms, lastid
+ new_entry = [time.time(), PLCGlobals.AlarmText, PLCGlobals.AlarmStatus, lastid]
+ Alarms.append(new_entry)
+ AlarmIndex[lastid] = new_entry
+ lastid = lastid + 1
+ PLCGlobals.AlarmNotify = random.randint(0, 4294967296)
+
+class AlarmJsonResource(Resource):
+ def render_GET(self, request):
+ return ''
+
+ def render_POST(self, request):
+ newstr = request.content.getvalue()
+ newdata = json.loads(newstr)
+ args = newdata[u'args']
+ range_feedback = newdata[u'range']
+ slider_position = newdata[u'position']
+ visible = newdata[u'visible']
+ extra = newdata[u'extra']
+ options = newdata[u'options']
+
+ if len(options) == 2 :
+ action, alarmid = options
+ if action == "onClick[acknowledge]":
+ AlarmIndex[int(alarmid)][2] = "ack"
+
+ answer = self.renderTable(range_feedback, slider_position, visible, extra)
+ janswer = json.dumps(answer)
+ return janswer
+
+ def renderTable(self, old_range, old_position, visible, extra):
+ if len(extra) > 0 and extra[0] != "":
+ fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1]
+ else:
+ fAlarms = Alarms
+ new_range = len(fAlarms)
+ delta = new_range - visible
+ new_position = 0 if delta <= 0 else delta if old_position > delta else old_position
+ new_visible = new_range if delta <= 0 else visible
+
+ visible_alarms = []
+ for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]:
+ visible_alarms.append({
+ "time": time.ctime(ts),
+ "text": text, # TODO translate text
+ "status": status,
+ "alarmid": alarmid
+ })
+
+ return new_range, new_position, visible_alarms
+
+
+]]></xhtml:p>
+ </globals>
+ <init>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </init>
+ <cleanup>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </cleanup>
+ <start>
+ <xhtml:p><![CDATA[
+
+svghmi_root.putChild("alarms", AlarmJsonResource())
+
+
+]]></xhtml:p>
+ </start>
+ <stop>
+ <xhtml:p><![CDATA[
+]]></xhtml:p>
+ </stop>
+</PyFile>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_widgets/svghmi_0@svghmi/baseconfnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<BaseParams xmlns:xsd="http://www.w3.org/2001/XMLSchema" IEC_Channel="0" Name="svghmi_0"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_widgets/svghmi_0@svghmi/confnode.xml Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SVGHMI xmlns:xsd="http://www.w3.org/2001/XMLSchema" OnWatchdog="echo Watchdog for {name} !" OnStart="chromium http://127.0.0.1:{port}/{name}" OnStop="echo Closing {name}" WatchdogInitial="10" WatchdogInterval="5"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/svghmi_widgets/svghmi_0@svghmi/svghmi.svg Thu Sep 02 21:36:29 2021 +0200
@@ -0,0 +1,13525 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ 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"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="svghmi.svg"
+ id="hmi0"
+ version="1.1"
+ viewBox="0 0 1280 720"
+ height="720"
+ width="1280">
+ <metadata
+ id="metadata4542">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <linearGradient
+ id="linearGradient48067"
+ inkscape:collect="always">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop48065" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1"
+ id="stop48063" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="marker47537"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#464646;fill-opacity:1;fill-rule:evenodd;stroke:#464646;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path47535" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker35048"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path35046" />
+ </marker>
+ <linearGradient
+ id="linearGradient34303"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop34301" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="marker33393"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path33391" />
+ </marker>
+ <pattern
+ inkscape:collect="always"
+ xlink:href="#pattern33040"
+ id="pattern33045"
+ patternTransform="matrix(0.3402725,0,0,0.3402725,3541.9168,2783.1968)" />
+ <pattern
+ inkscape:collect="always"
+ xlink:href="#pattern32315"
+ id="pattern33036"
+ patternTransform="matrix(0.3402725,0,0,0.3402725,2860.2482,2779.1427)" />
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker30413"
+ style="overflow:visible">
+ <path
+ id="path30411"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker27950"
+ style="overflow:visible">
+ <path
+ id="path27948"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker26128"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path26126" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker25626"
+ style="overflow:visible"
+ inkscape:collect="always">
+ <path
+ id="path25624"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker25174"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path25172" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker22786"
+ style="overflow:visible"
+ inkscape:collect="always">
+ <path
+ id="path22784"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker21366"
+ style="overflow:visible">
+ <path
+ id="path21364"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker20902"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path20900" />
+ </marker>
+ <linearGradient
+ id="linearGradient20537"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop20535" />
+ </linearGradient>
+ <marker
+ style="overflow:visible"
+ id="marker15089"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path15087" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker14681"
+ style="overflow:visible"
+ inkscape:collect="always">
+ <path
+ id="path14679"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker14281"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path14279" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13869"
+ style="overflow:visible"
+ inkscape:collect="always">
+ <path
+ id="path13867"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13481"
+ style="overflow:visible">
+ <path
+ id="path13479"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker13093"
+ style="overflow:visible">
+ <path
+ id="path13091"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker12717"
+ style="overflow:visible"
+ inkscape:collect="always">
+ <path
+ id="path12715"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker30978"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path30976"
+ 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:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker30668"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path30666"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ transform="scale(0.4) translate(7.4, 1)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker30310"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;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="path30308" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker30012"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DotM"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4) translate(7.4, 1)"
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ id="path30010" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker29562"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;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="path29560" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker29276"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path29274"
+ 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:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker28710"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;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="path28708" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker28436"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path28434"
+ 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:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker27764"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;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="path27762" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker27514"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DotM">
+ <path
+ transform="scale(0.4) translate(7.4, 1)"
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ id="path27512" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="DotM"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path8269"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ style="fill-rule:evenodd;stroke:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ transform="scale(0.4) translate(7.4, 1)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker26099"
+ style="overflow:visible;"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path26097"
+ 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:#ff6600;stroke-width:1pt;stroke-opacity:1;fill:#ff6600;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker25879"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="SquareL">
+ <path
+ transform="scale(0.8)"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ id="path25877"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker25117"
+ style="overflow:visible;"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path25115"
+ 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:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker24867"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path8226"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#3ee800;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(1,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker23223"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,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="path23221" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker22799"
+ style="overflow:visible;"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ id="path22797"
+ 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.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker22543"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="scale(1.1) rotate(180) translate(1,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ id="path22541" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker21870"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path21868"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker21674"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="SquareL">
+ <path
+ transform="scale(0.8)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ id="path21672"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="SquareL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker20566"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path20564"
+ d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker20382"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path20380"
+ 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="SquareL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="SquareL"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path8275"
+ d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="marker19998"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path19996"
+ 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:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker19820"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;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="path19818" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19672"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;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="path19670" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19488"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path19486" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19352"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-opacity:1;fill:none;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path19350" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible;"
+ id="marker17321"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="scale(0.4) rotate(180) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;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="path17319" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker17197"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;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="path17195" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker16921"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path16919" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker16821"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="DiamondMend">
+ <path
+ transform="scale(0.4) translate(-6.5,0)"
+ style="fill-rule:evenodd;stroke:#3ee800;stroke-width:1pt;stroke-opacity:1;fill:#3ee800;fill-opacity:1"
+ d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z "
+ id="path16819" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path8205"
+ 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:#ff3000;stroke-width:1pt;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path8223"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff3000;stroke-opacity:1;fill:#ff3000;fill-opacity:1"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) translate(1,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker10905"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path10903"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;"
+ inkscape:isstock="true">
+ <path
+ id="path8208"
+ 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="marker1971"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1969"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1536"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1534"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker1656"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1654"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="1454.3019 : 921.18786 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="2782.3019 : 507.18786 : 1"
+ inkscape:persp3d-origin="2094.3019 : 801.18786 : 1"
+ id="perspective1372" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="1424.3019 : 863.18786 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="2800.3019 : 891.18786 : 1"
+ inkscape:persp3d-origin="2064.3019 : 743.18786 : 1"
+ id="perspective1370" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="73.983557 : 377.52255 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1401.9836 : -36.477445 : 1"
+ inkscape:persp3d-origin="713.98356 : 257.52255 : 1"
+ id="perspective503" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="43.983597 : 319.52255 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1419.9836 : 347.52255 : 1"
+ inkscape:persp3d-origin="683.98356 : 199.52255 : 1"
+ id="perspective445" />
+ <inkscape:tag
+ id="Set 1"
+ inkscape:label="HMI:AccessList@Admin"
+ inkscape:expanded="true">
+ <inkscape:tagref
+ xlink:href="#text995"
+ id="tagref192" />
+ <inkscape:tagref
+ xlink:href="#g991"
+ id="tagref194" />
+ </inkscape:tag>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient962">
+ <stop
+ style="stop-color:#ff3000;stop-opacity:1;"
+ offset="0"
+ id="stop958" />
+ <stop
+ style="stop-color:#0022ff;stop-opacity:1"
+ offset="1"
+ id="stop960" />
+ </linearGradient>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker926"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lend">
+ <path
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ 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"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path924"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <inkscape:tag
+ id="Set 3"
+ inkscape:expanded="true"
+ inkscape:label="HMI:Translate">
+ <inkscape:tagref
+ xlink:href="#text831"
+ id="tagref1085" />
+ <inkscape:tagref
+ xlink:href="#text827"
+ id="tagref1087" />
+ <inkscape:tagref
+ xlink:href="#text4497"
+ id="tagref1089" />
+ <inkscape:tagref
+ xlink:href="#home_jmp"
+ id="tagref1091" />
+ <inkscape:tagref
+ xlink:href="#setting_jmp"
+ id="tagref1093" />
+ </inkscape:tag>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path895"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ 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>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient962"
+ id="linearGradient964"
+ x1="113.38908"
+ y1="-62.210247"
+ x2="113.38908"
+ y2="4.0725975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5,0,0,0.5,73.144796,-1.4471993)" />
+ <linearGradient
+ id="linearGradient4428"
+ y2="315.91"
+ gradientUnits="userSpaceOnUse"
+ x2="486.78"
+ y1="279.85001"
+ x1="452.26001"
+ inkscape:collect="always"
+ gradientTransform="matrix(2.1333334,0,0,2.1333334,-3540.3373,-2618.8351)">
+ <stop
+ id="stop3842"
+ style="stop-color:#5e5e5e"
+ offset="0" />
+ <stop
+ id="stop3844"
+ style="stop-color:#5e5e5e;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3919"
+ inkscape:collect="always">
+ <stop
+ id="stop3921"
+ style="stop-color:#ffffff"
+ offset="0" />
+ <stop
+ id="stop3923"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3862">
+ <stop
+ id="stop3864"
+ style="stop-color:#414141"
+ offset="0" />
+ <stop
+ id="stop3868"
+ style="stop-color:#41433f"
+ offset=".15789" />
+ <stop
+ id="stop3866"
+ style="stop-color:#000000"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ id="radialGradient4436"
+ gradientUnits="userSpaceOnUse"
+ cy="336.42001"
+ cx="491.09"
+ gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)"
+ r="42.073002"
+ inkscape:collect="always">
+ <stop
+ id="stop3894"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop3898"
+ style="stop-color:#ccd21b"
+ offset=".5" />
+ <stop
+ id="stop3896"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ id="radialGradient4440"
+ gradientUnits="userSpaceOnUse"
+ cy="325.29001"
+ cx="477.91"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ r="26.870001"
+ inkscape:collect="always">
+ <stop
+ id="stop3876"
+ style="stop-color:#333333"
+ offset="0" />
+ <stop
+ id="stop3878"
+ style="stop-color:#333333;stop-opacity:0"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4442"
+ y2="364.53"
+ gradientUnits="userSpaceOnUse"
+ x2="510.54001"
+ y1="300.89001"
+ x1="460.44"
+ inkscape:collect="always"
+ gradientTransform="matrix(2.1333334,0,0,2.1333334,1460.1239,1204.5844)">
+ <stop
+ id="stop3911"
+ style="stop-color:#ffffff"
+ offset="0" />
+ <stop
+ id="stop3913"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ id="radialGradient4401"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="271.12"
+ cx="488.75"
+ gradientTransform="matrix(1.2669,-2.1673e-7,1.919e-7,1.0468,-130.57,-2.7383)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient4403"
+ y2="274.60001"
+ xlink:href="#linearGradient3994"
+ gradientUnits="userSpaceOnUse"
+ x2="461.51001"
+ y1="378.48001"
+ x1="460.51001"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3994">
+ <stop
+ id="stop3996"
+ style="stop-color:#626262"
+ offset="0" />
+ <stop
+ id="stop4000"
+ style="stop-color:#919191"
+ offset=".74085" />
+ <stop
+ id="stop3998"
+ style="stop-color:#ceced2"
+ offset="1" />
+ </linearGradient>
+ <filter
+ id="filter4030"
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur4032"
+ stdDeviation="3.9987611"
+ inkscape:collect="always" />
+ </filter>
+ <radialGradient
+ id="radialGradient4405"
+ gradientUnits="userSpaceOnUse"
+ cy="276.20999"
+ cx="489.59"
+ gradientTransform="matrix(1.8965,-0.037037,0.020439,1.0466,-444.48,15.45)"
+ r="57.629002"
+ inkscape:collect="always">
+ <stop
+ id="stop4044"
+ style="stop-color:#414141"
+ offset="0" />
+ <stop
+ id="stop4046"
+ style="stop-color:#41433f"
+ offset=".17350" />
+ <stop
+ id="stop4048"
+ style="stop-color:#000000"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4407"
+ y2="274.60001"
+ gradientUnits="userSpaceOnUse"
+ x2="461.51001"
+ y1="378.48001"
+ x1="460.51001"
+ inkscape:collect="always">
+ <stop
+ id="stop4036"
+ style="stop-color:#1b1b1d"
+ offset="0" />
+ <stop
+ id="stop4038"
+ style="stop-color:#262828"
+ offset=".54558" />
+ <stop
+ id="stop4040"
+ style="stop-color:#ceced2"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4108">
+ <stop
+ id="stop4110"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop4112"
+ style="stop-color:#ccd21b"
+ offset="0.28542241" />
+ <stop
+ id="stop4114"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ id="radialGradient4372"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="271.12"
+ cx="488.75"
+ gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient4374"
+ y2="274.60001"
+ xlink:href="#linearGradient3994"
+ gradientUnits="userSpaceOnUse"
+ x2="461.51001"
+ gradientTransform="matrix(-0.93252,0,0,-0.93252,950.38,864.32)"
+ y1="378.48001"
+ x1="460.51001"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient4376"
+ y2="603.70001"
+ xlink:href="#linearGradient4292"
+ gradientUnits="userSpaceOnUse"
+ x2="505.57999"
+ y1="526.63"
+ x1="504.87"
+ inkscape:collect="always"
+ gradientTransform="matrix(2.1333334,0,0,2.1333334,893.33419,706.77548)" />
+ <linearGradient
+ id="linearGradient4292">
+ <stop
+ id="stop4294"
+ style="stop-color:#666666"
+ offset="0" />
+ <stop
+ id="stop4296"
+ style="stop-color:#c3c3c5"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4378"
+ y2="585.34003"
+ xlink:href="#linearGradient3919"
+ gradientUnits="userSpaceOnUse"
+ x2="493.29999"
+ y1="596.53003"
+ x1="486.85001"
+ inkscape:collect="always"
+ gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" />
+ <radialGradient
+ id="radialGradient9759"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="271.12"
+ cx="488.75"
+ gradientTransform="matrix(-1.1814,2.021e-7,-1.7895e-7,-0.97615,1072.1,866.87)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4292"
+ id="linearGradient10071"
+ gradientUnits="userSpaceOnUse"
+ x1="504.87"
+ y1="526.63"
+ x2="505.57999"
+ y2="603.70001"
+ gradientTransform="matrix(3.5063468,0,0,3.5063468,198.4947,-3883.2624)" />
+ <marker
+ inkscape:stockid="DiamondMend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="DiamondMend-9"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8305-2"
+ d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,-2.6,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="DiamondMend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker16719"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path16717"
+ d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,-2.6,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mstart-2"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8211-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,4,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-7"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8214-5"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff3000;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <filter
+ id="filter5708"
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur5710"
+ stdDeviation="28.132071"
+ inkscape:collect="always" />
+ </filter>
+ <linearGradient
+ id="linearGradient7109"
+ y2="276.98999"
+ xlink:href="#linearGradient5712"
+ gradientUnits="userSpaceOnUse"
+ x2="298.10999"
+ gradientTransform="translate(1979.8,858.86)"
+ y1="-906.90997"
+ x1="-914.59003"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient5712">
+ <stop
+ id="stop5714"
+ style="stop-color:#cccccc"
+ offset="0" />
+ <stop
+ id="stop5716"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset=".12299" />
+ <stop
+ id="stop5718"
+ style="stop-color:#999999;stop-opacity:.63813"
+ offset="1" />
+ </linearGradient>
+ <marker
+ inkscape:stockid="SquareL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker20566-2"
+ style="overflow:visible"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ inkscape:connector-curvature="0"
+ id="path20564-8"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker23223-1"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path23221-2" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="DotM-2"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8269-0"
+ d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.4,0,0,0.4,2.96,0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker26099-6"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path26097-1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff6600;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker19820-5"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path19818-4" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker25117-7"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path25115-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#3ee800;fill-opacity:1;fill-rule:evenodd;stroke:#3ee800;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436"
+ id="linearGradient31386"
+ x1="1094.1289"
+ y1="489.64468"
+ x2="1008.9722"
+ y2="209.67311"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ style="color-interpolation-filters:sRGB"
+ id="filter31680"
+ x="-0.066705994"
+ width="1.133412"
+ y="-0.075436398"
+ height="1.1508728">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="10.428525"
+ id="feGaussianBlur31682" />
+ </filter>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-3"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8208-5"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <radialGradient
+ id="radialGradient4432-9"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="331.47"
+ cx="487.54999"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-7"
+ id="radialGradient2918-3"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient4436-7"
+ gradientUnits="userSpaceOnUse"
+ cy="336.42001"
+ cx="491.09"
+ gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)"
+ r="42.073002"
+ inkscape:collect="always">
+ <stop
+ id="stop3894-5"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop3898-9"
+ style="stop-color:#ccd21b"
+ offset=".5" />
+ <stop
+ id="stop3896-2"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ id="radialGradient4438-2"
+ xlink:href="#linearGradient3919"
+ gradientUnits="userSpaceOnUse"
+ cy="379.03"
+ cx="520.47998"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <radialGradient
+ id="radialGradient5322"
+ xlink:href="#linearGradient3862"
+ gradientUnits="userSpaceOnUse"
+ cy="331.47"
+ cx="487.54999"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-7"
+ id="radialGradient5340"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="radialGradient5350"
+ xlink:href="#linearGradient3919"
+ gradientUnits="userSpaceOnUse"
+ cy="379.03"
+ cx="520.47998"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ r="57.629002"
+ inkscape:collect="always" />
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-3-9"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path8208-5-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#fffffc;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3862"
+ id="radialGradient8154-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ cx="487.54999"
+ cy="331.47"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-5"
+ id="radialGradient8158-1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134" />
+ <radialGradient
+ id="radialGradient4436-5"
+ gradientUnits="userSpaceOnUse"
+ cy="336.42001"
+ cx="491.09"
+ gradientTransform="matrix(1.1429,0,0,1.1429,-73.994,-53.898)"
+ r="42.073002"
+ inkscape:collect="always">
+ <stop
+ id="stop3894-54"
+ style="stop-color:#ddcf1b"
+ offset="0" />
+ <stop
+ id="stop3898-7"
+ style="stop-color:#ccd21b"
+ offset=".5" />
+ <stop
+ id="stop3896-6"
+ style="stop-color:#2bb733"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3919"
+ id="radialGradient8160-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ cx="520.47998"
+ cy="379.03"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4440-9"
+ id="radialGradient8162-6"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ cx="477.91"
+ cy="325.29001"
+ r="26.870001" />
+ <radialGradient
+ id="radialGradient4440-9"
+ gradientUnits="userSpaceOnUse"
+ cy="325.29001"
+ cx="477.91"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ r="26.870001"
+ inkscape:collect="always">
+ <stop
+ id="stop3876-3"
+ style="stop-color:#333333"
+ offset="0" />
+ <stop
+ id="stop3878-7"
+ style="stop-color:#333333;stop-opacity:0"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3862"
+ id="radialGradient8996"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ cx="487.54999"
+ cy="331.47"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436-5"
+ id="radialGradient9014"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3919"
+ id="radialGradient9024"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ cx="520.47998"
+ cy="379.03"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4440-9"
+ id="radialGradient9032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ cx="477.91"
+ cy="325.29001"
+ r="26.870001" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436"
+ id="linearGradient10485"
+ gradientUnits="userSpaceOnUse"
+ x1="1094.1289"
+ y1="489.64468"
+ x2="1008.9722"
+ y2="209.67311" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4428"
+ id="linearGradient10487"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.1333334,0,0,2.1333334,-3540.3373,-2618.8351)"
+ x1="452.26001"
+ y1="279.85001"
+ x2="486.78"
+ y2="315.91" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3919"
+ id="linearGradient10489"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.1333334,0,0,2.1333334,1460.1239,1202.4511)"
+ x1="462.14999"
+ y1="275.60999"
+ x2="493.85001"
+ y2="326.51999" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3862"
+ id="radialGradient10491"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7799744,-9.2806384e-8,9.900727e-8,1.6752735,-3368.2885,-2467.2504)"
+ cx="487.54999"
+ cy="331.47"
+ r="57.629002" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3919"
+ id="linearGradient10493"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8846721,0,0,1.9108481,-3418.46,-2542.9311)"
+ x1="452.26001"
+ y1="279.85001"
+ x2="486.78"
+ y2="315.91" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4436"
+ id="radialGradient10495"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.93659677,-0.44854394,0.32346083,0.67732006,-26.162515,540.12207)"
+ cx="1043.1659"
+ cy="285.35944"
+ fx="1043.1659"
+ fy="285.35944"
+ r="192.22134" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3919"
+ id="radialGradient10497"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.5227749,-1.8142535,0.87409912,1.2348725,-4090.1248,-1355.5321)"
+ cx="520.47998"
+ cy="379.03"
+ r="57.629002" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient4440"
+ id="radialGradient10499"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.2310528,-3.8736755,1.0272215,1.565962,-362.40903,3218.8585)"
+ cx="477.91"
+ cy="325.29001"
+ r="26.870001" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4442"
+ id="linearGradient10501"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.1333334,0,0,2.1333334,1460.1239,1204.5844)"
+ x1="460.44"
+ y1="300.89001"
+ x2="510.54001"
+ y2="364.53" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5712"
+ id="linearGradient10503"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-266.78,858.86)"
+ x1="-914.59003"
+ y1="-906.90997"
+ x2="298.10999"
+ y2="276.98999" />
+ <marker
+ style="overflow:visible"
+ id="marker1197"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1195" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1207"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1205" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1187"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1185" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1177"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1175" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1167"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1165" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1157"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ 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:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1155" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker22786-9"
+ style="overflow:visible">
+ <path
+ id="path22784-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker22786-3"
+ style="overflow:visible">
+ <path
+ id="path22784-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker22786-8"
+ style="overflow:visible">
+ <path
+ id="path22784-60"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <pattern
+ patternUnits="userSpaceOnUse"
+ width="1280"
+ height="720"
+ patternTransform="translate(-120,1560)"
+ id="pattern32315">
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(4.4804112e-6,-1560)"
+ id="use32313"
+ xlink:href="#g4278"
+ y="0"
+ x="0" />
+ </pattern>
+ <pattern
+ patternUnits="userSpaceOnUse"
+ width="1280"
+ height="720"
+ patternTransform="translate(4.5843587e-5,2340)"
+ id="pattern33040">
+ <use
+ id="use33038"
+ xlink:href="#g2432"
+ y="0"
+ x="0"
+ transform="translate(-4.5843587e-5,-2340)"
+ width="100%"
+ height="100%" />
+ </pattern>
+ <marker
+ style="overflow:visible"
+ id="marker33393-6"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path33391-4" />
+ </marker>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4108"
+ id="linearGradient35598"
+ x1="3282.1479"
+ y1="3490.5305"
+ x2="3302.1479"
+ y2="3565.5305"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4108"
+ id="linearGradient35602"
+ gradientUnits="userSpaceOnUse"
+ x1="3282.1479"
+ y1="3530.5305"
+ x2="3302.1479"
+ y2="3565.5305"
+ gradientTransform="translate(0,-246)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4108"
+ id="linearGradient35607"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,-1,0,7302.061)"
+ x1="3282.1479"
+ y1="3565.5305"
+ x2="3302.1479"
+ y2="3530.5305" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient48067"
+ id="radialGradient48061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.01927641,3.0508146,-1.339822,0.00867105,4122.7241,-10076.708)"
+ cx="4437.8638"
+ cy="432.34897"
+ fx="4437.8638"
+ fy="432.34897"
+ r="35.250397" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient48067"
+ id="radialGradient48061-9"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.02836882,4.436331,-1.9717971,0.01260898,731.53273,-19692.285)"
+ cx="4437.6318"
+ cy="434.84348"
+ fx="4437.6318"
+ fy="434.84348"
+ r="35.250397" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient48067"
+ id="radialGradient48094"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.6218841e-6,-15.394244,1.33985,-0.00103654,3136.5425,73759.406)"
+ cx="4544.9692"
+ cy="400.71506"
+ fx="4544.9692"
+ fy="400.71506"
+ r="35.250397" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:document-units="px"
+ inkscape:current-layer="hmi0"
+ showgrid="false"
+ units="px"
+ inkscape:zoom="0.29824219"
+ inkscape:cx="6031.6643"
+ inkscape:cy="-3206.0412"
+ inkscape:window-width="3840"
+ inkscape:window-height="2123"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="true"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-nodes="true">
+ <sodipodi:guide
+ position="2769.4073,-860.03335"
+ orientation="0,1"
+ id="guide6495"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="5344.8616,-2420"
+ orientation="0,1"
+ id="guide6497"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="2760,-1640"
+ orientation="0,1"
+ id="guide6501"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ </sodipodi:namedview>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g7994"
+ id="use7996"
+ transform="translate(1480,800)"
+ width="100%"
+ height="100%"
+ inkscape:label="HMI:Page:RelativePageTest@/PUMP0" />
+ <rect
+ sodipodi:insensitive="true"
+ inkscape:label="HMI:Page:Conf"
+ y="780"
+ x="0"
+ height="720"
+ width="1280"
+ id="rect1016"
+ style="color:#000000;fill:#000000" />
+ <g
+ id="g1082"
+ inkscape:label="HMI:Jump:Home"
+ transform="translate(-940,-558)">
+ <g
+ id="g1152"
+ inkscape:label="button">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z"
+ id="rect1022"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssccc" />
+ </g>
+ <g
+ id="g1149"
+ inkscape:label="text">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="1436.9814"
+ id="home_jmp"
+ inkscape:label="home_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1028"
+ x="1090.7626"
+ y="1436.9814"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;fill:#4d4d4d"
+ id="page0"
+ width="1280"
+ height="720"
+ x="0"
+ y="0"
+ inkscape:label="HMI:Page:Home" />
+ <g
+ id="g1077"
+ inkscape:label="HMI:Jump:Conf"
+ transform="matrix(0.57180538,0,0,0.57180538,-373.64055,248.51305)">
+ <g
+ id="g1159"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1020"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1156"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="setting_jmp"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan1024"
+ sodipodi:role="line">Settings</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g84"
+ inkscape:label="HMI:Input@/TARGETPRESSURE,0,100"
+ transform="matrix(0.35865594,0,0,0.35865594,22.072155,63.074421)">
+ <text
+ inkscape:label="value"
+ id="text5151"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan5149"
+ sodipodi:role="line">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path89"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="14.956363"
+ inkscape:label="-100" />
+ <path
+ inkscape:label="-10"
+ inkscape:transform-center-y="7.4781812"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path88"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect85"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ inkscape:label="+100"
+ inkscape:transform-center-y="-14.956361"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path87"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path86"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-7.4781804"
+ inkscape:label="+10" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path91"
+ sodipodi:sides="4"
+ sodipodi:cx="80.740723"
+ sodipodi:cy="165.17262"
+ sodipodi:r1="57.015106"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.77793027"
+ sodipodi:arg2="1.5633284"
+ inkscape:flatsided="true"
+ inkscape:rounded="-0.65084865"
+ inkscape:randomized="0"
+ d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z"
+ inkscape:transform-center-y="-14.956361"
+ inkscape:label="=0" />
+ </g>
+ <text
+ inkscape:label="HMI:Display@/PUMP0/PRESSURE"
+ id="text823"
+ y="141.34827"
+ x="293.33374"
+ style="font-style:normal;font-weight:normal;font-size:57.38494873px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.35865593px"
+ y="141.34827"
+ x="293.33374"
+ id="tspan821"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ id="g4523"
+ transform="matrix(2.1611542,0,0,2.1611542,142.76714,468.92423)"
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4499"
+ sodipodi:type="arc"
+ sodipodi:cx="128.02208"
+ sodipodi:cy="2.2017097"
+ sodipodi:rx="64.411957"
+ sodipodi:ry="64.411957"
+ sodipodi:start="3.1415927"
+ sodipodi:end="4.712389"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:open="true"
+ inkscape:label="range" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ id="path4501"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="needle" />
+ <text
+ inkscape:label="min"
+ id="text4505"
+ y="4.9187088"
+ x="49.132977"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px"
+ y="4.9187088"
+ x="49.132977"
+ id="tspan4503"
+ sodipodi:role="line">0</tspan></text>
+ <text
+ inkscape:label="max"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="127.48073"
+ y="-78.144218"
+ id="text4509"><tspan
+ sodipodi:role="line"
+ id="tspan4507"
+ x="127.48073"
+ y="-78.144218"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text>
+ <text
+ inkscape:label="value"
+ id="text4517"
+ y="-6.1937833"
+ x="113.53007"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan4515"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-6.1937833"
+ x="113.53007"
+ sodipodi:role="line">000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="124.77896"
+ y="1.1408259"
+ id="text4521"
+ inkscape:label="unit"><tspan
+ sodipodi:role="line"
+ x="124.77896"
+ y="1.1408259"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan4519">bar</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="114.11434"
+ y="90.742165"
+ id="text827"
+ inkscape:label="setpoint_label"><tspan
+ sodipodi:role="line"
+ id="tspan825"
+ x="114.11434"
+ y="90.742165"
+ style="stroke-width:0.35865593px">SetPoint</tspan></text>
+ <text
+ id="text831"
+ y="90.742165"
+ x="344.50876"
+ style="font-style:normal;font-weight:normal;font-size:14.34623718px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.35865593px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="90.742165"
+ x="344.50876"
+ id="tspan829"
+ sodipodi:role="line"
+ style="stroke-width:0.35865593px">Actual</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.57180536px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="206.73413"
+ y="336.90073"
+ id="text4497"
+ inkscape:label="pressure_label"><tspan
+ sodipodi:role="line"
+ id="tspan4495"
+ x="206.73413"
+ y="336.90073"
+ style="fill:#ff6600;stroke-width:0.57180536px">Pressure</tspan></text>
+ <g
+ id="layer4"
+ inkscape:label="HMI:Lang:cn"
+ style="display:none"
+ inkscape:groupmode="layer">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;text-anchor:middle;display:inline;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="83.669571"
+ y="136.78285"
+ id="text948-6"
+ inkscape:label="setpoint_label"><tspan
+ sodipodi:role="line"
+ id="tspan946-2"
+ x="136.78285"
+ y="83.669571"
+ style="stroke-width:1px">设定值</tspan></text>
+ <text
+ id="text952-9"
+ y="137.16286"
+ x="703.711"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="703.711"
+ x="137.16286"
+ id="tspan950-1"
+ sodipodi:role="line"
+ style="text-align:center;writing-mode:vertical-lr;text-anchor:middle;stroke-width:1px">当前值</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;writing-mode:vertical-lr;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="480.61847"
+ y="278.37503"
+ id="text956-2"
+ inkscape:label="pressure_label"><tspan
+ sodipodi:role="line"
+ id="tspan954-7"
+ x="278.37503"
+ y="480.61847"
+ style="writing-mode:vertical-lr;fill:#ff6600;stroke-width:0.99999994px">压力</tspan></text>
+ <text
+ inkscape:label="setting_jmp"
+ id="text1097"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan1095"
+ sodipodi:role="line">设置</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="1436.9814"
+ id="text1101"
+ inkscape:label="home_jmp"><tspan
+ sodipodi:role="line"
+ x="1090.7626"
+ y="1436.9814"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1107">家</tspan></text>
+ </g>
+ <g
+ id="layer2"
+ inkscape:label="HMI:Lang:fr"
+ style="display:none"
+ inkscape:groupmode="layer">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="340.9082"
+ y="77.142853"
+ id="text948"
+ inkscape:label="setpoint_label"><tspan
+ sodipodi:role="line"
+ id="tspan946"
+ x="340.9082"
+ y="77.142853">Valeur de consigne</tspan></text>
+ <text
+ id="text952"
+ y="77.142853"
+ x="960.9082"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="77.142853"
+ x="960.9082"
+ id="tspan950"
+ sodipodi:role="line"
+ style="text-align:center;text-anchor:middle">Valeur courante</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="420.37848"
+ y="399.41504"
+ id="text956"
+ inkscape:label="pressure_label"><tspan
+ sodipodi:role="line"
+ id="tspan954"
+ x="420.37848"
+ y="399.41504"
+ style="fill:#ff6600;stroke-width:0.99999994px">Pression</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="setting_jmp-0"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1024-9"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text>
+ <text
+ inkscape:label="home_jmp"
+ id="home_jmp-3"
+ y="1436.9814"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="1436.9814"
+ x="1090.7626"
+ id="tspan1028-6"
+ sodipodi:role="line">Home</tspan></text>
+ </g>
+ <g
+ id="layer3"
+ inkscape:label="HMI:Lang:si"
+ style="display:inline"
+ inkscape:groupmode="layer">
+ <text
+ id="text930"
+ y="77.142853"
+ x="338.67188"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="setpoint_label"><tspan
+ y="77.142853"
+ x="338.67188"
+ id="tspan928"
+ sodipodi:role="line">nastavljena vrednost</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="959.38477"
+ y="77.142853"
+ id="text934"
+ inkscape:label="actual_label"><tspan
+ sodipodi:role="line"
+ id="tspan932"
+ x="959.38477"
+ y="77.142853">dejanska vrednost</tspan></text>
+ <text
+ id="text938"
+ y="399.41504"
+ x="420.37848"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="pressure_label"><tspan
+ style="fill:#ff6600;stroke-width:0.99999994px"
+ y="399.41504"
+ x="420.37848"
+ id="tspan936"
+ sodipodi:role="line">pritisk</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="setting_jmp-06"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan1024-2"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Settings</tspan></text>
+ <text
+ inkscape:label="home_jmp"
+ id="home_jmp-6"
+ y="1436.9814"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="1436.9814"
+ x="1090.7626"
+ id="tspan1028-1"
+ sodipodi:role="line">Home</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH"
+ transform="matrix(7.5590552,0,0,7.5590552,-244.3956,1321.2434)"
+ id="g110">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 113.38908,2.2017068 V -62.210247"
+ id="path90"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="range" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path92"
+ d="M 113.38908,4.0725977 V -62.210247"
+ style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient964);stroke-width:13.22916698;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="115.07632"
+ y="9.3424692"
+ id="text96"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan94"
+ x="115.07632"
+ y="9.3424692"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text100"
+ y="-64.195457"
+ x="113.27539"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-64.195457"
+ x="113.27539"
+ id="tspan98"
+ sodipodi:role="line">10000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-20.624428"
+ y="-109.67243"
+ id="text104"
+ inkscape:label="value"
+ transform="rotate(90)"><tspan
+ sodipodi:role="line"
+ x="-20.624428"
+ y="-109.67243"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan102">000</tspan></text>
+ <text
+ inkscape:label="unit"
+ id="text108"
+ y="-9.4425077"
+ x="140.65398"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan106"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-9.4425077"
+ x="140.65398"
+ sodipodi:role="line">€£$¥</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Input@/TARGETPRESSURE"
+ id="g991"
+ transform="matrix(0.5,0,0,0.5,230.11026,885.7162)"
+ style="stroke-width:2">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text977"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan975"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect983"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ id="g1086"
+ inkscape:label="=0"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:connector-curvature="0"
+ id="path989"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1048"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1046"
+ sodipodi:role="line">→0←</tspan></text>
+ </g>
+ <g
+ id="g1091"
+ inkscape:label="-10"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path981"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1059"><tspan
+ sodipodi:role="line"
+ id="tspan1057"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">-10</tspan></text>
+ </g>
+ <g
+ id="g1096"
+ inkscape:label="-100"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path979"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1063"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1061"
+ sodipodi:role="line">-100</tspan></text>
+ </g>
+ <g
+ id="g1076"
+ inkscape:label="+100"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path985"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1067"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1065"
+ sodipodi:role="line">+100</tspan></text>
+ </g>
+ <g
+ id="g1081"
+ inkscape:label="+10"
+ transform="translate(-416.52022,170.47452)"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path987"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1071"><tspan
+ sodipodi:role="line"
+ id="tspan1069"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">+10</tspan></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="736.32812"
+ y="1478.2422"
+ id="text995"
+ inkscape:label="HMI:Display@/PUMP0/PRESSURE"><tspan
+ sodipodi:role="line"
+ id="tspan993"
+ x="736.32812"
+ y="1478.2422"
+ style="fill:#82ff77;fill-opacity:1;stroke-width:1px;">8888</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="28.181862"
+ y="365.32291"
+ id="text134"
+ inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan132"
+ x="28.181862"
+ y="365.32291"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <text
+ inkscape:label="HMI:Display@/PUMP0/BOOLOUT"
+ id="text138"
+ y="422.50345"
+ x="28.181862"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="422.50345"
+ x="28.181862"
+ id="tspan136"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ transform="matrix(0.28590269,0,0,0.28590269,0.70444171,226.1427)"
+ id="g208-1"
+ inkscape:label="HMI:Input@/PUMP0/STRIN"
+ style="stroke-width:2">
+ <text
+ inkscape:label="value"
+ id="text164"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan162"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect166"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g174"
+ style="stroke-width:2">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path168"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text172"><tspan
+ sodipodi:role="line"
+ id="tspan170"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:1px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g182"
+ style="stroke-width:2">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path176"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text180"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan178"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g190"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path184"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text188"><tspan
+ sodipodi:role="line"
+ id="tspan186"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:1px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g198"
+ style="stroke-width:2">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path192"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text196"><tspan
+ sodipodi:role="line"
+ id="tspan194"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:1px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g206-1"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path200"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text204"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan202"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <g
+ inkscape:label="HMI:Keypad:HMI_INT:HMI_REAL"
+ id="g2432"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,2336.0198)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:label="Background"
+ inkscape:connector-curvature="0"
+ id="path2136"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ ry="3.8152773"
+ rx="3.8152773"
+ y="15.77106"
+ x="64.024963"
+ height="30.150299"
+ width="361.89996"
+ id="rect2426"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:label="Field" />
+ <text
+ id="text2430"
+ y="37.408375"
+ x="72.50132"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Value"><tspan
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px"
+ y="37.408375"
+ x="72.50132"
+ id="tspan2428"
+ sodipodi:role="line">number</tspan></text>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Enter"
+ id="g4947"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.10074362;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path193"
+ d="m 750,175 c 0,-2 -1,-3 -3,-3 h -20 c -1,0 -3,1 -3,3 v 43 c 0,1 2,2 3,2 h 20 c 2,0 3,-1 3,-2 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1244.2949,1166.5938 v 15.791 h -38.6875 v -2.9981 l -6.9199,4 6.9199,4 v -2.998 h 40.6836 v -17.7949 z"
+ transform="matrix(0.28557246,0,0,0.28557246,1098.7155,-140.51013)"
+ id="path6545-4"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ inkscape:label="Keys"
+ id="g4993"
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60855)">
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="7"
+ id="g4892">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path163"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text331"
+ y="129.38269"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="4"
+ id="g4907">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path169"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text335"
+ y="154.10822"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="1"
+ id="g4922">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path175"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text339"
+ y="179.82285"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="8"
+ id="g4897">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,120 h 19 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path165"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text347"
+ y="129.38269"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="5"
+ id="g4912">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,146 h 19 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -19 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path171"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text351"
+ y="154.10822"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="2"
+ id="g4927">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 668,172 h 19 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path177"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text355"
+ y="179.82285"
+ x="667.07562"
+ transform="scale(1.0007154,0.99928514)">2</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="9"
+ id="g4902">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ id="path167"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text363"
+ y="129.38269"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="6"
+ id="g4917">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,146 h 20 c 2,0 3,1 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path173"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text367"
+ y="154.10822"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="3"
+ id="g4932">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,172 h 20 c 2,0 3,1 3,3 v 17 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -17 c 0,-2 2,-3 3,-3 z"
+ id="path179"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text371"
+ y="179.82285"
+ x="695.75708"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ style="stroke-width:0.13585199"
+ inkscape:label="0"
+ id="g4937">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 638,220 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 h 49 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 z"
+ id="path373"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text377"
+ y="205.53712"
+ x="636.4165"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ </g>
+ </g>
+ <g
+ id="g3113"
+ inkscape:label="Esc"
+ transform="translate(-318.22576)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path167-3"
+ d="m 387.26079,54.792986 h 33.40019 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -33.40019 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="394.42801"
+ y="78.632088"
+ id="text469-4"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928511)">Esc</text>
+ </g>
+ <g
+ id="g3109"
+ inkscape:label="BackSpace"
+ transform="translate(0,-43.420332)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path173-1"
+ d="m 387.26079,98.213318 h 33.40019 c 3.34,0 5.01006,1.670013 5.01006,5.010032 v 30.06024 c 0,3.34002 -1.67006,5.01003 -5.01006,5.01003 h -33.40019 c -1.67006,0 -5.01007,-1.67001 -5.01007,-5.01003 v -30.06024 c 0,-3.340019 3.34001,-5.010032 5.01007,-5.010032 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -1278.9668,1041.3047 -6.9199,4 6.9199,4 v -3 h 33.416 v -1.9981 h -33.416 z"
+ transform="matrix(0.47690966,0,0,0.47690966,1008.0304,-380.26227)"
+ id="path11623-1-0-2"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g787"
+ inkscape:label="Sign"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ transform="matrix(1.6700128,0,0,1.6700128,-678.20742,-102.18822)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path781"
+ d="m 638,120 h 20 c 2,0 3,2 3,3 v 18 c 0,2 -1,3 -3,3 h -20 c -1,0 -3,-1 -3,-3 v -18 c 0,-1 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="642.1239"
+ y="135.09822"
+ id="text783"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ transform="scale(1.0007154,0.99928514)">+/-</text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="252.9579"
+ y="12.333653"
+ id="text509"
+ transform="scale(0.96824589,1.0327955)"
+ inkscape:label="Info"><tspan
+ sodipodi:role="line"
+ id="tspan507"
+ x="252.9579"
+ y="12.333653"
+ style="stroke-width:0.30784383px">information</tspan></text>
+ <g
+ transform="matrix(1.6700128,0,0,1.6700128,-826.83854,-145.60856)"
+ style="fill-rule:evenodd;stroke-width:0.13585199"
+ id="g4942"
+ inkscape:label="NumDot">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 697,197 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path181"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.10074359;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:6.96602964px;font-family:Arial;fill:#2b2828;stroke-width:0.10514989"
+ id="text771"
+ y="204.54802"
+ x="696.7464"
+ transform="scale(1.0007154,0.99928514)">.</text>
+ </g>
+ </g>
+ <g
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,1556.0198)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4278"
+ inkscape:label="HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 54.211084,1.2654702 H 435.7388 V 230.18209 H 54.211084 Z"
+ id="rect1006-3"
+ inkscape:connector-curvature="0"
+ inkscape:label="Background"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path185"
+ d="m 162,197 h -11 c -2,0 -3,1 -3,3 v 18 c 0,2 1,3 3,3 h 11 168 18 c 0,0 1,-1 1,-3 v -18 c 0,-2 -1,-3 -1,-3 h -18 z"
+ inkscape:connector-curvature="0"
+ inkscape:label="Space" />
+ <g
+ id="g4380"
+ inkscape:label="Keys"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <g
+ id="g4283"
+ inkscape:label="q Q"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path41"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="99.378708"
+ y="138.28395"
+ id="text203"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Q</text>
+ </g>
+ <g
+ id="g4337"
+ inkscape:label="w W"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path43"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="127.0709"
+ y="138.28395"
+ id="text207"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">W</text>
+ </g>
+ <g
+ id="g4332"
+ inkscape:label="e E"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path45"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="159.70854"
+ y="138.28395"
+ id="text211"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">E</text>
+ </g>
+ <g
+ id="g4326"
+ inkscape:label="r R"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path47"
+ d="m 184,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="188.39003"
+ y="138.28395"
+ id="text215"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">R</text>
+ </g>
+ <g
+ id="g4321"
+ inkscape:label="t T"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path49"
+ d="m 213,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="219.04961"
+ y="138.28395"
+ id="text219"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">T</text>
+ </g>
+ <g
+ id="g4316"
+ inkscape:label="y Y"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path51"
+ d="m 243,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="248.72017"
+ y="138.28395"
+ id="text223"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">Y</text>
+ </g>
+ <g
+ id="g4311"
+ inkscape:label="u U"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path53"
+ d="m 273,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="278.39075"
+ y="138.28395"
+ id="text227"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">U</text>
+ </g>
+ <g
+ id="g4306"
+ inkscape:label="i I"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path55"
+ d="m 302,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="311.02859"
+ y="138.28395"
+ id="text231"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">I</text>
+ </g>
+ <g
+ id="g4301"
+ inkscape:label="o O"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path57"
+ d="m 332,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="336.74319"
+ y="138.28395"
+ id="text235"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">O</text>
+ </g>
+ <g
+ id="g4296"
+ inkscape:label="p P"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-9.5381931)">
+ <path
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path59"
+ d="m 362,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 v -18 c 0,-2 1,-3 2,-3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="367.40256"
+ y="138.28395"
+ id="text239"
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928514)">P</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4511"
+ inkscape:label="a A">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 103,147 h 19 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path65"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text243"
+ y="163.99854"
+ x="107.29005"
+ transform="scale(1.0007154,0.99928514)">A</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4516"
+ inkscape:label="s S">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 132,147 h 20 c 1,0 3,1 3,2 v 19 c 0,1 -2,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path67"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text247"
+ y="163.99854"
+ x="137.95012"
+ transform="scale(1.0007154,0.99928514)">S</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4521"
+ inkscape:label="d D">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 162,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path69"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text251"
+ y="163.99854"
+ x="166.63159"
+ transform="scale(1.0007154,0.99928514)">D</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4526"
+ inkscape:label="f F">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 192,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path71"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text255"
+ y="163.99854"
+ x="197.29166"
+ transform="scale(1.0007154,0.99928514)">F</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4531"
+ inkscape:label="g G">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 221,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -2,0 -3,-1 -3,-2 v -19 c 0,-1 1,-2 3,-2 z"
+ id="path73"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text259"
+ y="163.99854"
+ x="225.97284"
+ transform="scale(1.0007154,0.99928514)">G</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4536"
+ inkscape:label="h H">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 251,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path75"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text263"
+ y="163.99854"
+ x="255.64342"
+ transform="scale(1.0007154,0.99928514)">H</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4541"
+ inkscape:label="j J">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 281,147 h 19 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -19 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path77"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text267"
+ y="163.99854"
+ x="287.29208"
+ transform="scale(1.0007154,0.99928514)">J</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4546"
+ inkscape:label="k K">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 310,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path79"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text271"
+ y="163.99854"
+ x="314.98465"
+ transform="scale(1.0007154,0.99928514)">K</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4551"
+ inkscape:label="l L">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 340,147 h 20 c 2,0 3,1 3,2 v 19 c 0,1 -1,2 -3,2 h -20 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 z"
+ id="path81"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text275"
+ y="163.99854"
+ x="345.64444"
+ transform="scale(1.0007154,0.99928514)">L</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4586"
+ inkscape:label="z Z"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 113,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path87-3"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text279"
+ y="188.72411"
+ x="119.15855"
+ transform="scale(1.0007154,0.99928514)">Z</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4581"
+ inkscape:label="x X"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 143,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path89-6"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text283"
+ y="188.72411"
+ x="148.82933"
+ transform="scale(1.0007154,0.99928514)">X</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4576"
+ inkscape:label="c C"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 173,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 z"
+ id="path91-7"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text287"
+ y="188.72411"
+ x="178.50011"
+ transform="scale(1.0007154,0.99928514)">C</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4571"
+ inkscape:label="v V"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 202,172 h 21 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -21 c 0,0 -1,-1 -1,-3 v -17 c 0,-1 1,-3 1,-3 z"
+ id="path195"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text291"
+ y="188.72411"
+ x="208.16988"
+ transform="scale(1.0007154,0.99928514)">V</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4566"
+ inkscape:label="b B"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 233,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path93"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text295"
+ y="188.72411"
+ x="237.84096"
+ transform="scale(1.0007154,0.99928514)">B</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4561"
+ inkscape:label="n N"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 263,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path95"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text299"
+ y="188.72411"
+ x="267.51193"
+ transform="scale(1.0007154,0.99928514)">N</text>
+ </g>
+ <g
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4556"
+ inkscape:label="m M"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 293,172 h 19 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -19 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path97"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text303"
+ y="188.72411"
+ x="296.1933"
+ transform="scale(1.0007154,0.99928514)">M</text>
+ </g>
+ <g
+ id="g4818"
+ inkscape:label=". :"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 352,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path101"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text719"
+ y="189.66107"
+ x="359.58276">.</text>
+ <text
+ x="359.58276"
+ y="181.64532"
+ id="text4834"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928512)">:</text>
+ </g>
+ <g
+ id="g4813"
+ inkscape:label=", ;"
+ style="stroke-width:0.47631353"
+ transform="translate(0,9.5381929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 322,172 h 20 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 h -20 c -2,0 -3,-1 -3,-3 v -17 c 0,-1 1,-3 3,-3 z"
+ id="path99"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text727"
+ y="181.64532"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)">;</text>
+ <text
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ y="189.66107"
+ x="330.00806"
+ transform="scale(1.0007154,0.99928512)"
+ id="text4826">,</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="1"
+ id="g2845"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 95,121 h 19 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 H 95 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2839"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2841"
+ y="138.28395"
+ x="101.07153"
+ transform="scale(1.0007154,0.99928513)">1</text>
+ </g>
+ <g
+ style="stroke-width:0.47631353"
+ inkscape:label="2"
+ id="g2853"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 124,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2847"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2849"
+ y="138.28395"
+ x="130.18704"
+ transform="scale(1.0007154,0.99928513)">2</text>
+ </g>
+ <g
+ inkscape:label="3"
+ id="g2861"
+ style="stroke-width:0.47631353"
+ transform="translate(-13.353469,-45.783327)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 154,121 h 20 c 2,0 3,1 3,3 v 18 c 0,1 -1,3 -3,3 h -20 c -1,0 -3,-2 -3,-3 v -18 c 0,-2 2,-3 3,-3 z"
+ id="path2855"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2857"
+ y="138.28395"
+ x="159.70854"
+ transform="scale(1.0007154,0.99928514)">3</text>
+ </g>
+ <g
+ id="g2957"
+ inkscape:label="4"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 170.64653,94.293059 h 19 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -19 c -1,0 -3,-2 -3,-3 V 97.293059 c 0,-2 2,-3 3,-3 z"
+ id="path2865"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2867"
+ y="111.55791"
+ x="176.39188"
+ transform="scale(1.0007154,0.99928514)">4</text>
+ </g>
+ <g
+ id="g2962"
+ inkscape:label="5"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 199.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2873"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2875"
+ y="111.55791"
+ x="205.70567"
+ transform="scale(1.0007154,0.99928514)">5</text>
+ </g>
+ <g
+ id="g2967"
+ inkscape:label="6"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 229.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2881"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2883"
+ y="111.55791"
+ x="236.15851"
+ transform="scale(1.0007154,0.99928514)">6</text>
+ </g>
+ <g
+ id="g2972"
+ inkscape:label="7"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 259.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2889"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2891"
+ y="111.55791"
+ x="266.06564"
+ transform="scale(1.0007154,0.99928514)">7</text>
+ </g>
+ <g
+ id="g2977"
+ inkscape:label="8"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 288.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2897"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2899"
+ y="111.55791"
+ x="295.08231"
+ transform="scale(1.0007154,0.99928514)">8</text>
+ </g>
+ <g
+ id="g2982"
+ inkscape:label="9 -"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 318.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2905"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2907"
+ y="111.55791"
+ x="325.05408"
+ transform="scale(1.0007154,0.99928514)">9</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ x="335.72681"
+ y="102.42173"
+ id="text806"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826">-</text>
+ </g>
+ <g
+ id="g2987"
+ inkscape:label="0 +"
+ transform="translate(0,-19.076386)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 348.64653,94.293059 h 20 c 2,0 3,1 3,3 v 18.000001 c 0,1 -1,3 -3,3 h -20 c -1,0 -2,-2 -2,-3 V 97.293059 c 0,-2 1,-3 2,-3 z"
+ id="path2913"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ style="font-weight:normal;font-size:13.93205929px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text2915"
+ y="111.55791"
+ x="355.05984"
+ transform="scale(1.0007154,0.99928514)">0</text>
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ style="font-weight:normal;font-size:9.28803921px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text804"
+ y="102.42173"
+ x="365.30151">+</text>
+ </g>
+ </g>
+ <g
+ transform="translate(335.89988,-58.934803)"
+ id="g3544"
+ inkscape:label="Esc"
+ style="stroke-width:0.47631353">
+ <path
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path105"
+ d="m 47.948645,115.07509 h 39.076386 c 1,0 3,1 3,3 v 18 c 0,1 -2,3 -3,3 H 47.948645 c -2,0 -3,-2 -3,-3 v -18 c 0,-2 1,-3 3,-3 z"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928512)"
+ style="font-weight:normal;font-size:9.37966251px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text469"
+ y="130.02028"
+ x="59.288635">Esc</text>
+ </g>
+ <g
+ inkscape:label="Enter"
+ id="g4291"
+ style="stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3616"
+ d="m 368.68274,170 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 54.24217 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -260.23633,1080.8125 v 15.7949 h -38.68555 v -3 l -6.91992,4 6.91992,4 v -3.0019 h 40.6836 v -17.793 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-361.18588)"
+ id="path6545"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ inkscape:label="BackSpace"
+ id="g4287"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(2.3648311e-6,-28.614579)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3624"
+ d="m 391.97749,144 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 30.94742 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2b2828;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m -268.72656,1011.1777 -6.91992,4 6.91992,4 v -3.0019 h 29.18945 v -1.9981 h -29.18945 z"
+ transform="matrix(0.47690966,0,0,0.47690966,531.12074,-351.64769)"
+ id="path11623-1-0"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g934"
+ inkscape:label="CapsLock">
+ <g
+ inkscape:label="inactive"
+ id="g942"
+ style="display:inline;fill-rule:evenodd;stroke-width:0.47631353"
+ transform="translate(0,-19.076386)">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path936"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="69.789322"
+ y="156.71973"
+ id="text938-5"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Caps</text>
+ <text
+ x="69.789322"
+ y="166.5585"
+ id="text940"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#2b2828;stroke-width:0.36866823"
+ transform="scale(1.0007154,0.99928515)">Lock</text>
+ </g>
+ <g
+ transform="translate(0,-19.076386)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g4429"
+ inkscape:label="active">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,170 c -1,0 -3,-1 -3,-2 v -19 c 0,-1 2,-2 3,-2 H 92 c 2,0 4,1 4,2 v 19 c 0,1 -2,2 -4,2 z"
+ id="path199"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text647"
+ y="156.71973"
+ x="69.789322">Caps</text>
+ <text
+ transform="scale(1.0007154,0.99928515)"
+ style="font-weight:normal;font-size:8.66233635px;font-family:Arial;fill:#ffffff;stroke-width:0.36866823"
+ id="text651"
+ y="166.5585"
+ x="69.789322">Lock</text>
+ </g>
+ </g>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect2130"
+ width="361.89996"
+ height="30.150299"
+ x="64.024956"
+ y="15.771065"
+ rx="3.8152773"
+ ry="3.8152773"
+ inkscape:label="Field" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="72.50132"
+ y="38.296417"
+ id="text1309"
+ inkscape:label="Value"><tspan
+ sodipodi:role="line"
+ id="tspan1307"
+ x="72.50132"
+ y="38.296417"
+ style="text-align:start;text-anchor:start;stroke-width:0.47690967px">text</tspan></text>
+ <g
+ id="g437"
+ inkscape:label="Shift">
+ <g
+ id="g421"
+ inkscape:label="inactive">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ id="path910"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;stroke-width:0.36866826"
+ id="text912"
+ y="177.90059"
+ x="392.55679"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#d3d2d2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824308;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path856"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ x="75.85218"
+ y="177.90059"
+ id="text858"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#2b2828;fill-rule:evenodd;stroke-width:0.36866826"
+ transform="scale(1.0007154,0.99928513)">Shift</text>
+ </g>
+ <g
+ id="g413"
+ inkscape:label="active">
+ <path
+ sodipodi:nodetypes="sssssssss"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path551"
+ d="m 379.96247,185.46181 c -1,0 -2,-1 -2,-3 v -17 c 0,-1 1,-3 2,-3 h 42.96244 c 2,0 3,2 3,3 v 17 c 0,2 -1,3 -3,3 z"
+ inkscape:connector-curvature="0" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ x="392.55679"
+ y="177.90059"
+ id="text629"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;stroke-width:0.36866826">Shift</text>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 67.025031,185.46181 c -1,0 -3,-1 -3,-3 v -17 c 0,-1 2,-3 3,-3 H 104 c 1,0 2,2 2,3 v 17 c 0,2 -1,3 -2,3 z"
+ id="path879"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928513)"
+ style="font-weight:normal;font-size:8.92098808px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text881"
+ y="177.90059"
+ x="75.85218">Shift</text>
+ </g>
+ </g>
+ <text
+ transform="scale(0.96824588,1.0327955)"
+ id="text471"
+ y="12.333657"
+ x="252.9579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="Info"><tspan
+ style="stroke-width:0.30784383px"
+ y="12.333657"
+ x="252.9579"
+ id="tspan469"
+ sodipodi:role="line">information</tspan></text>
+ </g>
+ <g
+ id="g14237"
+ inkscape:label="HMI:DropDown:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27@/SELECTION"
+ transform="matrix(0.81491208,0,0,0.81491208,243.6641,-510.30491)"
+ style="stroke-width:0.35083869">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect14212"
+ width="391.99988"
+ height="130.9433"
+ x="864.00842"
+ y="923.98993"
+ rx="2.4558709"
+ ry="2.4558709"
+ inkscape:label="box" />
+ <rect
+ inkscape:label="highlight"
+ ry="2.4558709"
+ rx="2.4558709"
+ y="943.10553"
+ x="864.00842"
+ height="92.71212"
+ width="391.99988"
+ id="rect5497"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text14183"
+ y="1011.9975"
+ x="881.44226"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="text"><tspan
+ style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px"
+ y="1011.9975"
+ x="881.44226"
+ sodipodi:role="line"
+ id="tspan421">sel_0</tspan></text>
+ <path
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path424"
+ sodipodi:sides="3"
+ sodipodi:cx="1200.5"
+ sodipodi:cy="975"
+ sodipodi:r1="43.683521"
+ sodipodi:r2="21.841761"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="2.6179939"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1200.5,1018.6835 -18.9155,-32.76262 -18.9155,-32.76264 37.831,0 37.831,0 -18.9155,32.76264 z"
+ inkscape:transform-center-y="10.92088"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g14274"
+ inkscape:label="HMI:List:HoodNames:ForEach:HOOD:NAME@/" />
+ <g
+ inkscape:label="HMI:Input@/SELECTION"
+ id="g446"
+ transform="matrix(0.28590269,0,0,0.28590269,85.246911,560.98603)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="216.32812"
+ y="218.24219"
+ id="text432"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan430"
+ x="216.32812"
+ y="218.24219"
+ style="text-align:end;text-anchor:end;stroke-width:1px">8</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path436"
+ sodipodi:sides="3"
+ sodipodi:cx="276.74072"
+ sodipodi:cy="-224.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 302.6459,-210.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="7.4781812"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="-174.94055"
+ height="128"
+ width="407.7037"
+ id="rect438"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-7.4781804"
+ d="m 302.6459,111.4008 -51.81035,0 25.90517,-44.869079 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="96.444443"
+ sodipodi:cx="276.74072"
+ sodipodi:sides="3"
+ id="path442"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ inkscape:label="=0"
+ inkscape:transform-center-y="-10.828983"
+ d="m 306.14807,189.68763 -58.37872,0.43598 -0.43597,-58.37872 58.37871,-0.43597 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5633284"
+ sodipodi:arg1="0.77793027"
+ sodipodi:r2="21.657967"
+ sodipodi:r1="41.281136"
+ sodipodi:cy="160.71626"
+ sodipodi:cx="276.74072"
+ sodipodi:sides="4"
+ id="path444"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ inkscape:transform-center-x="1.0089177e-06" />
+ </g>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,-522.96165,161.69266)"
+ id="g443"
+ inkscape:label="HMI:Button@/SELECTION"
+ style="stroke-width:1">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect5492"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="23.930969"
+ inkscape:label="inactive"
+ rx="23.930969" />
+ <rect
+ rx="23.930969"
+ inkscape:label="active"
+ ry="23.930969"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect433"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fdfdfd;fill-opacity:1;fill-rule:nonzero;stroke:#ffd0b2;stroke-width:28.60938263;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:1"
+ inkscape:label="text"
+ id="g952">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text950"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan948"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">up</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g5053"
+ inkscape:label="HMI:Switch@/PUMP0/BOOLOUT"
+ transform="translate(43.983597,40.477445)">
+ <g
+ id="g473"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="true">
+ <path
+ d="M 825.90067,963.24473 V 1105.042 L 960.08282,916.47893 V 809.26931 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3451"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90067,1105.042 90.50966,81.6485 121.15167,-225.30346 -77.47918,-44.90811 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3453"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 960.08282,809.26931 77.47918,36.25625 v 115.86148 l -77.47918,-44.90811 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3455"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 825.90067,963.24473 916.41033,1029.3537 1037.562,845.52556 960.08282,809.26931 Z"
+ style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3457"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 916.41033,1029.3537 v 157.3368 L 1037.562,961.38704 V 845.52556 Z"
+ style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3459"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90067,963.24473 90.50966,66.10897 v 157.3368 l -90.50966,-81.6485 z"
+ style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3461"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g501"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="false">
+ <path
+ d="M 855.90069,905.24473 V 1047.042 L 978.3745,966.29311 V 859.0835 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3437"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90069,1047.042 90.50966,81.6485 108.49845,-108.7886 -76.5343,-53.60879 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3439"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 978.3745,859.0835 76.5343,44.95689 v 115.86151 l -76.5343,-53.60879 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3441"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90069,905.24473 90.50966,66.10901 108.49845,-67.31335 -76.5343,-44.95689 z"
+ style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3443"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 946.41035,971.35374 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z"
+ style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3445"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90069,905.24473 90.50966,66.10901 v 157.33676 l -90.50966,-81.6485 z"
+ style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3447"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ transform="matrix(3.3549332,0,0,3.14525,-181.87457,3116.0198)"
+ style="fill-rule:evenodd;stroke-width:0.47631353"
+ id="g1490"
+ inkscape:label="HMI:ModalOKDialog">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.6;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.16776976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 54.211099,1.2654702 H 435.73881 V 230.18209 H 54.211099 Z"
+ id="path1386"
+ inkscape:connector-curvature="0"
+ inkscape:label="Background"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+ inkscape:label="Field"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#fffff5;fill-opacity:1;fill-rule:nonzero;stroke:#202326;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1388"
+ width="314.68832"
+ height="68.369255"
+ x="87.630791"
+ y="56.041908"
+ rx="3.8152773"
+ ry="3.8152773" />
+ <text
+ inkscape:label="Message"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.0763855px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.47690967px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="243.24242"
+ y="94.637527"
+ id="text1392"><tspan
+ sodipodi:role="line"
+ id="tspan1390"
+ x="243.24242"
+ y="94.637527"
+ style="text-align:center;text-anchor:middle;stroke-width:0.47690967px">message</tspan></text>
+ <g
+ transform="translate(-158.98593,95.381925)"
+ inkscape:label="OK"
+ id="g1466">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 363.41531,54.792986 h 81.09115 c 3.34,0 5.01006,3.34003 5.01006,5.010045 v 30.060225 c 0,3.340029 -1.67006,5.010032 -5.01006,5.010032 h -81.09115 c -1.67006,0 -5.01007,-1.670003 -5.01007,-5.010032 V 59.803031 c 0,-1.670015 3.34001,-5.010045 5.01007,-5.010045 z"
+ id="path1462"
+ style="opacity:1;vector-effect:none;fill:#4f4c4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.16824313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:nodetypes="sssssssss" />
+ <text
+ transform="scale(1.0007154,0.99928511)"
+ style="font-weight:normal;font-size:10.63882256px;font-family:Arial;fill:#ffffff;fill-rule:evenodd;stroke-width:0.36866826"
+ id="text1464"
+ y="78.632088"
+ x="402.71881">
+ <tspan
+ style="text-align:center;text-anchor:middle"
+ id="tspan5195">OK</tspan>
+ </text>
+ </g>
+ <text
+ inkscape:label="Info"
+ transform="scale(0.96824589,1.0327955)"
+ id="text1482"
+ y="12.333653"
+ x="252.9579"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.31375408px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.30784383px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.30784383px"
+ y="12.333653"
+ x="252.9579"
+ id="tspan1480"
+ sodipodi:role="line">information</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH"
+ transform="matrix(3.7795276,0,0,3.7795276,1628.51,630.30393)"
+ id="g1338">
+ <path
+ inkscape:label="range"
+ sodipodi:open="true"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:end="4.712389"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="64.411957"
+ sodipodi:rx="64.411957"
+ sodipodi:cy="2.2017097"
+ sodipodi:cx="128.02208"
+ sodipodi:type="arc"
+ id="path1318"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path1320"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ style="fill:none;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1656)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="49.132977"
+ y="4.9187088"
+ id="text1324"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan1322"
+ x="49.132977"
+ y="4.9187088"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text1328"
+ y="-78.144218"
+ x="127.48073"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-78.144218"
+ x="127.48073"
+ id="tspan1326"
+ sodipodi:role="line">10000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="113.53007"
+ y="-6.1937833"
+ id="text1332"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ x="113.53007"
+ y="-6.1937833"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan1330">000</tspan></text>
+ <text
+ inkscape:label="unit"
+ id="text1336"
+ y="1.1408259"
+ x="124.77896"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan1334"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="1.1408259"
+ x="124.77896"
+ sodipodi:role="line">bar</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Switch@/PUMP0/BOOLOUT"
+ id="g1368"
+ transform="translate(1424.3019,-503.18786)">
+ <g
+ id="g1352"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="true">
+ <path
+ d="M 825.90072,963.24473 V 1105.042 L 960.08286,916.47892 V 809.26931 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3479"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90072,1105.042 90.50967,81.6485 121.15161,-225.30347 -77.47914,-44.90811 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3481"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 960.08286,809.26931 77.47914,36.25624 v 115.86148 l -77.47914,-44.90811 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3483"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 825.90072,963.24473 916.41039,1029.3537 1037.562,845.52555 960.08286,809.26931 Z"
+ style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3485"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 916.41039,1029.3537 v 157.3368 L 1037.562,961.38703 V 845.52555 Z"
+ style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3487"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 825.90072,963.24473 90.50967,66.10897 v 157.3368 l -90.50967,-81.6485 z"
+ style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3489"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g1366"
+ style="fill:#ff0000;stroke:#ff00ff"
+ inkscape:label="false">
+ <path
+ d="M 855.90072,905.24473 V 1047.042 L 978.37453,966.29311 V 859.08349 Z"
+ style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3465"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90072,1047.042 90.50967,81.6485 108.49841,-108.7886 -76.53427,-53.60879 z"
+ style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3467"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 978.37453,859.08349 76.53427,44.9569 v 115.86151 l -76.53427,-53.60879 z"
+ style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3469"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90072,905.24473 90.50967,66.109 108.49841,-67.31334 -76.53427,-44.9569 z"
+ style="fill:#4d389f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3471"
+ inkscape:connector-curvature="0" />
+ <path
+ d="M 946.41039,971.35373 V 1128.6905 L 1054.9088,1019.9019 V 904.04039 Z"
+ style="fill:#d78bff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3473"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 855.90072,905.24473 90.50967,66.109 v 157.33677 l -90.50967,-81.6485 z"
+ style="fill:#8667bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-linejoin:round"
+ id="path3475"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.63690435,0,0,0.63690435,1576.4961,80.355376)"
+ inkscape:label="HMI:Input@/PUMP0/PRESSURE"
+ id="g1394">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1380"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1378"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:1px">8888</tspan></text>
+ <path
+ inkscape:label="-100"
+ inkscape:transform-center-y="14.956363"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1382"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1384"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="7.4781812"
+ inkscape:label="-10" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1386"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1388"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-14.956361"
+ inkscape:label="+100" />
+ <path
+ inkscape:label="+10"
+ inkscape:transform-center-y="-7.4781804"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1390"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ inkscape:label="=0"
+ inkscape:transform-center-y="-14.956361"
+ d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z"
+ inkscape:randomized="0"
+ inkscape:rounded="-0.65084865"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5633284"
+ sodipodi:arg1="0.77793027"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="57.015106"
+ sodipodi:cy="165.17262"
+ sodipodi:cx="80.740723"
+ sodipodi:sides="4"
+ id="path1392"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@/PUMP0/STRIN"
+ id="g1442"
+ transform="matrix(0.5,0,0,0.5,1470.1103,205.71623)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1398"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1396"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1400"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:2"
+ id="g1408"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1402"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1406"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1404"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1416"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1410"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1414"><tspan
+ sodipodi:role="line"
+ id="tspan1412"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1424"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1418"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1422"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1420"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1432"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1426"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1430"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1428"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1440"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1434"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1438"><tspan
+ sodipodi:role="line"
+ id="tspan1436"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="HMI:Display@/PUMP0/STROUT"
+ id="text1446"
+ y="469.12109"
+ x="1578.1641"
+ style="font-style:normal;font-weight:normal;font-size:80px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.5px"
+ y="469.12109"
+ x="1578.1641"
+ id="tspan1444"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,-153.64055,248.51305)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP0"
+ id="g1458">
+ <g
+ inkscape:label="button"
+ id="g1450">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1448"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1456">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text1454"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1460">Pump 0</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g1475"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP1"
+ transform="matrix(0.57180538,0,0,0.57180538,6.35945,248.51305)">
+ <g
+ id="g1467"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1464"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1473"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1471"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan1469"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ sodipodi:role="line">Pump 1</tspan><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="706.98151"
+ x="1090.7626"
+ sodipodi:role="line"
+ id="tspan1477" /></text>
+ </g>
+ </g>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,166.35945,248.51305)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP2"
+ id="g1491">
+ <g
+ inkscape:label="button"
+ id="g1481">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1479"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1489">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text1487"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1493">Pump 2</tspan><tspan
+ id="tspan1485"
+ sodipodi:role="line"
+ x="1090.7626"
+ y="706.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px" /></text>
+ </g>
+ </g>
+ <g
+ id="g1509"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP3"
+ transform="matrix(0.57180538,0,0,0.57180538,326.35945,248.51305)">
+ <g
+ id="g1499"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1497"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1507"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1505"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="656.98151"
+ x="1090.7626"
+ sodipodi:role="line"
+ id="tspan1511">Pump 3</tspan><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="706.98151"
+ x="1090.7626"
+ sodipodi:role="line"
+ id="tspan1503" /></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="403.8551"
+ y="700.05371"
+ id="text1517"
+ inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515"
+ x="403.8551"
+ y="700.05371"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text>
+ <text
+ inkscape:label="HMI:Display@/PUMP1/STROUT"
+ id="text1521"
+ y="700.05371"
+ x="563.8551"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px"
+ y="700.05371"
+ x="563.8551"
+ id="tspan1519"
+ sodipodi:role="line">8888</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="723.8551"
+ y="700.05371"
+ id="text1525"
+ inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1523"
+ x="723.8551"
+ y="700.05371"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px">8888</tspan></text>
+ <text
+ inkscape:label="HMI:Display@/PUMP3/STROUT"
+ id="text1529"
+ y="700.05371"
+ x="883.8551"
+ style="font-style:normal;font-weight:normal;font-size:55.09014511px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.34431386px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.34431386px"
+ y="700.05371"
+ x="883.8551"
+ id="tspan1527"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ id="g6077"
+ inkscape:label="HMI:ForEach:PUMP@/">
+ <g
+ id="g6130"
+ inkscape:label="PUMP:1">
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,1024.0513,-317.49049)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP0"
+ id="g1458-8">
+ <g
+ inkscape:label="button"
+ id="g1450-4">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1448-8"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1456-1">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1038.2972"
+ y="635.99542"
+ id="text1454-0"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ x="1038.2972"
+ y="635.99542"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ id="tspan1460-3">Pump</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579209px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="992.45087"
+ y="674.76117"
+ id="text1517-8"
+ inkscape:label="HMI:Display@/PUMP0/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5"
+ x="992.45087"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579209px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6122"
+ inkscape:label="PUMP:2">
+ <g
+ id="g1475-0"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP1"
+ transform="matrix(0.57180538,0,0,0.57180538,1184.0513,-317.49049)">
+ <g
+ id="g1467-4"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1464-4"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1473-4"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1471-4"
+ y="635.99542"
+ x="1038.2972"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="635.99542"
+ x="1038.2972"
+ sodipodi:role="line"
+ id="tspan1477-6">Pump</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="992.8111"
+ y="674.76117"
+ id="text1517-8-5"
+ inkscape:label="HMI:Display@/PUMP1/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5-3"
+ x="992.8111"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6113"
+ inkscape:label="PUMP:3">
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,1344.0513,-317.49049)"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP2"
+ id="g1491-3">
+ <g
+ inkscape:label="button"
+ id="g1481-1">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect1479-7"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g1489-5">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1038.2972"
+ y="635.99542"
+ id="text1487-9"
+ inkscape:label="setting_jmp"><tspan
+ id="tspan1485-2"
+ sodipodi:role="line"
+ x="1038.2972"
+ y="635.99542"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Pump</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="993.17108"
+ y="674.76117"
+ id="text1517-8-8"
+ inkscape:label="HMI:Display@/PUMP2/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5-8"
+ x="993.17108"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g6104"
+ inkscape:label="PUMP:4">
+ <g
+ id="g1509-1"
+ inkscape:label="HMI:Jump:RelativePageTest@/PUMP3"
+ transform="matrix(0.57180538,0,0,0.57180538,1504.0513,-317.49049)">
+ <g
+ id="g1499-7"
+ inkscape:label="button">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1497-8"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="35.579063"
+ inkscape:label="button" />
+ </g>
+ <g
+ id="g1507-5"
+ inkscape:label="text">
+ <text
+ inkscape:label="setting_jmp"
+ id="text1505-7"
+ y="635.99542"
+ x="1038.2972"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="635.99542"
+ x="1038.2972"
+ sodipodi:role="line"
+ id="tspan1511-4">Pump</tspan><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px"
+ y="685.99542"
+ x="1038.2972"
+ sodipodi:role="line"
+ id="tspan1503-1" /></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:39.32668304px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24579208px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="993.53101"
+ y="674.76117"
+ id="text1517-8-3"
+ inkscape:label="HMI:Display@/PUMP3/STROUT"><tspan
+ sodipodi:role="line"
+ id="tspan1515-5-1"
+ x="993.53101"
+ y="674.76117"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.24579208px">8888</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ inkscape:label="PUMP:+1"
+ id="g6241"
+ transform="matrix(0.57180538,0,0,0.57180538,1461.2541,-321.48847)">
+ <rect
+ style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677"
+ id="rect6235"
+ width="89.036743"
+ height="79.143768"
+ x="1326.8333"
+ y="612.41589"
+ rx="22.385239"
+ ry="20.986162" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851"
+ x="1340.5292"
+ y="663.73657"
+ id="text6239"><tspan
+ sodipodi:role="line"
+ id="tspan6237"
+ x="1340.5292"
+ y="663.73657"
+ style="fill:#ffffff;stroke-width:1.0703851">+1</tspan></text>
+ </g>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,752.02604,-322.19558)"
+ id="g6209"
+ inkscape:label="PUMP:-1">
+ <rect
+ ry="20.986162"
+ rx="22.385239"
+ y="612.41589"
+ x="1326.8333"
+ height="79.143768"
+ width="89.036743"
+ id="rect6200"
+ style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.74884677" />
+ <text
+ id="text6204"
+ y="663.73657"
+ x="1340.5292"
+ style="font-style:normal;font-weight:normal;font-size:42.81540298px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0703851"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1.0703851"
+ y="663.73657"
+ x="1340.5292"
+ id="tspan6202"
+ sodipodi:role="line">-1</tspan></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:59.01374435px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke:none;stroke-width:0.3688359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="689.9715"
+ y="539.24927"
+ id="text995-6"
+ inkscape:label="HMI:Display:Ploc %d (%d) grmbl !@/PUMP0/PRESSURE@/PUMP0/SLOTH"><tspan
+ sodipodi:role="line"
+ id="tspan993-3"
+ x="689.9715"
+ y="539.24927"
+ style="text-align:center;text-anchor:middle;fill:#82ff77;fill-opacity:1;stroke-width:0.3688359px">8888</tspan></text>
+ <text
+ id="text831-1"
+ y="477.76758"
+ x="581.62634"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="477.76758"
+ x="581.62634"
+ id="tspan829-7"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px">Multiple variables</tspan></text>
+ <text
+ inkscape:label="HMI:Display@paff"
+ id="text1457"
+ y="68.844757"
+ x="750.28473"
+ style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="68.844757"
+ x="750.28473"
+ id="tspan1455"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ style="stroke-width:4"
+ inkscape:label="HMI:Input@paff"
+ id="g1505"
+ transform="matrix(0.14295135,0,0,0.14295135,589.21833,37.615184)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1461"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1459"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:4px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1463"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:4"
+ id="g1471"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1465"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1469"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1467"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1479"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1473"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1477"><tspan
+ sodipodi:role="line"
+ id="tspan1475"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:2px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1487"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1481"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1485"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1483"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1495"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1489"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1493"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1491"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g1503"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1497"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1501"><tspan
+ sodipodi:role="line"
+ id="tspan1499"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:2px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="actual_label"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="509.67926"
+ y="43.42762"
+ id="text1527"><tspan
+ style="stroke-width:0.63690436px"
+ sodipodi:role="line"
+ id="tspan1525"
+ x="509.67926"
+ y="43.42762">HMI_LOCAL variables</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:22.87221527px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="750.28473"
+ y="128.84476"
+ id="text1557"
+ inkscape:label="HMI:Display@.piff"><tspan
+ sodipodi:role="line"
+ id="tspan1555"
+ x="750.28473"
+ y="128.84476"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ transform="matrix(0.14295135,0,0,0.14295135,589.21833,97.61518)"
+ id="g1605"
+ inkscape:label="HMI:Input@.piff"
+ style="stroke-width:4">
+ <text
+ inkscape:label="value"
+ id="text1561"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:4px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1559"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1563"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g1571"
+ style="stroke-width:4">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path1565"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text1569"><tspan
+ sodipodi:role="line"
+ id="tspan1567"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:2px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g1579"
+ style="stroke-width:4">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1573"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text1577"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan1575"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g1587"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1581"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text1585"><tspan
+ sodipodi:role="line"
+ id="tspan1583"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:2px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g1595"
+ style="stroke-width:4">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1589"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text1593"><tspan
+ sodipodi:role="line"
+ id="tspan1591"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:2px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g1603"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1597"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text1601"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan1599"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ id="text1609"
+ y="103.42763"
+ x="509.67926"
+ style="font-style:normal;font-weight:normal;font-size:12.7380867px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="103.42763"
+ x="509.67926"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px"
+ id="tspan1611">PAGE_LOCAL variables</tspan></text>
+ <g
+ inkscape:label="HMI:Meter@level"
+ transform="matrix(2.1611542,0,0,2.1611542,602.76714,428.92423)"
+ id="g709">
+ <path
+ inkscape:label="range"
+ sodipodi:open="true"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:end="4.712389"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="64.411957"
+ sodipodi:rx="64.411957"
+ sodipodi:cy="2.2017097"
+ sodipodi:cx="128.02208"
+ sodipodi:type="arc"
+ id="path689"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff7f2a;stroke-width:26.45833397;stroke-miterlimit:4;stroke-dasharray:2.64583333, 2.64583333;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path691"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff3000;stroke-width:2.96333337;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0, 32.59666667;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-end:url(#marker1971)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="49.132977"
+ y="4.9187088"
+ id="text695"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan693"
+ x="49.132977"
+ y="4.9187088"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text699"
+ y="-78.144218"
+ x="127.48073"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-78.144218"
+ x="127.48073"
+ id="tspan697"
+ sodipodi:role="line">10000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="113.53007"
+ y="-6.1937833"
+ id="text703"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ x="113.53007"
+ y="-6.1937833"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ id="tspan701">000</tspan></text>
+ <text
+ inkscape:label="unit"
+ id="text707"
+ y="1.1408259"
+ x="124.77896"
+ style="font-style:normal;font-weight:normal;font-size:7.5467205px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan705"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="1.1408259"
+ x="124.77896"
+ sodipodi:role="line">bar</tspan></text>
+ </g>
+ <g
+ id="g84-3"
+ inkscape:label="HMI:Input@level"
+ transform="matrix(0.35865594,0,0,0.35865594,458.57767,253.49106)">
+ <text
+ inkscape:label="value"
+ id="text5151-6"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan5149-7"
+ sodipodi:role="line">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path89-5"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="14.956363"
+ inkscape:label="-100" />
+ <path
+ inkscape:label="-10"
+ inkscape:transform-center-y="7.4781812"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path88-3"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="scale(1,-1)" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect85-5"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <path
+ inkscape:label="+100"
+ inkscape:transform-center-y="-14.956361"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path87-6"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path86-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-7.4781804"
+ inkscape:label="+10" />
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path91-9"
+ sodipodi:sides="4"
+ sodipodi:cx="80.740723"
+ sodipodi:cy="165.17262"
+ sodipodi:r1="57.015106"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.77793027"
+ sodipodi:arg2="1.5633284"
+ inkscape:flatsided="true"
+ inkscape:rounded="-0.65084865"
+ inkscape:randomized="0"
+ d="M 121.35644,205.1862 C 158.18649,167.80191 3.342862,168.95829 40.72715,205.78834 78.111437,242.61839 76.95506,87.774762 40.125008,125.15905 3.2949549,162.54334 158.13858,161.38696 120.7543,124.55691 83.370008,87.726855 84.526385,242.57048 121.35644,205.1862 Z"
+ inkscape:transform-center-y="-14.956361"
+ inkscape:label="=0" />
+ </g>
+ <text
+ inkscape:label="HMI:Display@paff"
+ id="text1457-1"
+ y="215.65211"
+ x="2632.9148"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="215.65211"
+ x="2632.9148"
+ id="tspan1455-2"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@paff"
+ id="g1505-7"
+ transform="matrix(0.28590269,0,0,0.28590269,2430.782,153.19299)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1461-0"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1459-9"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1463-3"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:2"
+ id="g1471-6"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1465-0"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1469-6"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1467-2"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1479-6"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1473-1"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1477-8"><tspan
+ sodipodi:role="line"
+ id="tspan1475-7"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1487-9"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1481-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1485-0"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1483-2"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1495-3"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1489-7"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1493-5"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1491-9"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1503-2"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1497-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1501-8"><tspan
+ sodipodi:role="line"
+ id="tspan1499-9"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="actual_label"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="2471.7039"
+ y="164.81787"
+ id="text1527-7"><tspan
+ style="stroke-width:0.63690436px"
+ sodipodi:role="line"
+ id="tspan1525-3"
+ x="2471.7039"
+ y="164.81787">HMI_LOCAL variables</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="2632.9148"
+ y="335.65213"
+ id="text1557-6"
+ inkscape:label="HMI:Display@.piff"><tspan
+ sodipodi:role="line"
+ id="tspan1555-1"
+ x="2632.9148"
+ y="335.65213"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ transform="matrix(0.28590269,0,0,0.28590269,2430.782,273.19298)"
+ id="g1605-2"
+ inkscape:label="HMI:Input@.piff"
+ style="stroke-width:2">
+ <text
+ inkscape:label="value"
+ id="text1561-9"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1559-3"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1563-1"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g1571-9"
+ style="stroke-width:2">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path1565-4"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text1569-7"><tspan
+ sodipodi:role="line"
+ id="tspan1567-8"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:1px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g1579-4"
+ style="stroke-width:2">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1573-5"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text1577-0"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan1575-3"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g1587-6"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1581-1"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text1585-0"><tspan
+ sodipodi:role="line"
+ id="tspan1583-6"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:1px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g1595-3"
+ style="stroke-width:2">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1589-2"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text1593-0"><tspan
+ sodipodi:role="line"
+ id="tspan1591-6"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:1px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g1603-1"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1597-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text1601-5"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan1599-4"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ id="text1609-7"
+ y="284.81787"
+ x="2471.7039"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="284.81787"
+ x="2471.7039"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px"
+ id="tspan1611-6">PAGE_LOCAL variables</tspan></text>
+ <text
+ inkscape:label="HMI:Display@paff"
+ id="text1457-5"
+ y="1208.4301"
+ x="276.83508"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px"
+ y="1208.4301"
+ x="276.83508"
+ id="tspan1455-6"
+ sodipodi:role="line">8888</tspan></text>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@paff"
+ id="g1505-9"
+ transform="matrix(0.28590269,0,0,0.28590269,74.702238,1145.9709)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text1461-3"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1459-7"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:2px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect1463-4"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:2"
+ id="g1471-5"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1465-2"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1469-5"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan1467-4"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1479-7"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1473-4"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text1477-4"><tspan
+ sodipodi:role="line"
+ id="tspan1475-3"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:1px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1487-0"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1481-7"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text1485-8"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan1483-6"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1495-8"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1489-8"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text1493-4"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1491-3"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:2"
+ id="g1503-1"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1497-4"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text1501-9"><tspan
+ sodipodi:role="line"
+ id="tspan1499-2"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:1px">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ inkscape:label="actual_label"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="115.62414"
+ y="1157.5958"
+ id="text1527-0"><tspan
+ style="stroke-width:0.63690436px"
+ sodipodi:role="line"
+ id="tspan1525-6"
+ x="115.62414"
+ y="1157.5958">HMI_LOCAL variables</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="276.83508"
+ y="1328.4301"
+ id="text1557-8"
+ inkscape:label="HMI:Display@.piff"><tspan
+ sodipodi:role="line"
+ id="tspan1555-9"
+ x="276.83508"
+ y="1328.4301"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ transform="matrix(0.28590269,0,0,0.28590269,74.702238,1265.9709)"
+ id="g1605-26"
+ inkscape:label="HMI:Input@.piff"
+ style="stroke-width:2">
+ <text
+ inkscape:label="value"
+ id="text1561-6"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan1559-4"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1563-9"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g1571-5"
+ style="stroke-width:2">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path1565-0"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text1569-4"><tspan
+ sodipodi:role="line"
+ id="tspan1567-87"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:1px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g1579-1"
+ style="stroke-width:2">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1573-7"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text1577-2"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan1575-7"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g1587-2"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1581-2"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text1585-6"><tspan
+ sodipodi:role="line"
+ id="tspan1583-1"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:1px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g1595-0"
+ style="stroke-width:2">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path1589-6"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text1593-1"><tspan
+ sodipodi:role="line"
+ id="tspan1591-5"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:1px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g1603-9"
+ style="stroke-width:2">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path1597-4"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text1601-9"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:1px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan1599-0"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <text
+ id="text1609-9"
+ y="1277.5958"
+ x="115.62414"
+ style="font-style:normal;font-weight:normal;font-size:25.4761734px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.63690436px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="actual_label"><tspan
+ y="1277.5958"
+ x="115.62414"
+ sodipodi:role="line"
+ style="stroke-width:0.63690436px"
+ id="tspan1611-1">PAGE_LOCAL variables</tspan></text>
+ <g
+ id="g2387"
+ inkscape:label="HMI:VarInit:42@level" />
+ <g
+ inkscape:label="HMI:VarInit:"a string"@paff"
+ id="g2389" />
+ <g
+ id="g825"
+ inkscape:label="HMI:VarInit:"a page string"@.piff" />
+ <g
+ inkscape:label="HMI:VarInit:50@.position"
+ id="g906" />
+ <g
+ id="g908"
+ inkscape:label="HMI:VarInit:100@.range" />
+ <g
+ inkscape:label="HMI:VarInit:7@.visibleAlarms"
+ id="g906-3" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g7994"
+ id="use8000"
+ transform="translate(-1380,800)"
+ width="100%"
+ height="100%"
+ inkscape:label="HMI:Page:AlarmPage" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-738.18359"
+ y="86.260696"
+ id="text2019"><tspan
+ sodipodi:role="line"
+ id="tspan2017"
+ x="-738.18359"
+ y="86.260696"
+ style="fill:#ffffff;stroke-width:1px">Alarm Page</tspan></text>
+ <g
+ id="g1289"
+ inkscape:label="HMI:JsonTable:/alarms@/ALARMNOTIFY@.range@.position@.visibleAlarms@.filter"
+ transform="matrix(0.5,0,0,0.5,-1757.3465,454.4367)">
+ <g
+ id="g5231"
+ inkscape:label="data">
+ <g
+ id="g1384"
+ inkscape:label="[0]"
+ transform="translate(52.326002,240.30067)">
+ <g
+ id="g901"
+ inkscape:label="# commented group"
+ transform="translate(419.716,-441.73566)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 528.62458,486.07049 23.69122,21.00809"
+ id="path903"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#use1297"
+ inkscape:transform-center-x="0.11123312"
+ inkscape:transform-center-y="2.2824109"
+ id="use1378"
+ width="100%"
+ height="100%"
+ transform="matrix(0.7609336,0,0,0.7609336,199.15217,164.3798)"
+ inkscape:label=".status onClick[acknowledge]=.alarmid" />
+ <use
+ transform="matrix(1.3019536,0,0,1.3019536,39.582906,238.73392)"
+ x="0"
+ y="0"
+ xlink:href="#use913"
+ id="use966"
+ width="100%"
+ height="100%"
+ inkscape:label=".status textContent=.time"
+ style="stroke-width:1.53615308" />
+ <use
+ inkscape:label=".status textContent=.text"
+ height="100%"
+ width="100%"
+ id="use1832"
+ xlink:href="#use913"
+ y="0"
+ x="0"
+ transform="matrix(2,0,0,2,85.95394,349.02524)" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 972.0318,65.34292 H 2780.6604"
+ id="path2238"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="# separation line" />
+ </g>
+ <use
+ inkscape:label="[1]"
+ transform="translate(0,-62.914773)"
+ height="100%"
+ width="100%"
+ id="use5200"
+ xlink:href="#g1384"
+ y="0"
+ x="0" />
+ <use
+ inkscape:label="[2]"
+ x="0"
+ y="0"
+ xlink:href="#g1384"
+ id="use5202"
+ width="100%"
+ height="100%"
+ transform="translate(0,-125.82955)" />
+ <use
+ inkscape:label="[3]"
+ transform="translate(0,-188.74432)"
+ height="100%"
+ width="100%"
+ id="use5204"
+ xlink:href="#g1384"
+ y="0"
+ x="0" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g1384"
+ id="use2176"
+ width="100%"
+ height="100%"
+ transform="translate(0,-251.65909)"
+ inkscape:label="[4]" />
+ <use
+ inkscape:label="[5]"
+ transform="translate(0,-314.57387)"
+ height="100%"
+ width="100%"
+ id="use2178"
+ xlink:href="#g1384"
+ y="0"
+ x="0" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g1384"
+ id="use2180"
+ width="100%"
+ height="100%"
+ transform="translate(0,-377.48864)"
+ inkscape:label="[6]" />
+ </g>
+ </g>
+ <g
+ id="g1332"
+ inkscape:label="polygons"
+ transform="translate(-1556.6506,114.93627)">
+ <path
+ inkscape:transform-center-y="2.9995242"
+ inkscape:transform-center-x="0.14620371"
+ d="m 1081.9632,-246.81598 -27.9274,5.51725 -27.9273,5.51724 9.1856,-26.94439 9.1856,-26.94439 18.7417,21.42715 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="1.3757507"
+ sodipodi:arg1="0.32855317"
+ sodipodi:r2="16.43548"
+ sodipodi:r1="32.87096"
+ sodipodi:cy="-257.42258"
+ sodipodi:cx="1050.8505"
+ sodipodi:sides="3"
+ id="path1298"
+ style="fill:#8fbc8f;fill-opacity:1;stroke:#ff0000"
+ sodipodi:type="star"
+ inkscape:label="three" />
+ <path
+ sodipodi:type="star"
+ style="fill:#ff8c00;fill-opacity:1;stroke:#ff0000"
+ id="path1308"
+ sodipodi:sides="4"
+ sodipodi:cx="1110.8505"
+ sodipodi:cy="-257.42258"
+ sodipodi:r1="32.87096"
+ sodipodi:r2="16.43548"
+ sodipodi:arg1="0.32855317"
+ sodipodi:arg2="1.1139513"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1141.9632,-246.81598 -23.8627,4.1434 -17.8566,16.3627 -4.1434,-23.8627 -16.3627,-17.8566 23.8627,-4.1434 17.8566,-16.3627 4.1434,23.8627 z"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ inkscape:label="four" />
+ <path
+ inkscape:transform-center-y="2.9995242"
+ inkscape:transform-center-x="0.14620371"
+ d="m 1201.9632,-246.81598 -21.6446,2.82766 -9.9413,19.4333 -9.3778,-19.7114 -21.5541,-3.44949 15.8487,-15.00997 -3.3799,-21.5652 19.1728,10.43473 19.4653,-9.87854 -3.9993,21.45898 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="0.9568717"
+ sodipodi:arg1="0.32855317"
+ sodipodi:r2="16.43548"
+ sodipodi:r1="32.87096"
+ sodipodi:cy="-257.42258"
+ sodipodi:cx="1170.8505"
+ sodipodi:sides="5"
+ id="path1310"
+ style="fill:#bc8f8f;fill-opacity:1;stroke:#ff0000"
+ sodipodi:type="star"
+ inkscape:label="five" />
+ <path
+ sodipodi:type="star"
+ style="fill:#f0f8ff;fill-opacity:1;stroke:#ff0000"
+ id="path1312"
+ sodipodi:sides="6"
+ sodipodi:cx="1230.8505"
+ sodipodi:cy="-257.42258"
+ sodipodi:r1="32.87096"
+ sodipodi:r2="16.43548"
+ sodipodi:arg1="0.32855317"
+ sodipodi:arg2="0.85215195"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1261.9632,-246.81598 -20.2922,1.76437 -4.4498,19.87672 -11.674,-16.69134 -19.4387,6.08474 8.6181,-18.45571 -14.9888,-13.79198 20.2921,-1.76436 4.4498,-19.87673 11.6741,16.69134 19.4386,-6.08473 -8.6181,18.4557 z"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ inkscape:label="six" />
+ </g>
+ <g
+ inkscape:label="HMI:List"
+ id="g1311"
+ transform="translate(-1396.6506,94.93627)">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1298"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1293"
+ width="100%"
+ height="100%"
+ transform="translate(-69.76703,100)"
+ style="display:inline"
+ inkscape:label="ack" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1308"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1295"
+ width="100%"
+ height="100%"
+ transform="translate(-126.48474,100)"
+ inkscape:label="alarm" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1310"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1297"
+ width="100%"
+ height="100%"
+ transform="translate(-186.33351,100)"
+ inkscape:label="active" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path1312"
+ inkscape:transform-center-x="0.14620371"
+ inkscape:transform-center-y="2.9995242"
+ id="use1299"
+ width="100%"
+ height="100%"
+ transform="translate(-246.4848,100)"
+ inkscape:label="disabled" />
+ </g>
+ <g
+ transform="matrix(0.33436432,0,0,0.33436432,-584.21063,278.8185)"
+ inkscape:label="HMI:Input@/ALARMNOTIFY"
+ id="g5222"
+ style="stroke-width:0.75594342">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text5208"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan5206"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:0.75594342px">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path5212"
+ sodipodi:sides="3"
+ sodipodi:cx="608.70374"
+ sodipodi:cy="-209.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:transform-center-y="14.956362"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect5214"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-14.95636"
+ d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="112.17263"
+ sodipodi:cx="608.70374"
+ sodipodi:sides="3"
+ id="path5218"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <g
+ id="g1766"
+ inkscape:label="HMI:Slider@.position@.range@.alarmVisible">
+ <g
+ transform="matrix(0.620824,0,0,0.5,-963.61047,260.72872)"
+ id="g1752"
+ inkscape:label="HMI:Input@.position">
+ <path
+ inkscape:label="+1"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.55573034px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 1175.2115,143.25263 34.1278,56.73732 h -68.2556 z"
+ id="path1266"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:label="-1"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path1268"
+ d="m 1175.2115,851.99803 34.1278,-54.90445 h -68.2556 z"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.51411843px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </g>
+ <path
+ style="opacity:0;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00058591px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M -234.01102,648.56465 V 371.89445"
+ id="path1772"
+ inkscape:connector-curvature="0"
+ inkscape:label="range" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.30952382;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.03627348px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1264-3"
+ width="42.374725"
+ height="276.64423"
+ x="-255.19838"
+ y="371.91068"
+ rx="7.6034913"
+ ry="6.8822322"
+ inkscape:label="background" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11429262px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect1264"
+ width="42.374725"
+ height="82.841492"
+ x="-255.19838"
+ y="565.71338"
+ rx="7.6034913"
+ ry="7"
+ inkscape:label="handle" />
+ </g>
+ <g
+ id="g893"
+ inkscape:label="textstyles"
+ transform="translate(-1566.6506,56.936266)">
+ <text
+ inkscape:label="red"
+ id="text1382-7"
+ y="-171.54395"
+ x="1298.9102"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ y="-171.54395"
+ x="1298.9102"
+ id="tspan1380-5"
+ sodipodi:role="line"
+ style="stroke-width:0.5">value</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1298.9102"
+ y="-191.54395"
+ id="text875"
+ inkscape:label="black"><tspan
+ style="fill:#000000;stroke-width:0.5"
+ sodipodi:role="line"
+ id="tspan873"
+ x="1298.9102"
+ y="-191.54395">value</tspan></text>
+ <text
+ inkscape:label="green"
+ id="text879"
+ y="-211.54395"
+ x="1298.9102"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ y="-211.54395"
+ x="1298.9102"
+ id="tspan877"
+ sodipodi:role="line"
+ style="fill:#00ff00;stroke-width:0.5">value</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1298.9102"
+ y="-231.54395"
+ id="text883"
+ inkscape:label="gray"><tspan
+ style="fill:#999999;stroke-width:0.5"
+ sodipodi:role="line"
+ id="tspan881"
+ x="1298.9102"
+ y="-231.54395">value</tspan></text>
+ </g>
+ <g
+ id="g907"
+ inkscape:label="HMI:TextStyleList"
+ transform="translate(-990.65059,102.93627)">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text879"
+ id="use913"
+ width="100%"
+ height="100%"
+ transform="translate(-573,60.999998)"
+ inkscape:label="active" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text875"
+ id="use911"
+ width="100%"
+ height="100%"
+ transform="translate(-573,40.999998)"
+ inkscape:label="ack" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text1382-7"
+ id="use909"
+ width="100%"
+ height="100%"
+ transform="translate(-573,20.999998)"
+ inkscape:label="alarm" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text883"
+ id="use915"
+ width="100%"
+ height="100%"
+ transform="translate(-573,80.999998)"
+ inkscape:label="disabled" />
+ </g>
+ <g
+ transform="matrix(0.33436432,0,0,0.33436432,-1048.7703,278.8185)"
+ inkscape:label="HMI:Input@.range"
+ id="g5222-3"
+ style="stroke-width:0.75594342">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text5208-6"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan5206-7"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:0.75594342px">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path5212-5"
+ sodipodi:sides="3"
+ sodipodi:cx="620.66675"
+ sodipodi:cy="-209.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 672.4771,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:transform-center-y="14.956362"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect5214-3"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-14.95636"
+ d="m 672.4771,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="112.17263"
+ sodipodi:cx="620.66675"
+ sodipodi:sides="3"
+ id="path5218-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <g
+ transform="matrix(0.33436432,0,0,0.33436432,-816.49047,278.8185)"
+ inkscape:label="HMI:Input@.position"
+ id="g5222-6"
+ style="stroke-width:0.75594342">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text5208-2"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan5206-9"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:0.75594342px">8888</tspan></text>
+ <path
+ transform="scale(1,-1)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path5212-1"
+ sodipodi:sides="3"
+ sodipodi:cx="608.70374"
+ sodipodi:cy="-209.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 660.51409,-179.34718 -103.62071,0 51.81036,-89.73817 z"
+ inkscape:transform-center-y="14.956362"
+ inkscape:label="-1" />
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect5214-2"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="+1"
+ inkscape:transform-center-y="-14.95636"
+ d="m 660.51409,142.08535 -103.62071,0 51.81036,-89.738163 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="112.17263"
+ sodipodi:cx="608.70374"
+ sodipodi:sides="3"
+ id="path5218-7"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-935.5838"
+ y="291.8042"
+ id="text887"><tspan
+ sodipodi:role="line"
+ id="tspan885"
+ x="-935.5838"
+ y="291.8042"
+ style="fill:#ffffff;stroke-width:1px">range</tspan></text>
+ <text
+ id="text891"
+ y="291.8042"
+ x="-702.87115"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="291.8042"
+ x="-702.87115"
+ id="tspan889"
+ sodipodi:role="line">position</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-471.33417"
+ y="291.8042"
+ id="text895"><tspan
+ sodipodi:role="line"
+ id="tspan893"
+ x="-471.33417"
+ y="291.8042"
+ style="fill:#ffffff;stroke-width:1px">notify</tspan></text>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@/ALARMTEXT"
+ id="g1442-3"
+ transform="matrix(0.5,0,0,0.5,-915.0529,113.05833)">
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="77.265099"
+ x="-648.04266"
+ height="179.83517"
+ width="1195.5988"
+ id="rect1400-5"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ ry="36.786537" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="545.95312"
+ y="218.24219"
+ id="text1398-6"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1396-7"
+ x="545.95312"
+ y="218.24219"
+ style="text-align:end;text-anchor:end;fill:#0e0e0e;fill-opacity:1;stroke-width:2px">8888</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.04184687"
+ inkscape:label="HMI:Input@/SENDALARM"
+ id="g953"
+ transform="translate(-1386.3329,-450.57041)">
+ <g
+ id="g1839"
+ inkscape:label="+1">
+ <g
+ id="g945"
+ inkscape:label="bg"
+ style="stroke-width:1.04184687">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5.20923424;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect943"
+ width="245.44583"
+ height="95.723877"
+ x="971.96545"
+ y="594.82263"
+ ry="23.177595"
+ inkscape:label="button"
+ rx="26.820074" />
+ </g>
+ <g
+ id="g951"
+ inkscape:label="text"
+ style="stroke-width:1.04184687">
+ <text
+ inkscape:label="setting_jmp"
+ id="text949"
+ y="656.98151"
+ x="1090.7626"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.04184675px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.04184675px"
+ y="656.98151"
+ x="1090.7626"
+ id="tspan947"
+ sodipodi:role="line">trigger</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ style="stroke-width:2"
+ inkscape:label="HMI:Input@/ALARMSTATUS"
+ id="g1887"
+ transform="matrix(0.28590269,0,0,0.28590269,-631.94615,129.07897)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:148.39013672px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="329.13501"
+ y="214.01605"
+ id="text1843"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan1841"
+ x="329.13501"
+ y="214.01605"
+ style="text-align:center;text-anchor:middle;stroke-width:1.99999988px">8888</tspan></text>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1853"
+ inkscape:label="="ack""
+ transform="matrix(1.8285648,0,0,1.8285648,-936.17681,115.40643)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1851"
+ y="112.62867"
+ x="738.57678"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.54687697px"
+ y="112.62867"
+ x="738.57678"
+ id="tspan1849"
+ sodipodi:role="line">ack</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1861"
+ inkscape:label="="disabled""
+ transform="matrix(1.8285648,0,0,1.8285648,-1012.4359,109.57379)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847-7"
+ d="m 738.52607,148.37593 -80.6293,0.60214 -0.6021,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="656.177"
+ y="115.81841"
+ id="text1859"><tspan
+ sodipodi:role="line"
+ id="tspan1857"
+ x="656.177"
+ y="115.81841"
+ style="stroke-width:0.54687697px">disabled</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1869"
+ inkscape:label="="active""
+ transform="matrix(1.8285648,0,0,1.8285648,-998.18055,84.666267)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847-5"
+ d="m 630.35651,161.99728 -80.6293,0.60214 -0.6021,-80.629287 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1867"
+ y="129.43976"
+ x="559.26227"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.54687697px"
+ y="129.43976"
+ x="559.26227"
+ id="tspan1865"
+ sodipodi:role="line">active</tspan></text>
+ </g>
+ <g
+ style="stroke-width:1.09375393"
+ id="g1877"
+ inkscape:label="="alarm""
+ transform="matrix(1.8285648,0,0,1.8285648,-1114.212,118.29284)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path1847-3"
+ d="m 994.91832,143.60768 -80.62931,0.60214 -0.6021,-80.629285 80.62931,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.46877003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text1875"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.54687697px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.54687697px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan1873"
+ sodipodi:role="line">alarm</tspan></text>
+ </g>
+ </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:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="-926.47461"
+ y="134.36742"
+ id="text2019-9"><tspan
+ sodipodi:role="line"
+ id="tspan2017-2"
+ x="-926.47461"
+ y="134.36742"
+ style="fill:#ffffff;stroke-width:1px">Alarm Text</tspan></text>
+ <text
+ id="text2174"
+ y="134.36742"
+ x="-546.47461"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="134.36742"
+ x="-546.47461"
+ id="tspan2172"
+ sodipodi:role="line">Status</tspan></text>
+ <g
+ transform="matrix(0.57180538,0,0,0.57180538,326.35945,-231.48695)"
+ inkscape:label="HMI:Jump:AlarmPage"
+ id="g2198">
+ <g
+ inkscape:label="button"
+ id="g2190">
+ <rect
+ inkscape:label="button"
+ ry="35.579063"
+ y="594.82263"
+ x="971.96545"
+ height="95.723877"
+ width="245.44583"
+ id="rect2188"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ rx="35.579063" />
+ </g>
+ <g
+ inkscape:label="text"
+ id="g2196">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="656.98151"
+ id="text2194"
+ inkscape:label="setting_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan2192"
+ x="1090.7626"
+ y="656.98151"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Alarms</tspan></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:45.74443054px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.28590268px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="628.18188"
+ y="242.50345"
+ id="text889"
+ inkscape:label="HMI:Display@/PUMP0/FLOATING"><tspan
+ sodipodi:role="line"
+ id="tspan887"
+ x="628.18188"
+ y="242.50345"
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.28590268px">8888</tspan></text>
+ <g
+ style="stroke-width:0.75594342"
+ id="g900"
+ inkscape:label="HMI:Input@.filter"
+ transform="matrix(0.33436432,0,0,0.33436432,-1288.7703,278.8185)">
+ <text
+ inkscape:label="value"
+ id="text892"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.75594342px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.75594342px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan890"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.77971721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect896"
+ width="615.05096"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ </g>
+ <text
+ id="text904"
+ y="291.8042"
+ x="-1175.5837"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.45700645px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;stroke-width:1px"
+ y="291.8042"
+ x="-1175.5837"
+ id="tspan902"
+ sodipodi:role="line">filter</tspan></text>
+ <g
+ id="g909"
+ inkscape:label="HMI:VarInit:""@.filter" />
+ <g
+ transform="matrix(0.14295135,0,0,0.14295135,449.21833,37.615184)"
+ id="g4646"
+ inkscape:label="HMI:Input@paff"
+ style="stroke-width:4">
+ <text
+ inkscape:label="value"
+ id="text4602"
+ y="218.24219"
+ x="136.32812"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:4px"
+ y="218.24219"
+ x="136.32812"
+ id="tspan4600"
+ sodipodi:role="line">8888</tspan></text>
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4604"
+ width="407.7037"
+ height="128"
+ x="139.85185"
+ y="95.40741"
+ onclick=""
+ inkscape:label="edit" />
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="+"dhu""
+ id="g4612"
+ style="stroke-width:4">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:transform-center-y="-14.956361"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ id="path4606"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="733.58197"
+ y="111.05016"
+ id="text4610"><tspan
+ sodipodi:role="line"
+ id="tspan4608"
+ x="733.58197"
+ y="111.05016"
+ style="stroke-width:2px">dhu</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="plop""
+ id="g4620"
+ style="stroke-width:4">
+ <path
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4614"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-184.98808"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.6154501e-05"
+ inkscape:transform-center-x="14.956371" />
+ <text
+ id="text4618"
+ y="111.05016"
+ x="633.09552"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="633.09552"
+ id="tspan4616"
+ sodipodi:role="line">plop</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhoo""
+ id="g4628"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-5.9989963e-06"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="-216.2599"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4622"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="rotate(-90,746.45698,-44.543641)"
+ inkscape:transform-center-x="14.956364" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="537.25018"
+ y="111.05016"
+ id="text4626"><tspan
+ sodipodi:role="line"
+ id="tspan4624"
+ x="537.25018"
+ y="111.05016"
+ style="stroke-width:2px">mhoo</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="yodl""
+ id="g4636"
+ style="stroke-width:4">
+ <path
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4630"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="105.17262"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:transform-center-y="-5.5023185e-06"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-x="-14.956365" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="925.82605"
+ y="111.05016"
+ id="text4634"><tspan
+ sodipodi:role="line"
+ id="tspan4632"
+ x="925.82605"
+ y="111.05016"
+ style="stroke-width:2px">yodl</tspan></text>
+ </g>
+ <g
+ transform="translate(-416.52022,170.47452)"
+ inkscape:label="="mhe""
+ id="g4644"
+ style="stroke-width:4">
+ <path
+ inkscape:transform-center-y="-3.3040441e-05"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="136.44444"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4638"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ inkscape:transform-center-x="-14.956349" />
+ <text
+ id="text4642"
+ y="111.05016"
+ x="842.71497"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="842.71497"
+ id="tspan4640"
+ sodipodi:role="line">mhe</tspan></text>
+ </g>
+ </g>
+ <g
+ style="stroke-width:4"
+ inkscape:label="HMI:Input@.piff"
+ id="g4694"
+ transform="matrix(0.14295135,0,0,0.14295135,449.21833,97.61518)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:160px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.32812"
+ y="218.24219"
+ id="text4650"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan4648"
+ x="136.32812"
+ y="218.24219"
+ style="stroke-width:4px">8888</tspan></text>
+ <rect
+ inkscape:label="edit"
+ onclick=""
+ y="95.40741"
+ x="139.85185"
+ height="128"
+ width="407.7037"
+ id="rect4652"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <g
+ style="stroke-width:4"
+ id="g4660"
+ inkscape:label="+"dhu""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4654"
+ d="m 797.19546,145.18619 -80.62929,0.60214 -0.60215,-80.629288 80.6293,-0.60214 z"
+ inkscape:transform-center-y="-14.956361"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <text
+ id="text4658"
+ y="111.05016"
+ x="733.58197"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="733.58197"
+ id="tspan4656"
+ sodipodi:role="line">dhu</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4668"
+ inkscape:label="="plop""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956371"
+ inkscape:transform-center-y="-3.6154501e-05"
+ d="m 622.6459,-170.03172 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="14.956361"
+ sodipodi:r1="29.912722"
+ sodipodi:cy="-184.98808"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4662"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star"
+ transform="matrix(0,-2.0000001,1.9999999,0,1034.195,1298.6541)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="633.09552"
+ y="111.05016"
+ id="text4666"><tspan
+ sodipodi:role="line"
+ id="tspan4664"
+ x="633.09552"
+ y="111.05016"
+ style="stroke-width:2px">plop</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4676"
+ inkscape:label="="mhoo""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="14.956364"
+ transform="rotate(-90,746.45698,-44.543641)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4670"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="-216.2599"
+ sodipodi:r1="59.825443"
+ sodipodi:r2="29.912722"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 648.55108,-186.34718 -103.62071,0 51.81035,-89.73817 z"
+ inkscape:transform-center-y="-5.9989963e-06" />
+ <text
+ id="text4674"
+ y="111.05016"
+ x="537.25018"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="537.25018"
+ id="tspan4672"
+ sodipodi:role="line">mhoo</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4684"
+ inkscape:label="="yodl""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956365"
+ transform="matrix(0,-1,-1,0,1043.9134,701.91334)"
+ inkscape:transform-center-y="-5.5023185e-06"
+ d="m 648.55108,135.08534 -103.62071,0 51.81035,-89.738161 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="29.912722"
+ sodipodi:r1="59.825443"
+ sodipodi:cy="105.17262"
+ sodipodi:cx="596.74072"
+ sodipodi:sides="3"
+ id="path4678"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ sodipodi:type="star" />
+ <text
+ id="text4682"
+ y="111.05016"
+ x="925.82605"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="stroke-width:2px"
+ y="111.05016"
+ x="925.82605"
+ id="tspan4680"
+ sodipodi:role="line">yodl</tspan></text>
+ </g>
+ <g
+ style="stroke-width:4"
+ id="g4692"
+ inkscape:label="="mhe""
+ transform="translate(-416.52022,170.47452)">
+ <path
+ inkscape:transform-center-x="-14.956349"
+ transform="matrix(0,-2.0000001,-1.9999999,0,1122.1514,1298.6541)"
+ sodipodi:type="star"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path4686"
+ sodipodi:sides="3"
+ sodipodi:cx="596.74072"
+ sodipodi:cy="136.44444"
+ sodipodi:r1="29.912722"
+ sodipodi:r2="14.956361"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="true"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 622.6459,151.4008 -51.81035,0 25.90517,-44.86908 z"
+ inkscape:transform-center-y="-3.3040441e-05" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="842.71497"
+ y="111.05016"
+ id="text4690"><tspan
+ sodipodi:role="line"
+ id="tspan4688"
+ x="842.71497"
+ y="111.05016"
+ style="stroke-width:2px">mhe</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g7994"
+ inkscape:label="Gray Page Template">
+ <rect
+ y="-800"
+ x="0"
+ height="720"
+ width="1280"
+ id="rect4270"
+ style="color:#000000;fill:#4d4d4d" />
+ <g
+ id="g4282"
+ inkscape:label="HMI:Jump:Home"
+ transform="translate(-10.6526,-2134.1633)">
+ <g
+ id="g4274"
+ inkscape:label="button">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#ff6600;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 1217.4113,1410.4016 -22,24.5657 c -10.7925,12.0511 6.1317,35.5791 -13.5791,35.5791 h -174.2877 c -19.71078,0 -2.7866,-23.528 -13.57905,-35.5791 l -22,-24.5657 127.74845,-48.4334 z"
+ id="path4272"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssccc" />
+ </g>
+ <g
+ id="g4280"
+ inkscape:label="text">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1090.7626"
+ y="1436.9814"
+ id="text4278"
+ inkscape:label="home_jmp"><tspan
+ sodipodi:role="line"
+ id="tspan4276"
+ x="1090.7626"
+ y="1436.9814"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.99999994px">Home</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g3435"
+ inkscape:label="Meter Page"
+ transform="translate(2680,780)">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g9808"
+ id="use9820"
+ width="100%"
+ height="100%"
+ transform="translate(0,-780)"
+ inkscape:label="HMI:Page:Meters" />
+ <g
+ id="g7998"
+ transform="matrix(2.1611542,0,0,2.1611542,1429.2874,1051.3886)"
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker19820);marker-end:url(#marker25117);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path7978"
+ sodipodi:type="arc"
+ sodipodi:cx="128.02208"
+ sodipodi:cy="2.2017097"
+ sodipodi:rx="64.411957"
+ sodipodi:ry="64.411957"
+ sodipodi:start="3.1415927"
+ sodipodi:end="4.712389"
+ d="M 63.610123,2.2017068 A 64.411957,64.411957 0 0 1 128.02208,-62.210247"
+ sodipodi:open="true"
+ inkscape:label="range" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#DotM);marker-end:url(#marker26099)"
+ d="M 130.96206,4.0725977 79.111776,-41.363223"
+ id="path7980"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="needle" />
+ <text
+ inkscape:label="min"
+ id="text7984"
+ y="4.9187088"
+ x="49.132977"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px"
+ y="4.9187088"
+ x="49.132977"
+ id="tspan7982"
+ sodipodi:role="line">0</tspan></text>
+ <text
+ inkscape:label="max"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="127.48073"
+ y="-68.889908"
+ id="text7988"><tspan
+ sodipodi:role="line"
+ id="tspan7986"
+ x="127.48073"
+ y="-68.889908"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px">10000</tspan></text>
+ <text
+ inkscape:label="value"
+ id="text7992"
+ y="-52.465355"
+ x="67.258514"
+ style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ id="tspan7990"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-52.465355"
+ x="67.258514"
+ sodipodi:role="line">[value]</tspan></text>
+ </g>
+ <g
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH"
+ transform="matrix(4.1320069,0,0,4.1320069,1099.2525,1427.5173)"
+ id="g8050">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#3ee800;stroke-width:0.72603947;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:url(#marker28436);marker-end:url(#marker28710);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 113.38908,2.2017068 V -62.210247"
+ id="path8030"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="range" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path8032"
+ d="M 113.38908,4.0725977 V -42.849195"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff6600;stroke-width:0.48402631;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:15.49905491;stroke-opacity:1;marker-start:url(#marker27514);marker-end:url(#marker27764)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="115.07632"
+ y="11.762599"
+ id="text8036"
+ inkscape:label="min"><tspan
+ sodipodi:role="line"
+ id="tspan8034"
+ x="115.07632"
+ y="11.762599"
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:0.26458332px">0</tspan></text>
+ <text
+ id="text8040"
+ y="-64.195457"
+ x="113.27539"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"
+ inkscape:label="max"><tspan
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.26458332px"
+ y="-64.195457"
+ x="113.27539"
+ id="tspan8038"
+ sodipodi:role="line">10000</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.29166651px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.13229166px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="128.20073"
+ y="-42.97702"
+ id="text8044"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ x="128.20073"
+ y="-42.97702"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:0.13229166px"
+ id="tspan8042">[value]</tspan></text>
+ </g>
+ <g
+ transform="translate(228.04545,983.55108)"
+ inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH"
+ id="g12171"
+ style="stroke-width:0.19249482">
+ <text
+ inkscape:label="value"
+ clip-path="none"
+ style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788"
+ id="text30068"
+ x="2087.8633"
+ y="189.43953">
+ <tspan
+ x="2087.8633"
+ sodipodi:role="line"
+ id="tspan30066"
+ style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788"
+ y="189.43953">5,150</tspan>
+ </text>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g817"
+ id="use1727-4"
+ width="100%"
+ height="100%"
+ transform="translate(127.87468,-983.55108)"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00adef;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ inkscape:label="meter_template"
+ transform="matrix(10.390029,0,0,10.38975,-19578.073,-843.55094)"
+ id="g817"
+ style="stroke-width:0.19249482">
+ <path
+ inkscape:connector-curvature="0"
+ id="path12105"
+ d="M 2072.956,223.66129 V 195.4613"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#7b7979;stroke-width:1.92494833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:label="outline"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#e9e9e9;stroke-width:1.53995872;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 2072.956,223.66129 V 195.4613"
+ id="path12107"
+ inkscape:connector-curvature="0"
+ inkscape:label="range"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="stroke-width:1.53995872;stroke-miterlimit:4;stroke-dasharray:none"
+ inkscape:label="needle"
+ d="M 2072.956,223.66129 V 209.9227"
+ id="path12109"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <g
+ transform="translate(138.03504,983.55108)"
+ style="stroke-width:0.19249482"
+ id="g8181"
+ inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH">
+ <text
+ y="189.43953"
+ x="2087.8633"
+ id="text8177"
+ style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788"
+ clip-path="none"
+ inkscape:label="value">
+ <tspan
+ y="189.43953"
+ style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788"
+ id="tspan8175"
+ sodipodi:role="line"
+ x="2087.8633">5,150</tspan>
+ </text>
+ <use
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#efd200;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="translate(127.87468,-983.55108)"
+ height="100%"
+ width="100%"
+ id="use8179"
+ xlink:href="#g817"
+ y="0"
+ x="0" />
+ </g>
+ <g
+ transform="translate(183.04025,983.55108)"
+ inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH"
+ id="g8189"
+ style="stroke-width:0.19249482">
+ <text
+ inkscape:label="value"
+ clip-path="none"
+ style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788"
+ id="text8185"
+ x="2087.8633"
+ y="189.43953">
+ <tspan
+ x="2087.8633"
+ sodipodi:role="line"
+ id="tspan8183"
+ style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788"
+ y="189.43953">5,150</tspan>
+ </text>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g817"
+ id="use8187"
+ width="100%"
+ height="100%"
+ transform="translate(127.87468,-983.55108)"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ef0000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ transform="translate(273.05066,983.55108)"
+ style="stroke-width:0.19249482"
+ id="g8197"
+ inkscape:label="HMI:Meter:20:80@/PUMP0/SLOTH">
+ <text
+ y="189.43953"
+ x="2087.8633"
+ id="text8193"
+ style="font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.66666698px;font-family:'Univers LT CYR 55';-inkscape-font-specification:UniversLTCYR-55Roman;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#4f4c4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.06790788"
+ clip-path="none"
+ inkscape:label="value">
+ <tspan
+ y="189.43953"
+ style="font-size:10.66666698px;text-align:center;text-anchor:middle;stroke-width:0.06790788"
+ id="tspan8191"
+ sodipodi:role="line"
+ x="2087.8633">5,150</tspan>
+ </text>
+ <use
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.192;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="translate(127.87468,-983.55108)"
+ height="100%"
+ width="100%"
+ id="use8195"
+ xlink:href="#g817"
+ y="0"
+ x="0" />
+ </g>
+ <text
+ id="text8201"
+ y="830.39062"
+ x="1512.8077"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="830.39062"
+ x="1512.8077"
+ id="tspan8199"
+ sodipodi:role="line">HMI:Meter:[min:max]@path</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path8203"
+ d="m 2012.6196,1364.7036 h 150.322"
+ style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)" />
+ <text
+ id="text8753"
+ y="1309.4535"
+ x="2020.9539"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ id="tspan8755"
+ y="1309.4535"
+ x="2020.9539"
+ sodipodi:role="line">clone +</tspan><tspan
+ style="stroke-width:0.5"
+ id="tspan8765"
+ y="1334.4535"
+ x="2020.9539"
+ sodipodi:role="line">stroke color</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1764.9539"
+ y="1203.4535"
+ id="text11347"><tspan
+ id="tspan11354"
+ sodipodi:role="line"
+ x="1764.9539"
+ y="1203.4535"
+ style="font-size:16px;stroke-width:0.5">template </tspan><tspan
+ id="tspan26649"
+ sodipodi:role="line"
+ x="1764.9539"
+ y="1223.4535"
+ style="font-size:16px;stroke-width:0.5">(usually out of page)</tspan><tspan
+ id="tspan11356"
+ sodipodi:role="line"
+ x="1764.9539"
+ y="1243.4535"
+ style="font-size:16px;stroke-width:0.5">needle has undefined</tspan><tspan
+ id="tspan11358"
+ sodipodi:role="line"
+ x="1764.9539"
+ y="1263.4535"
+ style="font-size:16px;stroke-width:0.5">stroke paint</tspan></text>
+ <g
+ inkscape:label="VoltmeterAndAmmeter"
+ id="g18566"
+ transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)">
+ <g
+ id="g24836">
+ <rect
+ x="815.72998"
+ y="-352.34"
+ width="2055.1001"
+ height="2055.1001"
+ ry="129.3"
+ rx="129.3"
+ style="fill:#000000"
+ id="rect5399" />
+ <rect
+ x="862.09003"
+ y="-305.98001"
+ width="1962.4"
+ height="1962.4"
+ ry="90.727997"
+ rx="90.727997"
+ style="fill:#333333"
+ id="rect5401" />
+ <rect
+ x="888.34998"
+ y="-279.72"
+ width="1909.9"
+ height="1909.9"
+ ry="70.525002"
+ rx="70.525002"
+ style="fill:#000000"
+ id="rect5403" />
+ <rect
+ x="2621.8999"
+ y="802.65002"
+ width="97.857002"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect5405" />
+ <path
+ d="m 1140.5,-149.32 c -67.467,0 -121.78,54.312 -121.78,121.78 v 1405.5 c 0,67.467 54.312,121.78 121.78,121.78 h 680.32 c 29.662,0 47.115,-4.0298 64.849,-21.729 l 755.79,-754.27 c 23.851,-23.803 26.352,-40.896 26.352,-72.473 v -678.83 c 0,-67.467 -54.312,-121.78 -121.78,-121.78 z"
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ sodipodi:nodetypes="sssssssssss"
+ id="path5407" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#000000"
+ d="M 2038.4,1279.8 2476.97,851.23 H 2032.68 Z"
+ id="path5409" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#e6e6e6"
+ d="m 2205.5,1048.4 -48.571,-54.286 33.571,-33.571 54.286,54.286"
+ id="path5413" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ sodipodi:nodetypes="ccccccccccc"
+ d="m 2114.8,1205.5 -37.143,-36.429 11.428,-12.857 30.714,6.4286 54.286,-54.286 c -6.7697,-14.828 -2.7536,-22.791 11.429,-24.286 -18.934,-68.674 49.856,-114.43 102.86,-90 l 60.714,-60 -12.143,-30 11.429,-10 41.428,35"
+ id="path5415" />
+ <path
+ d="m 1156,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.03,-746.03 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 h -1374.5 z m 1096.6,1000.2 h 189.31 l -387.34,382.16 v -178.94 c 0,-107.21 90.807,-203.22 198.03,-203.22 z"
+ inkscape:connector-curvature="0"
+ style="fill:#e1e1d1"
+ id="path5417" />
+ <path
+ transform="matrix(1.037,0,0,1.037,1984.9,-1799.2)"
+ d="m -823.78,1579.8 c -65.979,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,51.168 31.947,94.61 77.062,111.53 -1.8213,-8.3056 -2.7812,-16.944 -2.7812,-25.813 v -1374.5 c 0,-65.979 53.114,-119.09 119.09,-119.09 h 1374.5 c 14.812,0 28.972,2.6957 42.031,7.5938 -11.729,-53.488 -59.201,-93.312 -116.31,-93.312 h -1374.5 z"
+ inkscape:connector-curvature="0"
+ style="opacity:0.85773998;fill:#000000;filter:url(#filter5708)"
+ id="path5647" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2252.1,-20.888 a 3.5004,3.5004 0 0 0 -3.0938,3.5312 v 120 a 3.5004,3.5004 0 1 0 7,0 v -120 A 3.5004,3.5004 0 0 0 2252.1,-20.888 Z"
+ id="path5419" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1190.6,836.17 a 3.5004,3.5004 0 0 0 -0.4062,6.9375 l 117.28,25.312 a 3.5004,3.5004 0 1 0 1.4688,-6.8438 l -117.28,-25.312 a 3.5004,3.5004 0 0 0 -1.0625,-0.094 z"
+ id="path5421" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1441.2,342.92 a 3.5004,3.5004 0 0 0 -2.0625,6.1562 l 89.594,79.781 a 3.5004,3.5004 0 1 0 4.6562,-5.2188 l -89.594,-79.812 a 3.5004,3.5004 0 0 0 -2.5938,-0.9062 z"
+ id="path5423" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1876.6,46.143 a 3.5004,3.5004 0 0 0 -3.0313,4.75 l 41.5,112.59 a 3.5004,3.5004 0 1 0 6.5625,-2.4063 l -41.5,-112.59 A 3.5004,3.5004 0 0 0 1876.6,46.1429 Z"
+ id="path5425" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2192.8,-19.263 a 3.5004,3.5004 0 0 0 -3.25,3.75 l 3.0312,55.312 a 3.5050187,3.5050187 0 1 0 7,-0.375 L 2196.55,-15.92 a 3.5004,3.5004 0 0 0 -3.75,-3.3437 z"
+ id="path5427" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2114.4,-12.107 a 3.5004,3.5004 0 0 0 -3.3125,4 l 7.0313,54.969 a 3.5137,3.5137 0 1 0 6.9687,-0.9063 l -7.0625,-54.937 a 3.5004,3.5004 0 0 0 -3.625,-3.125 z"
+ id="path5429" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2042.9,-0.48153 a 3.5004,3.5004 0 0 0 -3.4063,4.2188 l 10.688,54.375 a 3.5025499,3.5025499 0 1 0 6.875,-1.3438 l -10.7,-54.374 a 3.5004,3.5004 0 0 0 -3.4687,-2.875 z"
+ id="path5431" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1967,17.237 a 3.5004,3.5004 0 0 0 -3.0625,4.4687 l 14.531,53.438 a 3.5096235,3.5096235 0 1 0 6.7812,-1.8125 l -14.562,-53.469 a 3.5004,3.5004 0 0 0 -3.6875,-2.625 z"
+ id="path5433" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1791.7,81.612 a 3.5004,3.5004 0 0 0 -2.9687,5.0312 l 23.5,50.188 a 3.5004,3.5004 0 1 0 6.3125,-2.9687 l -23.469,-50.188 a 3.5004,3.5004 0 0 0 -3.375,-2.0625 z"
+ id="path5435" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1681.8,141.02 a 3.5004,3.5004 0 0 0 -2.7188,5.375 l 29.094,47.156 a 3.508,3.508 0 1 0 5.9687,-3.6875 l -29.125,-47.125 a 3.5004,3.5004 0 0 0 -3.2187,-1.7188 z"
+ id="path5437" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1589.5,204.77 a 3.5004,3.5004 0 0 0 -2.5,5.6563 l 33.812,43.906 a 3.5096324,3.5096324 0 1 0 5.5625,-4.2812 l -33.812,-43.906 a 3.5004,3.5004 0 0 0 -3.0625,-1.375 z"
+ id="path5439" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1515.5,267.24 a 3.5004,3.5004 0 0 0 -2.3125,5.9062 l 37.562,40.688 a 3.5053138,3.5053138 0 1 0 5.1562,-4.75 l -37.594,-40.688 a 3.5004,3.5004 0 0 0 -2.8125,-1.1562 z"
+ id="path5441" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1376.1,423.46 a 3.5004,3.5004 0 0 0 -1.8437,6.3438 l 44.688,32.75 a 3.5004,3.5004 0 1 0 4.125,-5.6563 l -44.688,-32.719 a 3.5004,3.5004 0 0 0 -2.2813,-0.7188 z"
+ id="path5443" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1308,528.58 a 3.5004,3.5004 0 0 0 -1.4375,6.5625 l 48.156,27.375 a 3.5059,3.5059 0 1 0 3.4687,-6.0937 l -48.156,-27.375 a 3.5004,3.5004 0 0 0 -2.0313,-0.4688 z"
+ id="path5445" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1257.6,628.96 a 3.5004,3.5004 0 0 0 -1.0937,6.7188 l 50.719,22.25 a 3.5004,3.5004 0 1 0 2.8125,-6.4063 l -50.719,-22.25 A 3.5004,3.5004 0 0 0 1257.6,628.96 Z"
+ id="path5447" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1213.6,747.39 a 3.5004,3.5004 0 0 0 -0.6875,6.8438 l 52.969,16.219 a 3.5004,3.5004 0 1 0 2.0625,-6.6875 l -52.969,-16.219 A 3.5004,3.5004 0 0 0 1213.6,747.39 Z"
+ id="path5449" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1175.9,920.21 a 3.5004,3.5004 0 0 0 -0.2187,6.9688 l 54.906,7.4062 a 3.5004,3.5004 0 1 0 0.9375,-6.9375 l -54.906,-7.4062 a 3.5004,3.5004 0 0 0 -0.7188,-0.031 z m 79.625,10.75 a 3.5004,3.5004 0 0 0 -0.2187,6.9688 l 4.4687,0.5937 a 3.5004,3.5004 0 1 0 0.9375,-6.9375 l -4.4687,-0.5937 a 3.5004,3.5004 0 0 0 -0.7188,-0.031 z"
+ id="path5451" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1583.2,440.49 a 4.0004,4.0004 0 0 0 -2.9063,1.3437 l -14.625,16.688 a 4.0004,4.0004 0 1 0 6,5.2813 l 7.625,-8.6875 v 76.25 a 4.0004,4.0004 0 1 0 8,0 v -86.875 a 4.0004,4.0004 0 0 0 -4.0937,-4 z"
+ id="path5453" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1634.8,440.49 c -15.018,0 -27.219,12.2 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.724 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5255 -19.219,-19.25 v -40.406 c 0,-10.724 8.4942,-19.219 19.219,-19.219 z"
+ id="path5455" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1707.1,440.49 c -15.018,0 -27.219,12.2 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.724 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5255 -19.219,-19.25 v -40.406 c 0,-10.724 8.4942,-19.219 19.219,-19.219 z"
+ id="path5457" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2261.9,156.64 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.2,-27.219 -27.219,-27.219 z m 0,8 c 10.724,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.7248,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5254,-19.219 19.25,-19.219 z"
+ id="path5459" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2334.1,156.64 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.725,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.724,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5255,-19.219 19.25,-19.219 z"
+ id="path5461" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2183.5,156.61 c -14.558,0 -26.594,11.436 -26.594,25.656 a 4.0004,4.0004 0 1 0 8,0 c 0,-9.7079 8.1784,-17.656 18.594,-17.656 10.415,0 18.625,7.9483 18.625,17.656 0,3.4188 -0.3012,6.2394 -1.9688,9.125 -1.6675,2.8857 -4.8983,6.1281 -11.656,9.5625 -15.36,7.8058 -30.328,23.228 -32.812,46.125 a 4.0004,4.0004 0 0 0 3.9687,4.4375 h 45.969 a 4.0004,4.0004 0 1 0 0,-8 h -41.219 c 3.4596,-17.376 15.261,-29.122 27.688,-35.438 7.6556,-3.8905 12.332,-8.1255 14.969,-12.688 2.6363,-4.5619 3.0625,-9.1977 3.0625,-13.125 0,-14.22 -12.067,-25.656 -26.625,-25.656 z"
+ id="path5463" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1860,235.42 a 4.0004,4.0004 0 0 0 -2.9062,1.3437 l -14.625,16.688 a 4.0004,4.0004 0 1 0 6,5.2813 l 7.6562,-8.7188 v 76.281 a 4.0004,4.0004 0 1 0 8,0 v -86.875 a 4.0004,4.0004 0 0 0 -4.125,-4 z"
+ id="path5465" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1983.8,235.42 c -15.018,0 -27.219,12.2 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.724 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5255 -19.219,-19.25 v -40.406 c 0,-10.724 8.4942,-19.219 19.219,-19.219 z"
+ id="path5467" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1889.9,235.39 a 4.0004,4.0004 0 0 0 -4,4 v 37.25 a 4.0004,4.0004 0 0 0 7.375,2.125 c 2.999,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.6481 19.25,19.625 v 12.344 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2062,0 -15.114,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9062 c 4.876,8.7155 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.344 c 0,-15.199 -12.196,-27.625 -27.25,-27.625 -5.9926,0 -12.456,1.4612 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 H 1889.9 Z"
+ id="path5469" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1470.7,824.33 c -15.018,0 -27.219,12.232 -27.219,27.25 v 40.406 c 0,15.018 12.201,27.219 27.219,27.219 15.018,0 27.25,-12.201 27.25,-27.219 V 851.58 c 0,-15.018 -12.232,-27.25 -27.25,-27.25 z m 0,8 c 10.725,0 19.25,8.5255 19.25,19.25 v 40.406 c 0,10.724 -8.5254,19.219 -19.25,19.219 -10.724,0 -19.219,-8.4942 -19.219,-19.219 V 851.58 c 0,-10.724 8.4942,-19.25 19.219,-19.25 z"
+ id="path5471" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1376.3,824.33 a 4.0004,4.0004 0 0 0 -3.5938,4 v 37.219 a 4.0004,4.0004 0 0 0 7.375,2.1562 c 2.999,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.6481 19.25,19.625 v 12.312 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2063,0 -15.114,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9063 c 4.8761,8.7155 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.312 c 0,-15.199 -12.196,-27.625 -27.25,-27.625 -5.9927,0 -12.456,1.4612 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 h -39.406 a 4.0004,4.0004 0 0 0 -0.4062,0 z"
+ id="path5473" />
+ <path
+ d="m 1284.7,72.831 -1.1875,5.5313 -30.312,141.13 h 13.719 l 7,-31.844 h 46.156 l 8.5312,31.844 h 13.531 l -36.938,-141.47 -1.375,-5.1875 h -5.375 -8.0938 -5.6562 z m 10.031,20.062 21.594,80.75 h -39.344 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5475" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1146.3,900.96 c -8.4837,0 -15.375,6.8914 -15.375,15.375 v 22.844 c 0,8.4836 6.8913,15.375 15.375,15.375 8.4836,0 15.406,-6.8914 15.406,-15.375 v -22.844 c 0,-8.4836 -6.9226,-15.375 -15.406,-15.375 z m 0,4.5 c 6.0685,0 10.906,4.8065 10.906,10.875 v 22.844 c 0,6.0685 -4.8377,10.875 -10.906,10.875 -6.0685,0 -10.875,-4.8065 -10.875,-10.875 v -22.844 c 0,-6.0685 4.8065,-10.875 10.875,-10.875 z"
+ id="path5477" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1115.6,900.96 a 2.2502,2.2502 0 0 0 -1.5938,1.0313 l -22.156,34.875 a 2.2502,2.2502 0 0 0 1.9062,3.4375 h 19.875 v 12 a 2.2502,2.2502 0 1 0 4.5,0 v -12 h 1.3438 a 2.2502,2.2502 0 1 0 0,-4.5 h -1.3438 v -32.594 a 2.2502,2.2502 0 0 0 -2.5312,-2.25 z m -1.9688,9.9688 v 24.875 h -15.781 z"
+ id="path5479" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1284.9,1200.5 a 2.5002,2.5002 0 0 0 -1.8125,0.8438 l -7.8125,8.9062 a 2.5018,2.5018 0 1 0 3.75,3.3125 l 3.4375,-3.9062 v 39.781 a 2.5002,2.5002 0 1 0 5,0 v -46.438 a 2.5002,2.5002 0 0 0 -2.5625,-2.5 z"
+ id="path5481" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1306.7,1200.5 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 19.906 a 2.5002,2.5002 0 0 0 4.625,1.3125 c 1.5017,-2.3802 5.7817,-4.125 9.5,-4.125 5.5171,0 9.9062,4.4471 9.9062,10.125 v 6.5937 c 0,5.6779 -4.3891,10.125 -9.9062,10.125 -3.7197,0 -7.858,-2.2704 -9.4375,-5.0937 a 2.5041,2.5041 0 1 0 -4.375,2.4375 c 2.6869,4.8026 8.253,7.6562 13.812,7.6562 8.2458,0 14.906,-6.8081 14.906,-15.125 v -6.5937 c 0,-8.3169 -6.6604,-15.125 -14.906,-15.125 -3.0809,0 -6.3424,0.7822 -9.125,2.3437 v -11.938 h 18.562 a 2.5002,2.5002 0 1 0 0,-5 h -21.062 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ id="path5483" />
+ <path
+ d="m 1297.5,1245.5 c -2.2316,0 -4.0625,1.8309 -4.0625,4.0625 0,1.973 1.4112,3.5834 3.2812,3.9375 -0.352,1.6422 -0.8243,3.5675 -1.625,6.4063 3.379,-3.3497 5.078,-6.1448 6.0625,-8.6875 0.013,-0.033 0.05,-0.061 0.062,-0.094 v -0.031 c 0.1971,-0.476 0.3125,-0.9841 0.3125,-1.5313 0,-2.2316 -1.7996,-4.0625 -4.0312,-4.0625 z"
+ inkscape:connector-curvature="0"
+ style="fill:#000000"
+ id="path5485" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1197.6,1211.8 c -5.4507,0.026 -10.966,1.9221 -16,6.6562 a 2.5092298,2.5092298 0 1 0 3.4375,3.6563 c 5.6656,-5.3286 10.954,-6.1333 16.938,-4.875 5.9835,1.2583 12.504,4.8898 19.125,8.7187 6.6209,3.8289 13.346,7.8504 20.312,9.5313 6.9667,1.6808 14.393,0.7108 20.875,-5.2813 a 2.5100068,2.5100068 0 1 0 -3.4063,-3.6875 c -5.3695,4.9637 -10.436,5.5429 -16.312,4.125 -5.8769,-1.4179 -12.328,-5.1594 -18.969,-9 -6.6411,-3.8405 -13.471,-7.7833 -20.594,-9.2812 -1.7807,-0.3745 -3.5893,-0.5714 -5.4062,-0.5625 z"
+ id="path5487" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1365.1,1188.7 a 2.5002,2.5002 0 0 0 -2.4688,2.5313 v 55.594 a 2.5002,2.5002 0 1 0 5,0 v -55.594 A 2.5002,2.5002 0 0 0 1365.1,1188.7 Z"
+ id="path5489" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1406.1,1187 a 2.5002,2.5002 0 0 0 -0.6562,0.1563 l -54,19.156 a 2.5002,2.5002 0 0 0 0,4.7188 l 18.5,6.5 -18.5,6.5625 a 2.5002,2.5002 0 0 0 0,4.7187 l 18.469,6.5313 -18.469,6.5312 a 2.5002,2.5002 0 0 0 0,4.7188 l 54,19.156 a 2.5002,2.5002 0 1 0 1.6875,-4.6875 l -47.375,-16.812 18.469,-6.5312 a 2.5002,2.5002 0 0 0 0,-4.7188 l -18.469,-6.5625 18.469,-6.5625 a 2.5002,2.5002 0 0 0 0,-4.6875 l -18.469,-6.5312 47.375,-16.781 a 2.5002,2.5002 0 0 0 -1.0313,-4.875 z"
+ id="path5491" />
+ <circle
+ r="6.5068183"
+ cy="330.90106"
+ cx="-574.59137"
+ transform="matrix(0.59248,0,0,0.59248,1746.3,993.55)"
+ style="fill:#000000"
+ id="path5493" />
+ <circle
+ r="6.5068183"
+ cy="330.90106"
+ cx="-574.59137"
+ transform="matrix(0.59248,0,0,0.59248,1746.3,1067.2)"
+ style="fill:#000000"
+ id="path5495" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1467.3,1185.7 a 2.5002,2.5002 0 0 0 -1.784,1.1002 l -14.719,21.974 -25.423,7.2256 a 2.5002,2.5002 0 0 0 -1.2785,3.9547 l 16.354,20.784 -0.9515,26.434 a 2.5002,2.5002 0 0 0 3.36,2.4085 l 24.799,-9.0988 24.828,9.0691 a 2.5002,2.5002 0 0 0 3.36,-2.4382 l -1.011,-26.404 16.295,-20.814 a 2.5002,2.5002 0 0 0 -1.2786,-3.9547 l -25.423,-7.2255 -14.748,-21.914 a 2.5002,2.5002 0 0 0 -2.3788,-1.1002 z m 0.2974,6.9877 13.202,19.595 a 2.5002,2.5002 0 0 0 1.3975,1.011 l 22.717,6.4524 -14.57,18.584 a 2.5002,2.5002 0 0 0 -0.5352,1.6354 l 0.892,23.609 -22.182,-8.0878 a 2.5002,2.5002 0 0 0 -1.7247,0 l -22.182,8.1473 0.8623,-23.639 a 2.5002,2.5002 0 0 0 -0.5352,-1.6354 l -14.57,-18.554 22.688,-6.4822 a 2.5002,2.5002 0 0 0 1.3976,-1.0109 l 13.143,-19.625 z"
+ id="path5497" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1467.3,1217.5 c -4.8518,0 -8.8125,3.9608 -8.8125,8.8125 a 2.1387,2.1387 0 1 0 4.25,0 c 0,-2.5403 2.0222,-4.5312 4.5625,-4.5312 2.5403,0 4.5625,1.9909 4.5625,4.5312 0,0.6956 -0.176,1.0804 -0.9063,1.9688 -0.7302,0.8884 -1.9841,2.0898 -3.4062,3.8125 l -9.3438,11.312 a 2.1387,2.1387 0 0 0 1.6563,3.5 h 15.406 a 2.14065,2.14065 0 0 0 0,-4.2813 h -10.875 l 6.4375,-7.8125 c 1.2475,-1.5111 2.4037,-2.5927 3.4063,-3.8125 1.0026,-1.2198 1.9062,-2.8108 1.9062,-4.6875 0,-4.8517 -3.992,-8.8125 -8.8437,-8.8125 z"
+ id="path5499" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1522.5,1207.9 a 2.5002,2.5002 0 0 0 -2.5,2.5 v 39.656 a 2.5002,2.5002 0 1 0 5,0 V 1212.9 h 14.156 a 2.5002,2.5002 0 1 0 0,-5 z"
+ id="path5501" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1522.5,1224.9 a 2.503123,2.503123 0 1 0 0.25,5 h 8.5937 c 4.954,0 8.8438,3.8897 8.8438,8.8437 0,4.954 -3.8898,8.875 -8.8438,8.875 h -8.5937 a 2.5002,2.5002 0 1 0 0,5 h 8.5937 c 7.6376,0 13.844,-6.2375 13.844,-13.875 0,-7.6375 -6.2062,-13.844 -13.844,-13.844 h -8.5937 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ id="path5503" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1574.5,1194.1 a 2.1387,2.1387 0 0 0 -2.125,2.1875 v 68.688 a 2.1406,2.1406 0 0 0 4.2812,0 v -68.688 A 2.1387,2.1387 0 0 0 1574.5,1194.1 Z"
+ id="path5505" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1545.4,1263 a 2.503123,2.503123 0 1 0 0.25,5 h 57.594 a 2.5002,2.5002 0 1 0 0,-5 h -57.594 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ id="path5507" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1283.8,1300 a 2.2502,2.2502 0 0 0 -2.0313,2.25 v 26.875 a 2.2502,2.2502 0 1 0 4.5,0 V 1304.5 h 8.375 a 2.2502,2.2502 0 1 0 0,-4.5 h -10.625 a 2.2502,2.2502 0 0 0 -0.2187,0 z"
+ id="path5509" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1308.4,1300 c -5.8944,0 -10.719,4.8243 -10.719,10.719 v 9.9688 c 0,5.8944 4.8243,10.688 10.719,10.688 5.8945,0 10.719,-4.7931 10.719,-10.688 v -9.9688 c 0,-5.8944 -4.8243,-10.719 -10.719,-10.719 z m 0,4.5 c 3.4793,0 6.2188,2.7394 6.2188,6.2187 v 9.9688 c 0,3.4792 -2.7395,6.1875 -6.2188,6.1875 -3.4792,0 -6.2187,-2.7083 -6.2187,-6.1875 v -9.9688 c 0,-3.4793 2.7395,-6.2187 6.2187,-6.2187 z"
+ id="path5511" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1330.6,1300 c -5.8944,0 -10.719,4.8243 -10.719,10.719 v 9.9688 c 0,5.8944 4.8244,10.688 10.719,10.688 4.9632,0 9.1791,-3.3836 10.375,-8 a 2.2502,2.2502 0 1 0 -4.3438,-1.125 c -0.6916,2.6699 -3.1016,4.625 -6.0312,4.625 -3.4793,0 -6.2188,-2.7083 -6.2188,-6.1875 v -9.9688 c 0,-3.4793 2.7395,-6.2187 6.2188,-6.2187 2.9269,0 5.3058,1.9588 6,4.625 a 2.2587,2.2587 0 1 0 4.375,-1.125 c -1.2003,-4.61 -5.4164,-8 -10.375,-8 z"
+ id="path5513" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1351.7,1300 a 2.2502,2.2502 0 0 0 -2,2.2813 v 26.875 a 2.2502,2.2502 0 1 0 4.5,0 v -26.875 A 2.2502,2.2502 0 0 0 1351.7,1300 Z"
+ id="path5515" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1344.9,1300 a 2.2527,2.2527 0 0 0 0.2188,4.5 h 13.812 a 2.2502,2.2502 0 1 0 0,-4.5 h -13.812 a 2.2502,2.2502 0 0 0 -0.2188,0 z"
+ id="path5517" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1385.8,1300 c -4.4239,0 -8.0625,3.6386 -8.0625,8.0625 0,4.4239 3.6386,8.0625 8.0625,8.0625 4.4239,0 8.0625,-3.6386 8.0625,-8.0625 0,-4.4239 -3.6386,-8.0625 -8.0625,-8.0625 z m 0,4.5 c 1.9919,0 3.5625,1.5706 3.5625,3.5625 0,1.9919 -1.5706,3.5625 -3.5625,3.5625 -1.9919,0 -3.5625,-1.5706 -3.5625,-3.5625 0,-1.9919 1.5706,-3.5625 3.5625,-3.5625 z"
+ id="path5519" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1385.8,1311.5 c -5.4699,0 -9.9456,4.4758 -9.9456,9.9457 0,5.4699 4.4757,9.9456 9.9456,9.9456 5.4699,0 9.9457,-4.4757 9.9457,-9.9456 0,-5.4699 -4.4758,-9.9457 -9.9457,-9.9457 z m 0,4.4756 c 3.0379,0 5.4701,2.4321 5.4701,5.4701 0,3.0379 -2.4322,5.4701 -5.4701,5.4701 -3.0379,0 -5.4701,-2.4322 -5.4701,-5.4701 0,-3.038 2.4322,-5.4701 5.4701,-5.4701 z"
+ id="path5521" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1400.2,1300 a 2.2535,2.2535 0 1 0 0.25,4.5 h 7.9063 c -3.3387,6.572 -6.0518,14.717 -8.3438,24.094 a 2.2511,2.2511 0 1 0 4.375,1.0625 c 2.6399,-10.8 5.7905,-19.938 9.5938,-26.25 a 2.2502,2.2502 0 0 0 -1.9375,-3.4062 h -11.594 a 2.2502,2.2502 0 0 0 -0.25,0 z"
+ id="path5523" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1429.1,1300 a 2.2502,2.2502 0 0 0 -1.75,0.9062 l -4.6875,6.25 a 2.2502,2.2502 0 1 0 3.5937,2.6875 l 0.6563,-0.875 v 20.156 a 2.2502,2.2502 0 1 0 4.5,0 v -26.875 a 2.2502,2.2502 0 0 0 -2.3125,-2.25 z"
+ id="path5525" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1444.9,1300 a 2.2502,2.2502 0 0 0 -1.7187,0.9062 l -4.6875,6.25 a 2.2502,2.2502 0 1 0 3.5937,2.6875 l 0.625,-0.8437 v 20.125 a 2.2502,2.2502 0 1 0 4.5,0 V 1302.25 A 2.2502,2.2502 0 0 0 1444.9,1300 Z"
+ id="path5527" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1502.4,1300 c -5.8944,0 -10.719,4.8243 -10.719,10.719 v 9.9688 c 0,5.8944 4.8243,10.688 10.719,10.688 5.8945,0 10.719,-4.7931 10.719,-10.688 v -9.9688 c 0,-5.8944 -4.8243,-10.719 -10.719,-10.719 z m 0,4.5 c 3.4793,0 6.2188,2.7394 6.2188,6.2187 v 9.9688 c 0,3.4792 -2.7395,6.1875 -6.2188,6.1875 -3.4792,0 -6.2187,-2.7083 -6.2187,-6.1875 v -9.9688 c 0,-3.4793 2.7395,-6.2187 6.2187,-6.2187 z"
+ id="path5529" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1480.7,1311.5 c -5.4699,0 -9.9456,4.4758 -9.9456,9.9457 0,5.4699 4.4757,9.9456 9.9456,9.9456 5.4699,0 9.9457,-4.4757 9.9457,-9.9456 0,-5.4699 -4.4758,-9.9457 -9.9457,-9.9457 z m 0,4.4756 c 3.038,0 5.4701,2.4321 5.4701,5.4701 0,3.0379 -2.4321,5.4701 -5.4701,5.4701 -3.0379,0 -5.4701,-2.4322 -5.4701,-5.4701 0,-3.038 2.4322,-5.4701 5.4701,-5.4701 z"
+ id="path5531" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1480.6,1300 c -5.4699,0 -9.9375,4.4676 -9.9375,9.9375 v 11.5 a 2.2502,2.2502 0 1 0 4.5,0 v -11.5 c 0,-3.038 2.3996,-5.4375 5.4375,-5.4375 2.1957,0 4.1748,1.2907 5.0312,3.3125 a 2.2548464,2.2548464 0 1 0 4.1563,-1.75 C 1488.2311,1302.3882 1484.5902,1300 1480.6,1300 Z"
+ id="path5533" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 1453.1,1312.7 a 2.2527,2.2527 0 1 0 0.2187,4.5 h 11.625 a 2.2502,2.2502 0 1 0 0,-4.5 h -11.625 a 2.2502,2.2502 0 0 0 -0.2187,0 z"
+ id="path5535" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2411,246.77 c -6.7857,0 -12.69,3.8407 -15.594,9.5 a 2.5002,2.5002 0 1 0 4.4375,2.2813 c 2.0712,-4.0372 6.2544,-6.7813 11.156,-6.7813 6.9826,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9827 -5.5486,12.531 -12.531,12.531 -4.4774,0 -8.3428,-2.2744 -10.562,-5.75 a 2.5010463,2.5010463 0 0 0 -4.2188,2.6875 c 3.1089,4.8679 8.5832,8.0625 14.781,8.0625 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.865,-17.531 -17.531,-17.531 z"
+ id="path5537" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2488,246.77 c -9.6662,0 -17.5,7.8651 -17.5,17.531 v 21.344 c 0,9.6662 7.8338,17.531 17.5,17.531 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.865,-17.531 -17.531,-17.531 z m 0,5 c 6.9826,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9827 -5.5486,12.531 -12.531,12.531 -6.9827,0 -12.5,-5.5486 -12.5,-12.531 v -21.344 c 0,-6.9827 5.5173,-12.531 12.5,-12.531 z"
+ id="path5539" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2436.6,246.77 a 2.503123,2.503123 0 1 0 0.25,5 h 18.156 l -12.375,17.5 a 2.5002,2.5002 0 0 0 2.3438,3.9375 c 5.7215,-0.6861 9.0208,0.5421 11.188,2.4375 2.1667,1.8954 3.3312,4.7379 3.7812,7.7188 0.4713,3.1214 -0.2841,6.6266 -1.9062,9.4062 -1.6221,2.7796 -4.0115,4.745 -6.7188,5.25 -4.4749,0.8348 -10.174,-1.6848 -12.25,-5.8437 a 2.5016,2.5016 0 1 0 -4.4687,2.25 c 3.2375,6.4873 10.824,9.7687 17.625,8.5 4.4334,-0.8271 7.9332,-3.8692 10.125,-7.625 2.1918,-3.7558 3.1945,-8.2945 2.5312,-12.688 -0.5668,-3.7544 -2.0648,-7.7958 -5.4062,-10.719 -2.4107,-2.1088 -5.7373,-3.477 -9.9063,-3.7812 l 12.312,-17.406 a 2.5002,2.5002 0 0 0 -2.0625,-3.9375 h -22.969 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ id="path5541" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2411.9,272.49 a 2.503123,2.503123 0 1 0 0.25,5 h 13.125 a 2.5002,2.5002 0 1 0 0,-5 h -13.125 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ id="path5543" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168"
+ d="m 2394,654.11 a 3.5004,3.5004 0 0 0 -3,1.9062 l -22,41.875 -75.406,87.469 a 3.5014,3.5014 0 1 0 5.3125,4.5625 l 75.688,-87.844 a 3.5004,3.5004 0 0 0 0.4687,-0.6562 l 22.125,-42.156 a 3.5004,3.5004 0 0 0 -3.1875,-5.1562 z"
+ id="path5545" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff"
+ d="m 2296,773.83 c -7.7494,0 -14.125,6.3444 -14.125,14.094 0,7.7494 6.3756,14.125 14.125,14.125 7.7494,0 14.094,-6.3756 14.094,-14.125 a 3.5004,3.5004 0 1 0 -7,0 c 0,3.9663 -3.1274,7.125 -7.0938,7.125 -3.9663,0 -7.125,-3.1587 -7.125,-7.125 0,-3.9664 3.1587,-7.0938 7.125,-7.0938 h 0.2813 a 3.5035,3.5035 0 1 0 0.3125,-7 c -0.1998,-0.01 -0.3938,0 -0.5938,0 z"
+ id="path5547" />
+ <circle
+ r="54.285713"
+ cy="-220.49496"
+ cx="461.42856"
+ transform="translate(1979.8,863.15)"
+ style="fill:#b3b3b3"
+ id="path5549" />
+ <circle
+ r="54.285713"
+ cy="-220.49496"
+ cx="461.42856"
+ transform="matrix(0.78601,0,0,0.78601,2078.5,815.96)"
+ style="fill:#808080"
+ id="path5551" />
+ <path
+ d="m 2434.9,600.96 c -20.3,3.0394 -35.875,20.541 -35.875,41.688 0,21.147 15.575,38.679 35.875,41.719 v -83.406 z m 12.625,0.031 v 83.344 c 20.284,-3.0534 35.844,-20.552 35.844,-41.688 0,-21.135 -15.56,-38.603 -35.844,-41.656 z"
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ id="path5553" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168"
+ sodipodi:nodetypes="cccccscccsc"
+ d="m 1978.1,1124 c -1.0098,0.01 -2.0071,0.4765 -2.6563,1.25 l -75.719,87.844 c -0.1719,0.2111 -0.3191,0.4423 -0.4375,0.6875 l -34.121,26.143 c -0.8508,1.6281 -0.1436,3.8835 1.4844,4.7344 1.6281,0.8508 3.8836,0.1437 4.7344,-1.4844 l 33.902,-25.768 75.469,-87.594 c 0.8866,-1.0076 1.1136,-2.5465 0.5558,-3.7671 -0.5578,-1.2207 -1.87,-2.0563 -3.212,-2.0454 z"
+ id="path5555" />
+ <circle
+ r="54.285713"
+ cy="-220.49496"
+ cx="461.42856"
+ transform="rotate(180,1147.25,526.05)"
+ style="fill:#c5c5bf"
+ id="path5557" />
+ <circle
+ r="54.285713"
+ cy="-220.49496"
+ cx="461.42856"
+ transform="matrix(-0.78601,0,0,-0.78601,2195.8,1099.2)"
+ style="fill:#808080"
+ id="path5559" />
+ <path
+ d="m 1839.4,1314.3 c 20.3,-3.0393 35.875,-20.541 35.875,-41.688 0,-21.147 -15.575,-38.679 -35.875,-41.719 v 83.406 z m -12.625,-0.031 v -83.344 c -20.284,3.0534 -35.844,20.552 -35.844,41.688 0,21.135 15.56,38.603 35.844,41.656 z"
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ id="path5561" />
+ </g>
+ <g
+ id="g21670"
+ transform="matrix(18.912567,0,0,18.912567,-81.555744,1119.9665)"
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH">
+ <path
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="path21666"
+ sodipodi:type="arc"
+ sodipodi:cx="124.32036"
+ sodipodi:cy="-2.4254472"
+ sodipodi:rx="54.660004"
+ sodipodi:ry="54.024006"
+ sodipodi:start="3.1424064"
+ sodipodi:end="4.7101543"
+ d="M 69.660373,-2.4694091 A 54.660004,54.024006 0 0 1 124.19821,-56.449318"
+ sodipodi:open="true"
+ inkscape:label="range" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#marker21674);marker-end:url(#marker22799)"
+ d="M 123.16695,-3.4226979 70.419817,-10.83537"
+ id="path21668"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc"
+ inkscape:label="needle" />
+ </g>
+ <g
+ id="g29186">
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2378.5,363.18 2.4664,1.2855 71.607,37.323 2.4387,1.2711 2.4386,-1.2711 71.607,-37.323 2.4664,-1.2855 -2.4387,-1.2711 -71.607,-37.323 -2.4663,-1.2855 -2.4664,1.2855 -71.607,37.323 z m 9.81,0 66.702,-34.766 66.73,34.78 -66.702,34.766 z"
+ id="path5567" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2441.6,345.71 -2.2813,1.375 -11.406,6.9688 -0.7188,0.4375 v 0.8437 4.4688 h 3 v -3.625 l 8.4063,-5.125 v 9.5312 l -3.5938,3.8125 -0.9375,1.0313 0.9375,1.0312 3.5938,3.8125 v 9.5313 l -8.4063,-5.125 v -3.625 h -3 v 4.4687 0.8438 l 0.7188,0.4375 11.406,6.9687 2.2813,1.375 v -2.6562 -12.812 -0.5938 l -0.4063,-0.4375 -3.0312,-3.2187 3.0312,-3.25 0.4063,-0.4375 v -0.5938 -12.781 -2.6563 z"
+ id="path5569" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2448,339.42 v 48.594 h 3 V 339.42 Z m 11.062,0 v 48.594 h 3 V 339.42 Z"
+ id="path5571" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2459.1,351.33 -11.062,24.469 2.7187,1.2187 11.094,-24.469 -2.75,-1.2188 z"
+ id="path5573" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2467.6,342.36 v 2.625 37.5 h 3 v -34.906 l 8,4.5938 v 22.969 h 3 v -23.812 -0.875 l -0.75,-0.4375 -11,-6.3437 -2.25,-1.3125 z"
+ id="path5575" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2457.8,434.39 c -4.2082,0 -7.5312,3.6568 -7.5312,8 a 1.5002,1.5002 0 1 0 3,0 c 0,-2.8367 2.068,-5 4.5312,-5 2.4633,0 4.5313,2.1633 4.5313,5 0,1.0173 -0.081,1.842 -0.5,2.6563 -0.4189,0.8142 -1.2183,1.7195 -2.9688,2.7187 -4.2189,2.4083 -8.2687,7.1391 -8.9375,14.062 a 1.5002,1.5002 0 0 0 1.5,1.625 h 12.281 a 1.5002,1.5002 0 1 0 0,-3 H 2453.3 c 1.0027,-4.9299 3.9358,-8.3089 7.0625,-10.094 2.1001,-1.1988 3.4255,-2.517 4.1563,-3.9375 0.7308,-1.4205 0.8125,-2.8442 0.8125,-4.0313 0,-4.3432 -3.3231,-8 -7.5313,-8 z"
+ id="path5577" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2403.5,434.42 a 1.5002,1.5002 0 0 0 -0.9375,0.5 l -4.2813,5 a 1.5067,1.5067 0 0 0 2.2813,1.9687 l 1.625,-1.9062 v 21.969 a 1.5002,1.5002 0 1 0 3,0 v -26.031 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z"
+ id="path5579" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2477.6,434.42 a 1.5002,1.5002 0 0 0 -1.2188,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.7813,0.8125 c 0.8305,-1.2895 3.2566,-2.2812 5.375,-2.2812 3.1378,0 5.625,2.446 5.625,5.5625 v 3.7187 c 0,3.1165 -2.4872,5.5625 -5.625,5.5625 -2.1156,0 -4.4635,-1.271 -5.3438,-2.8125 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7405,4.3125 7.9375,4.3125 4.7417,0 8.625,-3.8296 8.625,-8.5625 v -3.7187 c 0,-4.7329 -3.8833,-8.5625 -8.625,-8.5625 -1.7417,0 -3.5689,0.4289 -5.1563,1.2812 v -6.4687 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.2812,0 z"
+ id="path5581" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2516,434.42 a 1.5002,1.5002 0 0 0 -1.0625,0.625 l -12.656,18.5 a 1.5002,1.5002 0 0 0 1.2187,2.3437 h 11.188 v 6.0625 a 1.5002,1.5002 0 1 0 3,0 v -6.0625 h 0.5313 a 1.5002,1.5002 0 1 0 0,-3 h -0.5313 v -16.969 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z m -1.3125,6.3125 v 12.156 h -8.3125 z"
+ id="path5583" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2373.5,434.42 a 1.5002,1.5002 0 0 0 -1.1875,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.75,0.8125 c 0.8305,-1.2895 3.2879,-2.2812 5.4063,-2.2812 3.1378,0 5.5937,2.446 5.5937,5.5625 v 3.7187 c 0,3.1165 -2.4559,5.5625 -5.5937,5.5625 -2.1156,0 -4.4948,-1.271 -5.375,-2.8125 a 1.5002,1.5002 0 1 0 -2.5938,1.5 c 1.5624,2.7359 4.7718,4.3125 7.9688,4.3125 4.7417,0 8.5937,-3.8296 8.5937,-8.5625 v -3.7187 c 0,-4.7329 -3.852,-8.5625 -8.5937,-8.5625 -1.7311,0 -3.5751,0.4086 -5.1563,1.25 v -6.4375 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.3125,0 z"
+ id="path5585" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2429.5,434.42 a 1.5002,1.5002 0 0 0 -0.9375,0.5 l -4.2812,5 a 1.5067,1.5067 0 1 0 2.2812,1.9687 l 1.625,-1.9062 v 21.969 a 1.5002,1.5002 0 1 0 3,0 v -26.031 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z"
+ id="path5587" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2412.3,490.67 a 1.5002,1.5002 0 0 0 -1.1875,0.625 l -4.4688,6.0625 a 1.5002,1.5002 0 1 0 2.4063,1.7812 l 1.7812,-2.4062 v 21.5 a 1.5002,1.5002 0 1 0 3,0 v -26.062 a 1.5002,1.5002 0 0 0 -1.5312,-1.5 z"
+ id="path5589" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2450,501.82 c -4.9217,0 -8.9329,4.0208 -8.9329,8.9543 0,4.9335 4.0112,8.9543 8.9329,8.9543 4.9217,0 8.9329,-4.0208 8.9329,-8.9543 0,-4.9335 -4.0112,-8.9543 -8.9329,-8.9543 z m 0,3.0115 c 3.3023,0 5.9285,2.6326 5.9285,5.9428 0,3.3103 -2.6262,5.983 -5.9285,5.983 -3.3023,0 -5.9285,-2.6727 -5.9285,-5.983 0,-3.3102 2.6262,-5.9428 5.9285,-5.9428 z"
+ id="path5591" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2450,490.67 c -4.9246,0 -8.9375,4.0381 -8.9375,8.9687 v 11.125 a 1.5002,1.5002 0 1 0 3,0 v -11.125 c 0,-3.3131 2.6382,-5.9687 5.9375,-5.9687 2.3902,0 4.5664,1.4467 5.5,3.6562 a 1.5002,1.5002 0 1 0 2.75,-1.1875 c -1.3985,-3.3097 -4.6605,-5.4687 -8.25,-5.4687 z"
+ id="path5593" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2427.1,508.61 c 4.9217,0 8.9329,-4.0208 8.9329,-8.9543 0,-4.9335 -4.0112,-8.9544 -8.9329,-8.9544 -4.9217,0 -8.9329,4.0209 -8.9329,8.9544 0,4.9335 4.0112,8.9543 8.9329,8.9543 z m 0,-3.0115 c -3.3023,0 -5.9285,-2.6326 -5.9285,-5.9428 0,-3.3103 2.6262,-5.983 5.9285,-5.983 3.3023,0 5.9285,2.6727 5.9285,5.983 0,3.3102 -2.6262,5.9428 -5.9285,5.9428 z"
+ id="path5595" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2434.6,498.11 a 1.5002,1.5002 0 0 0 -1.5,1.5312 v 11.125 c 0,3.3132 -2.6381,5.9688 -5.9375,5.9688 -2.3902,0 -4.5351,-1.4155 -5.4688,-3.625 a 1.506,1.506 0 1 0 -2.7812,1.1562 c 1.3986,3.3097 4.6606,5.4688 8.25,5.4688 4.9246,0 8.9375,-4.0382 8.9375,-8.9688 v -11.125 a 1.5002,1.5002 0 0 0 -1.5,-1.5312 z"
+ id="path5597" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2465.8,490.49 a 1.5002,1.5002 0 0 0 -1.375,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.7813,0.8125 c 0.8305,-1.2895 3.2566,-2.2812 5.375,-2.2812 3.1378,0 5.625,2.4772 5.625,5.5937 v 3.6875 c 0,3.1165 -2.4872,5.5938 -5.625,5.5938 -2.1156,0 -4.4635,-1.3023 -5.3438,-2.8438 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7405,4.3438 7.9375,4.3438 4.7417,0 8.625,-3.8609 8.625,-8.5938 v -3.6875 c 0,-4.7328 -3.8833,-8.5937 -8.625,-8.5937 -1.7417,0 -3.5689,0.4289 -5.1563,1.2812 v -6.4687 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.125,0 z"
+ id="path5599" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2497.9,494.74 a 1.5002,1.5002 0 0 0 -1.3437,1.5 v 18.562 a 1.5002,1.5002 0 1 0 3,0 V 497.74 h 7.7812 a 1.5002,1.5002 0 1 0 0,-3 h -9.2812 a 1.5002,1.5002 0 0 0 -0.1563,0 z"
+ id="path5601" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2315.9,-15.107 a 1.5081161,1.5081161 0 1 0 0.3125,3 h 20.469 a 1.5002,1.5002 0 1 0 0,-3 h -20.469 a 1.5002,1.5002 0 0 0 -0.3125,0 z"
+ id="path5603" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2326.4,-15.294 a 2.5002,2.5002 0 0 0 -2.4687,2.5313 v 36.125 a 2.5002,2.5002 0 1 0 5,0 v -36.125 A 2.5002,2.5002 0 0 0 2326.4,-15.294 Z"
+ id="path5605" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2346.2,-15.107 a 1.5066,1.5066 0 0 0 0.2813,3 h 20.5 a 1.5002,1.5002 0 1 0 0,-3 h -20.5 a 1.5002,1.5002 0 0 0 -0.2813,0 z"
+ id="path5607" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2356.7,-15.294 a 2.5002,2.5002 0 0 0 -2.4687,2.5313 v 36.125 a 2.5002,2.5002 0 1 0 5,0 v -36.125 A 2.5002,2.5002 0 0 0 2356.7,-15.294 Z"
+ id="path5609" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2384.4,-22.33 c -4.0185,0 -7.3125,3.2939 -7.3125,7.3125 0,4.0185 3.294,7.3125 7.3125,7.3125 4.0185,0 7.3125,-3.294 7.3125,-7.3125 0,-4.0186 -3.294,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.3972,0 4.3125,1.9152 4.3125,4.3125 0,2.3972 -1.9153,4.3125 -4.3125,4.3125 -2.3972,0 -4.3125,-1.9153 -4.3125,-4.3125 0,-2.3973 1.9153,-4.3125 4.3125,-4.3125 z"
+ id="path5611" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2384.4,-10.587 c -4.0185,0 -7.3125,3.2939 -7.3125,7.3125 0,4.0185 3.294,7.3125 7.3125,7.3125 4.0185,0 7.3125,-3.294 7.3125,-7.3125 0,-4.0186 -3.294,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.3972,0 4.3125,1.9153 4.3125,4.3125 0,2.3972 -1.9153,4.3125 -4.3125,4.3125 -2.3972,0 -4.3125,-1.9153 -4.3125,-4.3125 0,-2.3972 1.9153,-4.3125 4.3125,-4.3125 z"
+ id="path5613" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2402.6,-22.825 c -4.0276,0 -7.3125,3.2848 -7.3125,7.3125 v 11.719 c 0,4.0276 3.2849,7.3438 7.3125,7.3438 4.0277,0 7.3125,-3.3162 7.3125,-7.3438 v -11.719 c 0,-4.0277 -3.2848,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.4176,0 4.3125,1.8949 4.3125,4.3125 v 11.719 c 0,2.4175 -1.8949,4.3438 -4.3125,4.3438 -2.4175,0 -4.3125,-1.9263 -4.3125,-4.3438 v -11.719 c 0,-2.4176 1.895,-4.3125 4.3125,-4.3125 z"
+ id="path5615" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2420.7,-22.825 c -4.0276,0 -7.3125,3.2848 -7.3125,7.3125 v 11.719 c 0,4.0276 3.2849,7.3438 7.3125,7.3438 4.0277,0 7.3125,-3.3162 7.3125,-7.3438 v -11.719 c 0,-4.0277 -3.2848,-7.3125 -7.3125,-7.3125 z m 0,3 c 2.4176,0 4.3125,1.8949 4.3125,4.3125 v 11.719 c 0,2.4175 -1.8949,4.3438 -4.3125,4.3438 -2.4175,0 -4.3125,-1.9263 -4.3125,-4.3438 v -11.719 c 0,-2.4176 1.895,-4.3125 4.3125,-4.3125 z"
+ id="path5617" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2376.6,8.3623 a 1.5020318,1.5020318 0 1 0 0.1562,3 h 52.25 a 1.5002,1.5002 0 1 0 0,-3 h -52.25 a 1.5002,1.5002 0 0 0 -0.1562,0 z"
+ id="path5619" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 2397.8,13.925 a 1.5002,1.5002 0 0 0 -1.3438,1.5 v 10.281 a 1.5002,1.5002 0 0 0 1.5,1.5 h 6.2188 c 2.3448,0 4.3125,2.145 4.3125,4.5625 0,2.4175 -1.895,4.3125 -4.3125,4.3125 h -6.4375 a 1.5002,1.5002 0 1 0 0,3 h 6.4375 c 4.0276,0 7.3125,-3.2849 7.3125,-7.3125 0,-4.0276 -3.2122,-7.5625 -7.3125,-7.5625 h -4.7188 v -7.2812 h 10.188 a 1.5002,1.5002 0 1 0 0,-3 h -11.688 a 1.5002,1.5002 0 0 0 -0.1562,0 z"
+ id="path5621" />
+ <path
+ d="m 1156,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.03,-746.03 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 z"
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient7109)"
+ sodipodi:nodetypes="sssssssssss"
+ id="path5623" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff"
+ d="m 1978.3,1141.4 c 7.7494,0 14.125,-6.3443 14.125,-14.094 0,-7.7494 -6.3756,-14.125 -14.125,-14.125 -7.7494,0 -14.094,6.3756 -14.094,14.125 a 3.5004,3.5004 0 1 0 7,0 c 0,-3.9663 3.1275,-7.125 7.0938,-7.125 3.9663,0 7.125,3.1587 7.125,7.125 0,3.9663 -3.1587,7.0937 -7.125,7.0937 h -0.2813 a 3.5035,3.5035 0 1 0 -0.3125,7 c 0.1999,0.01 0.3938,0 0.5938,0 z"
+ id="path5625" />
+ <rect
+ x="2425.5"
+ y="1014.8"
+ width="294.29001"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect5629" />
+ <path
+ d="m 2430.3,1122.6 c -65.126,0 -119.22,47.238 -129.91,109.31 h -70.969 c -12.465,0 -22.5,10.035 -22.5,22.5 0,12.465 10.035,22.5 22.5,22.5 h 70.969 c 10.674,62.089 64.77,109.34 129.91,109.34 65.138,0 119.23,-47.252 129.91,-109.34 h 137.06 c 12.465,0 22.5,-10.035 22.5,-22.5 0,-12.465 -10.035,-22.5 -22.5,-22.5 h -137.06 c -10.694,-62.106 -64.814,-109.31 -129.91,-109.31 z"
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ id="path5631" />
+ <path
+ sodipodi:start="0"
+ sodipodi:end="6.2776887"
+ sodipodi:cx="2430.3047"
+ sodipodi:cy="1254.4414"
+ sodipodi:open="true"
+ d="m 2519.1982,1254.4414 a 88.893486,88.893486 0 0 1 -88.7714,88.8934 88.893486,88.893486 0 0 1 -89.0153,-88.6491 88.893486,88.893486 0 0 1 88.5267,-89.137 88.893486,88.893486 0 0 1 89.2586,88.4041"
+ sodipodi:type="arc"
+ style="fill:#000000;stroke-width:0.67433"
+ sodipodi:ry="88.893486"
+ sodipodi:rx="88.893486"
+ id="path5633" />
+ <path
+ d="m 2430.3,1175.6 c -43.516,0 -78.781,35.266 -78.781,78.781 0,7.6897 1.1023,15.13 3.1563,22.156 l 145.66,-58.188 c -13.09,-25.386 -39.524,-42.75 -70.031,-42.75 z m 75.625,56.656 -145.69,58.188 c 13.086,25.38 39.541,42.75 70.062,42.75 43.516,0 78.781,-35.297 78.781,-78.812 v -0.4063 c -0.041,-7.535 -1.1424,-14.828 -3.1562,-21.719 z"
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ id="path5635" />
+ <rect
+ x="2009.8"
+ y="1431.9"
+ width="710"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect5637" />
+ </g>
+ <g
+ id="g29149">
+ <rect
+ x="-1430.8"
+ y="-352.34"
+ width="2055.1001"
+ height="2055.1001"
+ ry="129.3"
+ rx="129.3"
+ style="fill:#000000"
+ id="rect3007" />
+ <rect
+ x="-1384.5"
+ y="-305.98001"
+ width="1962.4"
+ height="1962.4"
+ ry="90.727997"
+ rx="90.727997"
+ style="fill:#333333"
+ id="rect3777" />
+ <rect
+ x="-1358.2"
+ y="-279.72"
+ width="1909.9"
+ height="1909.9"
+ ry="70.525002"
+ rx="70.525002"
+ style="fill:#000000"
+ id="rect3779" />
+ <rect
+ x="375.37"
+ y="802.65002"
+ width="97.857002"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect3788" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ sodipodi:nodetypes="sssssssssss"
+ d="m -1106.1,-149.32 c -67.467,0 -121.78,54.312 -121.78,121.78 v 1405.5 c 0,67.467 54.312,121.78 121.78,121.78 h 680.32 c 29.662,0 47.115,-4.0297 64.849,-21.729 l 755.83,-754.34 c 23.851,-23.803 26.352,-40.896 26.352,-72.473 v -678.83 c 0,-67.467 -54.312,-121.78 -121.78,-121.78 z"
+ id="path3796" />
+ <path
+ d="M -208.21,1279.8 230.36,851.23 h -444.29 z"
+ inkscape:connector-curvature="0"
+ style="fill:#000000"
+ id="path5147" />
+ <path
+ d="m -41.063,1048.4 -48.571,-54.286 33.571,-33.571 54.286,54.286"
+ inkscape:connector-curvature="0"
+ style="fill:#e6e6e6"
+ id="path4263" />
+ <path
+ d="m -131.78,1205.5 -37.143,-36.429 11.429,-12.857 30.714,6.4286 54.286,-54.286 c -6.7698,-14.828 -2.7537,-22.791 11.428,-24.286 -18.934,-68.674 49.856,-114.43 102.86,-90 l 60.714,-60 -12.143,-30 11.429,-10 41.428,35"
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ sodipodi:nodetypes="ccccccccccc"
+ id="path4265" />
+ <path
+ d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.98 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.98 -53.114,-119.09 -119.09,-119.09 h -1374.5 z M 6.1,869.06 h 189.31 l -387.34,382.16 v -178.94 c 0,-107.21 90.807,-203.22 198.03,-203.22 z"
+ inkscape:connector-curvature="0"
+ style="fill:#e1e1d1"
+ id="rect3781" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(1.037,0,0,1.037,-262.68,-1806.5)"
+ style="opacity:0.85773998;fill:#000000;filter:url(#filter5708)"
+ d="m -823.78,1579.8 c -65.979,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,51.168 31.947,94.61 77.062,111.53 -1.8213,-8.3056 -2.7812,-16.944 -2.7812,-25.813 v -1374.5 c 0,-65.979 53.114,-119.09 119.09,-119.09 h 1374.5 c 14.812,0 28.972,2.6957 42.031,7.5938 -11.729,-53.488 -59.201,-93.312 -116.31,-93.312 h -1374.5 z"
+ id="path5854" />
+ <path
+ d="m -897.19,202.71 -1.1875,-5.5312 -30.281,-141.12 h 13.687 l 27.813,126.53 33.875,-126.53 h 13.531 l -36.906,141.47 -1.4063,5.1875 h -5.375 -8.0625 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ sodipodi:nodetypes="cccccccccccc"
+ id="path4143" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="1.2277805"
+ inkscape:transform-center-x="1026.1266"
+ d="m -1081.2,1066.7 a 3.5004,3.5004 0 0 0 1.0743,6.8659 l 119.98,-0.1356 a 3.5004,3.5004 0 1 0 -0.016,-6.9996 l -119.98,0.1356 a 3.5004,3.5004 0 0 0 -1.0582,0.1337 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path3927" />
+ <path
+ sodipodi:nodetypes="csccsccccssccscccs"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-84.5624"
+ inkscape:transform-center-x="999.99804"
+ d="m -1076.7,973.88 c -1.7172,0.1873 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 127.18,10.755 c 1.8326,0.1672 3.6502,-1.3563 3.8058,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -127.18,-10.755 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z m 160,13.54 c -1.7213,-0.1455 -3.152,1.8167 -3.1203,3.5439 0.032,1.7271 1.5251,3.3029 3.248,3.4271 l 4.4928,0.3709 c 1.8325,0.1671 3.6502,-1.3564 3.8057,-3.1899 0.1556,-1.8336 -1.3794,-3.6416 -3.2139,-3.7856 l -4.4927,-0.3709 c -0.2391,-0.023 -0.4806,-0.022 -0.7194,0 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path3959" />
+ <path
+ d="m -516.79,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4112" />
+ <path
+ d="m -444.57,412.2 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.724,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5255,19.25 -19.25,19.25 -10.725,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4114" />
+ <path
+ d="m -689.77,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.725,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.724,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5255,-19.219 19.25,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4116" />
+ <path
+ d="m -617.55,649.6 c -15.018,0 -27.25,12.201 -27.25,27.219 v 40.406 c 0,15.018 12.232,27.25 27.25,27.25 15.018,0 27.219,-12.232 27.219,-27.25 v -40.406 c 0,-15.018 -12.201,-27.219 -27.219,-27.219 z m 0,8 c 10.724,0 19.219,8.4942 19.219,19.219 v 40.406 c 0,10.725 -8.4942,19.25 -19.219,19.25 -10.7248,0 -19.25,-8.5254 -19.25,-19.25 v -40.406 c 0,-10.725 8.5254,-19.219 19.25,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4118" />
+ <path
+ d="m -768.21,649.57 c -14.558,0 -26.594,11.436 -26.594,25.656 a 4.0004,4.0004 0 1 0 8,0 c 0,-9.7079 8.1783,-17.656 18.594,-17.656 10.415,0 18.625,7.9483 18.625,17.656 0,3.4188 -0.3012,6.2393 -1.9687,9.125 -1.6676,2.8857 -4.8983,6.1281 -11.656,9.5625 -15.36,7.8058 -30.328,23.228 -32.812,46.125 a 4.0004,4.0004 0 0 0 3.9688,4.4375 h 45.969 a 4.0004,4.0004 0 1 0 0,-8 h -41.219 c 3.4595,-17.376 15.261,-29.122 27.688,-35.438 7.6555,-3.8905 12.332,-8.1255 14.969,-12.688 2.6363,-4.5619 3.0625,-9.1977 3.0625,-13.125 0,-14.22 -12.067,-25.656 -26.625,-25.656 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4122" />
+ <path
+ d="m -8.1876,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.201,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4130" />
+ <path
+ d="m -102.13,197.01 a 4.0004,4.0004 0 0 0 -4,4 v 37.25 a 4.0004,4.0004 0 0 0 7.375,2.125 c 2.9991,-4.7533 11.204,-8.0625 18.344,-8.0625 10.688,0 19.25,8.648 19.25,19.625 v 12.344 c 0,10.977 -8.5616,19.625 -19.25,19.625 -7.2063,0 -15.115,-4.3265 -18.219,-9.875 a 4.0081,4.0081 0 1 0 -7,3.9063 c 4.8761,8.7154 15.069,13.969 25.219,13.969 15.054,0 27.25,-12.426 27.25,-27.625 v -12.344 c 0,-15.2 -12.196,-27.625 -27.25,-27.625 -5.9927,0 -12.456,1.4611 -17.719,4.6875 v -24 h 35.406 a 4.0004,4.0004 0 1 0 0,-8 h -39.406 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4132" />
+ <path
+ d="m -984.92,1208.6 a 2.5002,2.5002 0 0 0 -1.8125,0.8437 l -7.8125,8.9063 a 2.5018,2.5018 0 1 0 3.75,3.3125 l 3.4375,-3.9063 v 39.781 a 2.5002,2.5002 0 1 0 5,0 v -46.438 a 2.5002,2.5002 0 0 0 -2.5625,-2.5 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4159" />
+ <path
+ d="m -963.1,1208.6 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 19.906 a 2.5002,2.5002 0 0 0 4.625,1.3125 c 1.5017,-2.3801 5.7817,-4.125 9.5,-4.125 5.5171,0 9.9062,4.4472 9.9062,10.125 v 6.5938 c 0,5.6778 -4.3891,10.125 -9.9062,10.125 -3.7197,0 -7.858,-2.2704 -9.4375,-5.0938 a 2.5041,2.5041 0 1 0 -4.375,2.4375 c 2.6869,4.8027 8.253,7.6563 13.812,7.6563 8.2458,0 14.906,-6.8081 14.906,-15.125 v -6.5938 c 0,-8.3168 -6.6604,-15.125 -14.906,-15.125 -3.0809,0 -6.3424,0.7823 -9.125,2.3438 v -11.938 h 18.562 a 2.5002,2.5002 0 1 0 0,-5 h -21.062 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4161" />
+ <path
+ d="m -972.35,1253.6 c -2.2316,0 -4.0625,1.8309 -4.0625,4.0625 0,1.973 1.4112,3.5833 3.2812,3.9375 -0.352,1.6422 -0.8243,3.5675 -1.625,6.4062 3.379,-3.3496 5.078,-6.1447 6.0625,-8.6875 0.013,-0.033 0.05,-0.061 0.062,-0.094 v -0.031 c 0.1971,-0.4759 0.3125,-0.984 0.3125,-1.5312 0,-2.2316 -1.7996,-4.0625 -4.0312,-4.0625 z"
+ inkscape:connector-curvature="0"
+ style="fill:#000000"
+ id="path4165" />
+ <path
+ d="m -1077.3,1219.9 c -5.4507,0.026 -10.966,1.9221 -16,6.6563 a 2.5092,2.5092 0 1 0 3.4375,3.6562 c 5.6657,-5.3285 10.954,-6.1333 16.938,-4.875 5.9835,1.2583 12.504,4.8899 19.125,8.7188 6.6209,3.8289 13.346,7.8504 20.312,9.5312 6.9668,1.6809 14.393,0.7108 20.875,-5.2812 a 2.51,2.51 0 1 0 -3.4062,-3.6875 c -5.3695,4.9636 -10.436,5.5429 -16.312,4.125 -5.8769,-1.4179 -12.328,-5.1595 -18.969,-9 -6.6411,-3.8406 -13.471,-7.7833 -20.594,-9.2813 -1.7808,-0.3745 -3.5894,-0.5713 -5.4063,-0.5625 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4170" />
+ <path
+ d="m -852.33,1185.2 c -1.653,0 -3.0458,1.0383 -3.5937,2.5 l -34.656,12.281 v -9.2812 a 2.5002,2.5002 0 0 0 -2.5312,-2.5313 2.5002,2.5002 0 0 0 -2.4688,2.5313 v 11.062 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 11.219,3.9375 v 5.1562 l -11.219,3.9688 a 2.5002,2.5002 0 0 0 0,4.7187 l 11.219,3.9688 v 5.125 l -11.219,3.9687 a 2.5002,2.5002 0 0 0 0,4.7188 l 50.875,18.031 c 0.5479,1.4617 1.9407,2.5313 3.5937,2.5313 2.1292,0 3.8438,-1.7459 3.8438,-3.875 0,-2.1292 -1.7146,-3.8438 -3.8438,-3.8438 -0.698,0 -1.3415,0.2068 -1.9062,0.5313 l -36.344,-12.906 a 2.5002,2.5002 0 0 0 0,-0.1875 v -5.4062 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.7188 l -10.562,-3.75 v -5.625 l 10.562,-3.75 a 2.5002,2.5002 0 0 0 0,-4.6875 l -10.562,-3.75 v -5.5937 l 36.344,-12.875 c 0.5647,0.3244 1.2082,0.5312 1.9062,0.5312 2.1292,0 3.8438,-1.7458 3.8438,-3.875 0,-2.1291 -1.7146,-3.8437 -3.8438,-3.8437 z m -43.25,21.844 v 2.0625 l -2.9062,-1.0312 z m 5,9.0938 2.2813,0.8125 -2.2813,0.8125 z m -5,8.6875 v 2.0625 l -2.9062,-1.0313 z m 5,9.1562 2.25,0.7813 -2.25,0.7812 z m -5,8.6563 v 2.0625 l -2.9062,-1.0313 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4172" />
+ <path
+ d="m -788.35,1184.2 a 2.5002,2.5002 0 0 0 -1.7841,1.1002 l -14.719,21.974 -25.423,7.2255 a 2.5002,2.5002 0 0 0 -1.2786,3.9547 l 16.354,20.784 -0.9515,26.434 a 2.5002,2.5002 0 0 0 3.36,2.4085 l 24.799,-9.0988 24.828,9.069 a 2.5002,2.5002 0 0 0 3.3601,-2.4382 l -1.011,-26.404 16.295,-20.814 a 2.5002,2.5002 0 0 0 -1.2786,-3.9547 l -25.423,-7.2255 -14.748,-21.914 a 2.5002,2.5002 0 0 0 -2.3788,-1.1002 z m 0.2973,6.9877 13.202,19.595 a 2.5002,2.5002 0 0 0 1.3976,1.011 l 22.717,6.4524 -14.57,18.584 a 2.5002,2.5002 0 0 0 -0.5353,1.6354 l 0.8921,23.609 -22.182,-8.0879 a 2.5002,2.5002 0 0 0 -1.7246,0 l -22.182,8.1473 0.8623,-23.639 a 2.5002,2.5002 0 0 0 -0.5352,-1.6354 l -14.57,-18.554 22.688,-6.4821 a 2.5002,2.5002 0 0 0 1.3975,-1.011 l 13.143,-19.625 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4195" />
+ <path
+ d="m -788.4,1216 c -4.8517,0 -8.8125,3.9608 -8.8125,8.8125 a 2.1387,2.1387 0 1 0 4.25,0 c 0,-2.5403 2.0222,-4.5312 4.5625,-4.5312 2.5403,0 4.5625,1.9909 4.5625,4.5312 0,0.6956 -0.176,1.0804 -0.9062,1.9688 -0.7302,0.8884 -1.9841,2.0898 -3.4063,3.8125 l -9.3437,11.312 a 2.1387,2.1387 0 0 0 1.6562,3.5 h 15.406 a 2.14065,2.14065 0 0 0 0,-4.2813 h -10.875 l 6.4375,-7.8125 c 1.2474,-1.511 2.4036,-2.5926 3.4062,-3.8125 1.0026,-1.2198 1.9063,-2.8108 1.9063,-4.6875 0,-4.8517 -3.992,-8.8125 -8.8438,-8.8125 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4201" />
+ <path
+ d="m -719.32,1204.4 a 2.5002,2.5002 0 0 0 -2.25,2.5 v 39.656 a 2.5002,2.5002 0 0 0 2.75,2.5 h 0.031 8.5625 c 7.6375,0 13.844,-6.2375 13.844,-13.875 0,-7.6376 -6.2062,-13.844 -13.844,-13.844 h -6.3438 v -11.938 h 14.156 a 2.5002,2.5002 0 1 0 0,-5 h -16.656 a 2.5002,2.5002 0 0 0 -0.25,0 z m 2.75,21.938 h 6.3437 c 4.954,0 8.8438,3.8897 8.8438,8.8438 0,4.954 -3.8898,8.875 -8.8438,8.875 h -6.3437 v -17.719 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4204" />
+ <path
+ d="m -667.07,1189.1 a 2.1387,2.1387 0 0 0 -2.125,2.1875 v 68.688 a 2.1406,2.1406 0 0 0 4.2812,0 v -68.688 A 2.1387,2.1387 0 0 0 -667.07,1189.1 Z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4213" />
+ <path
+ d="m -696.1,1257.9 a 2.503123,2.503123 0 1 0 0.25,5 h 57.594 a 2.5002,2.5002 0 1 0 0,-5 h -57.594 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4215" />
+ <path
+ d="m -997.61,1301.5 a 2.7908,2.7908 0 0 0 -2.5192,2.7905 v 33.331 a 2.7908,2.7908 0 1 0 5.5809,0 v -30.54 h 10.387 a 2.7908,2.7908 0 1 0 0,-5.581 h -13.177 a 2.7908,2.7908 0 0 0 -0.2713,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4217" />
+ <path
+ d="m -967.11,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7126,3.3975 7.7126,7.7126 v 12.363 c 0,4.3151 -3.3975,7.6739 -7.7126,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4219" />
+ <path
+ d="m -939.56,1301.5 c -7.3103,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9833,13.255 13.294,13.255 6.1555,0 11.384,-4.1964 12.867,-9.9218 a 2.7908,2.7908 0 1 0 -5.3872,-1.3952 c -0.8578,3.3113 -3.8467,5.736 -7.4801,5.736 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 3.63,0 6.5804,2.4293 7.4414,5.736 a 2.8012164,2.8012164 0 1 0 5.4259,-1.3953 c -1.4886,-5.7173 -6.7175,-9.9217 -12.867,-9.9217 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4221" />
+ <path
+ d="m -913.39,1301.5 a 2.7908,2.7908 0 0 0 -2.4804,2.8293 v 33.331 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 A 2.7908,2.7908 0 0 0 -913.39,1301.5 Z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4224" />
+ <path
+ d="m -921.92,1301.5 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 17.131 a 2.7908,2.7908 0 1 0 0,-5.581 h -17.131 a 2.7908,2.7908 0 0 0 -0.2713,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4226" />
+ <path
+ d="m -871.11,1301.5 c -5.4866,0 -9.9993,4.5127 -9.9993,9.9993 0,5.4866 4.5127,9.9993 9.9993,9.9993 5.4865,0 9.9992,-4.5127 9.9992,-9.9993 0,-5.4866 -4.5127,-9.9993 -9.9992,-9.9993 z m 0,5.581 c 2.4704,0 4.4183,1.9479 4.4183,4.4183 0,2.4704 -1.9479,4.4183 -4.4183,4.4183 -2.4704,0 -4.4183,-1.9479 -4.4183,-4.4183 0,-2.4704 1.9479,-4.4183 4.4183,-4.4183 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4232" />
+ <path
+ d="m -871.11,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4234" />
+ <path
+ d="m -853.24,1301.5 a 2.7948015,2.7948015 0 1 0 0.31,5.581 h 9.8055 c -4.1407,8.1507 -7.5055,18.252 -10.348,29.882 a 2.7918179,2.7918179 0 0 0 5.4259,1.3178 c 3.274,-13.394 7.1815,-24.728 11.898,-32.556 a 2.7908,2.7908 0 0 0 -2.403,-4.2245 h -14.379 a 2.7908,2.7908 0 0 0 -0.31,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4236" />
+ <path
+ d="m -817.47,1301.5 a 2.7908,2.7908 0 0 0 -2.1704,1.1239 l -5.8135,7.7514 a 2.7908,2.7908 0 1 0 4.457,3.3331 l 0.8139,-1.0852 v 24.998 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4240" />
+ <path
+ d="m -797.9,1301.5 a 2.7908,2.7908 0 0 0 -2.1316,1.1239 l -5.8136,7.7514 a 2.7908,2.7908 0 1 0 4.4571,3.3331 l 0.7751,-1.0464 v 24.959 a 2.7908,2.7908 0 1 0 5.581,0 v -33.331 a 2.7908,2.7908 0 0 0 -2.868,-2.7905 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4250" />
+ <path
+ d="m -726.59,1301.5 c -7.3104,0 -13.294,5.9832 -13.294,13.294 v 12.363 c 0,7.3104 5.9832,13.255 13.294,13.255 7.3104,0 13.294,-5.9445 13.294,-13.255 v -12.363 c 0,-7.3104 -5.9832,-13.294 -13.294,-13.294 z m 0,5.581 c 4.3151,0 7.7127,3.3975 7.7127,7.7126 v 12.363 c 0,4.3151 -3.3976,7.6739 -7.7127,7.6739 -4.315,0 -7.7126,-3.3588 -7.7126,-7.6739 v -12.363 c 0,-4.3151 3.3976,-7.7126 7.7126,-7.7126 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4252" />
+ <path
+ d="m -753.51,1315.8 c -6.7839,0 -12.335,5.5509 -12.335,12.335 0,6.7839 5.5509,12.335 12.335,12.335 6.7839,0 12.335,-5.5509 12.335,-12.335 0,-6.7839 -5.5509,-12.335 -12.335,-12.335 z m 0,5.5506 c 3.7677,0 6.7841,3.0165 6.7841,6.7842 0,3.7677 -3.0164,6.7841 -6.7841,6.7841 -3.7677,0 -6.7842,-3.0164 -6.7842,-6.7841 0,-3.7677 3.0165,-6.7842 6.7842,-6.7842 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4254" />
+ <path
+ d="m -753.52,1301.5 c -6.7839,0 -12.325,5.5408 -12.325,12.325 v 14.262 a 2.7908,2.7908 0 1 0 5.581,0 v -14.262 c 0,-3.7677 2.976,-6.7437 6.7437,-6.7437 2.7232,0 5.1777,1.6007 6.2399,4.1082 a 2.7965,2.7965 0 1 0 5.1546,-2.1704 c -1.9302,-4.5568 -6.4457,-7.5188 -11.394,-7.5188 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4258" />
+ <path
+ d="m -787.63,1317.3 a 2.7938,2.7938 0 1 0 0.2713,5.581 h 14.418 a 2.7908,2.7908 0 1 0 0,-5.581 h -14.418 a 2.7908,2.7908 0 0 0 -0.2713,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4261" />
+ <path
+ d="m 144.24,272.53 c -6.7856,0 -12.69,3.8407 -15.594,9.5 a 2.5002,2.5002 0 1 0 4.4375,2.2812 c 2.0712,-4.0371 6.2544,-6.7812 11.156,-6.7812 6.9827,0 12.531,5.5486 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -4.4773,0 -8.3427,-2.2743 -10.562,-5.75 a 2.5010041,2.5010041 0 1 0 -4.2187,2.6875 c 3.1089,4.8679 8.5832,8.0625 14.781,8.0625 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4271" />
+ <path
+ d="m 221.24,272.53 c -9.6661,0 -17.5,7.865 -17.5,17.531 v 21.344 c 0,9.6661 7.8339,17.531 17.5,17.531 9.6662,0 17.531,-7.8651 17.531,-17.531 v -21.344 c 0,-9.6662 -7.8651,-17.531 -17.531,-17.531 z m 0,5 c 6.9827,0 12.531,5.5485 12.531,12.531 v 21.344 c 0,6.9826 -5.5486,12.531 -12.531,12.531 -6.9826,0 -12.5,-5.5486 -12.5,-12.531 v -21.344 c 0,-6.9827 5.5174,-12.531 12.5,-12.531 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4273" />
+ <path
+ d="m 169.86,272.53 a 2.503123,2.503123 0 1 0 0.25,5 h 18.156 l -12.375,17.5 a 2.5002,2.5002 0 0 0 2.3437,3.9375 c 5.7215,-0.6862 9.0208,0.5421 11.188,2.4375 2.1668,1.8954 3.3312,4.7379 3.7813,7.7187 0.4713,3.1214 -0.2842,6.6267 -1.9063,9.4063 -1.622,2.7795 -4.0115,4.7449 -6.7187,5.25 -4.475,0.8347 -10.174,-1.6848 -12.25,-5.8438 a 2.5016331,2.5016331 0 1 0 -4.4688,2.25 c 3.2375,6.4873 10.824,9.7687 17.625,8.5 4.4334,-0.827 7.9333,-3.8692 10.125,-7.625 2.1918,-3.7558 3.1946,-8.2945 2.5313,-12.688 -0.5669,-3.7543 -2.0648,-7.7957 -5.4063,-10.719 -2.4107,-2.1089 -5.7373,-3.4771 -9.9062,-3.7813 l 12.312,-17.406 a 2.5002,2.5002 0 0 0 -2.0625,-3.9375 h -22.969 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4275" />
+ <path
+ d="m 145.11,298.25 a 2.503123,2.503123 0 1 0 0.25,5 h 13.125 a 2.5002,2.5002 0 1 0 0,-5 H 145.36 a 2.5002,2.5002 0 0 0 -0.25,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4281" />
+ <path
+ d="m 147.41,654.11 a 3.5004,3.5004 0 0 0 -3,1.9063 l -22,41.875 -75.406,87.469 a 3.5014,3.5014 0 1 0 5.3125,4.5625 l 75.688,-87.844 a 3.5004,3.5004 0 0 0 0.4687,-0.6563 l 22.125,-42.156 a 3.5004,3.5004 0 0 0 -3.1875,-5.1563 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168"
+ id="path4285" />
+ <path
+ d="m 49.41,773.83 c -7.7494,0 -14.125,6.3443 -14.125,14.094 0,7.7494 6.3756,14.125 14.125,14.125 7.7494,0 14.094,-6.3756 14.094,-14.125 a 3.5004,3.5004 0 1 0 -7,0 c 0,3.9663 -3.1274,7.125 -7.0938,7.125 -3.9663,0 -7.125,-3.1587 -7.125,-7.125 0,-3.9663 3.1587,-7.0937 7.125,-7.0937 h 0.2813 a 3.5035,3.5035 0 1 0 0.3125,-7 c -0.1998,-0.01 -0.3938,0 -0.5938,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff"
+ id="path4287" />
+ <circle
+ r="54.285713"
+ cy="642.65503"
+ cx="194.64856"
+ style="fill:#b3b3b3"
+ id="path4283" />
+ <circle
+ r="42.669113"
+ cy="642.64874"
+ cx="194.65746"
+ style="fill:#808080;stroke-width:0.78601003"
+ id="path4294" />
+ <path
+ d="m 188.35,600.96 c -20.3,3.0393 -35.875,20.541 -35.875,41.688 0,21.147 15.575,38.679 35.875,41.719 v -83.406 z m 12.625,0.031 v 83.344 c 20.284,-3.0534 35.844,-20.552 35.844,-41.688 0,-21.135 -15.56,-38.603 -35.844,-41.656 z"
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ id="path4289" />
+ <path
+ d="m -268.5,1124 c -1.0098,0.01 -2.0071,0.4765 -2.6563,1.25 l -75.719,87.844 c -0.1719,0.2111 -0.3191,0.4424 -0.4375,0.6875 l -34.12,26.143 c -0.8509,1.628 -0.1437,3.8835 1.4843,4.7343 1.6281,0.8509 3.8836,0.1437 4.7344,-1.4843 l 33.902,-25.768 75.469,-87.594 c 0.8866,-1.0076 1.1136,-2.5465 0.5558,-3.7672 -0.5578,-1.2207 -1.87,-2.0562 -3.212,-2.0453 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#cc9168"
+ sodipodi:nodetypes="cccccscccsc"
+ id="path4296" />
+ <circle
+ r="54.285713"
+ cy="-1272.595"
+ cx="413.50156"
+ transform="scale(-1)"
+ style="fill:#c5c5bf"
+ id="path4300-2" />
+ <circle
+ r="42.669113"
+ cy="-1272.5112"
+ cx="413.50345"
+ transform="scale(-1)"
+ style="fill:#808080;stroke-width:0.78601003"
+ id="path4302" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#cccccc"
+ d="m -407.2,1314.3 c 20.3,-3.0394 35.875,-20.541 35.875,-41.688 0,-21.147 -15.575,-38.679 -35.875,-41.719 v 83.406 z m -12.625,-0.031 v -83.344 c -20.284,3.0534 -35.844,20.552 -35.844,41.688 0,21.135 15.56,38.603 35.844,41.656 z"
+ id="path4304" />
+ </g>
+ <g
+ inkscape:label="HMI:Meter@/PUMP0/SLOTH"
+ transform="matrix(18.912567,0,0,18.912567,-2339.3501,1119.9665)"
+ id="g19348">
+ <path
+ inkscape:label="range"
+ sodipodi:open="true"
+ d="M 69.660373,-2.4694091 A 54.660004,54.024006 0 0 1 124.19821,-56.449318"
+ sodipodi:end="4.7101543"
+ sodipodi:start="3.1424064"
+ sodipodi:ry="54.024006"
+ sodipodi:rx="54.660004"
+ sodipodi:cy="-2.4254472"
+ sodipodi:cx="124.32036"
+ sodipodi:type="arc"
+ id="path19332"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.38814712;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ inkscape:label="needle"
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path19334"
+ d="M 123.16695,-3.4226979 70.419817,-6.3833915"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.92543143;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:29.63333321;stroke-opacity:1;marker-start:url(#marker20566-2);marker-end:url(#marker23223)" />
+ </g>
+ <g
+ id="g24628">
+ <path
+ d="m 111.68,388.94 2.4663,1.2855 71.607,37.323 2.4386,1.2711 2.4387,-1.2711 71.607,-37.323 2.4663,-1.2855 -2.4386,-1.271 -71.607,-37.323 -2.4664,-1.2855 -2.4663,1.2855 -71.607,37.323 z m 9.81,0 66.702,-34.766 66.73,34.78 -66.702,34.766 -66.73,-34.781 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect4358" />
+ <path
+ d="m 174.86,371.46 -2.2812,1.375 -11.406,6.9687 -0.7187,0.4375 v 0.8438 4.4687 h 3 v -3.625 l 8.4062,-5.125 v 9.5313 l -3.5937,3.8125 -0.9375,1.0312 0.9375,1.0313 3.5937,3.8125 v 9.5312 l -8.4062,-5.125 v -3.625 h -3 v 4.4688 0.8437 l 0.7187,0.4375 11.406,6.9688 2.2812,1.375 v -2.6563 -12.812 -0.5937 l -0.4062,-0.4375 -3.0313,-3.2188 3.0313,-3.25 0.4062,-0.4375 v -0.5937 -12.781 -2.6562 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4362" />
+ <path
+ d="m 181.18,365.18 v 48.594 h 3 V 365.18 Z m 11.062,0 v 48.594 h 3 V 365.18 Z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4366" />
+ <path
+ d="m 192.36,377.09 -11.062,24.469 2.7188,1.2188 11.094,-24.469 -2.75,-1.2187 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4369" />
+ <path
+ d="m 200.8,368.12 v 2.625 37.5 h 3 v -34.906 l 8,4.5937 v 22.969 h 3 v -23.812 -0.875 l -0.75,-0.4375 -11,-6.3438 -2.25,-1.3125 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4371" />
+ <path
+ d="m 141.52,456.11 c -4.2082,0 -7.5312,3.6567 -7.5312,8 a 1.5002,1.5002 0 1 0 3,0 c 0,-2.8368 2.0679,-5 4.5312,-5 2.4633,0 4.5313,2.1632 4.5313,5 0,1.0172 -0.081,1.842 -0.5,2.6562 -0.419,0.8143 -1.2183,1.7196 -2.9688,2.7188 -4.2189,2.4083 -8.2687,7.139 -8.9375,14.062 a 1.5002,1.5002 0 0 0 1.5,1.625 h 12.281 a 1.5002,1.5002 0 1 0 0,-3 H 137.02 c 1.0026,-4.93 3.9357,-8.3089 7.0625,-10.094 2.1,-1.1987 3.4254,-2.517 4.1563,-3.9375 0.7308,-1.4205 0.8125,-2.8442 0.8125,-4.0312 0,-4.3433 -3.3231,-8 -7.5313,-8 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4373" />
+ <path
+ d="m 191.63,456.12 a 1.5002,1.5002 0 0 0 -1.0625,0.625 l -12.656,18.5 a 1.5002,1.5002 0 0 0 1.2188,2.3438 h 11.188 v 6.0625 a 1.5002,1.5002 0 1 0 3,0 v -6.0625 h 0.5312 a 1.5002,1.5002 0 1 0 0,-3 h -0.5312 v -16.969 a 1.5002,1.5002 0 0 0 -1.6875,-1.5 z m -1.3125,6.3125 v 12.156 h -8.3125 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4157-8" />
+ <path
+ d="m 260.25,456.14 a 1.5002,1.5002 0 0 0 -1.1875,1.5 v 11.156 a 1.5002,1.5002 0 0 0 2.75,0.8125 c 0.8305,-1.2895 3.2878,-2.2812 5.4062,-2.2812 3.1378,0 5.5938,2.446 5.5938,5.5625 v 3.7187 c 0,3.1165 -2.456,5.5625 -5.5938,5.5625 -2.1156,0 -4.4947,-1.271 -5.375,-2.8125 a 1.5002,1.5002 0 1 0 -2.5937,1.5 c 1.5623,2.7359 4.7718,4.3125 7.9687,4.3125 4.7418,0 8.5938,-3.8296 8.5938,-8.5625 v -3.7187 c 0,-4.7328 -3.852,-8.5625 -8.5938,-8.5625 -1.7311,0 -3.5751,0.4087 -5.1562,1.25 v -6.4375 h 10.562 a 1.5002,1.5002 0 1 0 0,-3 h -12.062 a 1.5002,1.5002 0 0 0 -0.3125,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4397" />
+ <path
+ d="m 139.49,518.96 a 1.5002,1.5002 0 0 0 -1.1875,0.625 l -4.4687,6.0625 a 1.5002,1.5002 0 1 0 2.4062,1.7812 l 1.7813,-2.4062 v 21.5 a 1.5002,1.5002 0 1 0 3,0 v -26.062 a 1.5002,1.5002 0 0 0 -1.5313,-1.5 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4250-1" />
+ <path
+ d="m 177.16,530.1 c -4.9217,0 -8.9328,4.0208 -8.9328,8.9543 0,4.9336 4.0111,8.9544 8.9328,8.9544 4.9217,0 8.9329,-4.0208 8.9329,-8.9544 0,-4.9335 -4.0112,-8.9543 -8.9329,-8.9543 z m 0,3.0116 c 3.3023,0 5.9286,2.6325 5.9286,5.9427 0,3.3103 -2.6263,5.983 -5.9286,5.983 -3.3023,0 -5.9285,-2.6727 -5.9285,-5.983 0,-3.3102 2.6262,-5.9427 5.9285,-5.9427 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4254-5" />
+ <path
+ d="m 177.15,518.96 c -4.9246,0 -8.9375,4.0381 -8.9375,8.9687 v 11.125 a 1.5002,1.5002 0 1 0 3,0 v -11.125 c 0,-3.3131 2.6381,-5.9687 5.9375,-5.9687 2.3902,0 4.5663,1.4467 5.5,3.6562 a 1.5002,1.5002 0 1 0 2.75,-1.1875 c -1.3986,-3.3097 -4.6606,-5.4687 -8.25,-5.4687 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4258-9" />
+ <path
+ d="m 154.3,536.89 c 4.9217,0 8.9328,-4.0208 8.9328,-8.9543 0,-4.9335 -4.0111,-8.9543 -8.9328,-8.9543 -4.9217,0 -8.9329,4.0208 -8.9329,8.9543 0,4.9335 4.0112,8.9543 8.9329,8.9543 z m 0,-3.0115 c -3.3024,0 -5.9286,-2.6326 -5.9286,-5.9428 0,-3.3103 2.6262,-5.9829 5.9286,-5.9829 3.3023,0 5.9285,2.6726 5.9285,5.9829 0,3.3102 -2.6262,5.9428 -5.9285,5.9428 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4446" />
+ <path
+ d="m 161.74,526.4 a 1.5002,1.5002 0 0 0 -1.5,1.5312 v 11.125 c 0,3.3132 -2.6381,5.9688 -5.9375,5.9688 -2.3902,0 -4.535,-1.4155 -5.4687,-3.625 a 1.5060236,1.5060236 0 1 0 -2.7813,1.1562 c 1.3986,3.3097 4.6606,5.4688 8.25,5.4688 4.9246,0 8.9375,-4.0382 8.9375,-8.9688 v -11.125 a 1.5002,1.5002 0 0 0 -1.5,-1.5312 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4448" />
+ <path
+ d="m 225.02,523.02 a 1.5002,1.5002 0 0 0 -1.3438,1.5 v 18.562 a 1.5002,1.5002 0 1 0 3,0 V 526.02 h 7.7813 a 1.5002,1.5002 0 1 0 0,-3 h -9.2813 a 1.5002,1.5002 0 0 0 -0.1562,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4458" />
+ <path
+ d="m -268.26,1141.4 c 7.7494,0 14.125,-6.3444 14.125,-14.094 0,-7.7494 -6.3756,-14.125 -14.125,-14.125 -7.7494,0 -14.094,6.3756 -14.094,14.125 a 3.5004,3.5004 0 1 0 7,0 c 0,-3.9663 3.1275,-7.125 7.0938,-7.125 3.9663,0 7.125,3.1587 7.125,7.125 0,3.9664 -3.1587,7.0938 -7.125,7.0938 h -0.2813 a 3.5035,3.5035 0 1 0 -0.3125,7 c 0.1999,0.01 0.3938,0 0.5938,0 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#ffffff"
+ id="path4298" />
+ <rect
+ x="178.94"
+ y="1014.8"
+ width="294.29001"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect3790" />
+ <path
+ d="m 183.75,1122.6 c -65.126,0 -119.22,47.238 -129.91,109.31 h -70.969 c -12.465,0 -22.5,10.035 -22.5,22.5 0,12.465 10.035,22.5 22.5,22.5 H 53.84 c 10.674,62.09 64.77,109.34 129.91,109.34 65.138,0 119.23,-47.252 129.91,-109.34 h 137.06 c 12.465,0 22.5,-10.035 22.5,-22.5 0,-12.465 -10.035,-22.5 -22.5,-22.5 H 313.66 c -10.69,-62.1 -64.81,-109.3 -129.91,-109.3 z"
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ id="rect3792" />
+ <path
+ sodipodi:start="0"
+ sodipodi:end="6.2776887"
+ sodipodi:cx="450.52805"
+ sodipodi:cy="401.31888"
+ transform="matrix(0.67433,0,0,0.67433,-120.05,983.82)"
+ sodipodi:open="true"
+ d="M 582.35295,401.31888 A 131.82491,131.82491 0 0 1 450.70919,533.14366 131.82491,131.82491 0 0 1 318.70364,401.68117 131.82491,131.82491 0 0 1 449.9846,269.49509 131.82491,131.82491 0 0 1 582.35096,400.59429"
+ sodipodi:type="arc"
+ style="fill:#000000"
+ sodipodi:ry="131.82491"
+ sodipodi:rx="131.82491"
+ id="path3802" />
+ <path
+ d="m 183.75,1175.6 c -43.516,0 -78.781,35.266 -78.781,78.781 0,7.6898 1.1023,15.13 3.1563,22.156 l 145.66,-58.188 c -13.09,-25.386 -39.524,-42.75 -70.031,-42.75 z m 75.625,56.656 -145.69,58.188 c 13.086,25.38 39.541,42.75 70.062,42.75 43.516,0 78.781,-35.297 78.781,-78.812 v -0.4062 c -0.041,-7.535 -1.1424,-14.828 -3.1562,-21.719 z"
+ inkscape:connector-curvature="0"
+ style="fill:#333333"
+ id="path3804" />
+ <rect
+ x="-236.78"
+ y="1431.9"
+ width="710"
+ height="45"
+ ry="22.5"
+ rx="22.5"
+ style="fill:#333333"
+ id="rect3794" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m 64.543,197.04 c -15.018,0 -27.219,12.201 -27.219,27.219 v 40.406 c 0,15.018 12.2,27.25 27.219,27.25 15.018,0 27.25,-12.232 27.25,-27.25 v -40.406 c 0,-15.018 -12.232,-27.219 -27.25,-27.219 z m 0,8 c 10.725,0 19.25,8.4942 19.25,19.219 v 40.406 c 0,10.725 -8.5254,19.25 -19.25,19.25 -10.724,0 -19.219,-8.5254 -19.219,-19.25 v -40.406 c 0,-10.725 8.4942,-19.219 19.219,-19.219 z"
+ id="path5724" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m -608.11,412.19 a 4.2093,4.2093 0 1 0 0.4204,8.408 h 30.531 l -20.81,29.428 a 4.2044,4.2044 0 0 0 3.9412,6.6213 c 9.6213,-1.1538 15.169,0.9116 18.813,4.0989 3.6435,3.1873 5.6017,7.9672 6.3585,12.98 0.7925,5.2489 -0.4779,11.143 -3.2056,15.818 -2.7276,4.6741 -6.7457,7.9791 -11.298,8.8283 -7.525,1.4038 -17.109,-2.8331 -20.6,-9.8268 a 4.2067,4.2067 0 0 0 -7.5146,3.7836 c 5.4441,10.909 18.201,16.427 29.638,14.294 7.4551,-1.3908 13.34,-6.5064 17.026,-12.822 3.6857,-6.3157 5.3719,-13.948 4.2565,-21.335 -0.9532,-6.3133 -3.4721,-13.109 -9.0911,-18.025 -4.0538,-3.5462 -9.6478,-5.8469 -16.658,-6.3585 l 20.705,-29.27 a 4.2044,4.2044 0 0 0 -3.4683,-6.6213 h -38.624 a 4.2044,4.2044 0 0 0 -0.4204,0 z"
+ id="path5726" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m -304.56,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -277.283,241.201 -289.54,229 -304.56,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5654,19.255 -19.31,19.255 -10.744,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z"
+ id="path5728" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ d="m -361.49,229.03 a 3.9804,3.9804 0 0 0 -2.8192,1.8242 l -39.192,61.69 a 3.9804,3.9804 0 0 0 3.3719,6.0806 h 35.157 v 21.227 a 3.9804,3.9804 0 1 0 7.96,0 v -21.227 h 2.377 a 3.9804,3.9804 0 1 0 0,-7.96 h -2.377 v -57.655 a 3.9804,3.9804 0 0 0 -4.4775,-3.98 z m -3.4825,17.634 v 44.001 h -27.916 z"
+ id="path5730" />
+ <path
+ d="m -228.85,229 c -15.021,0 -27.222,12.201 -27.222,27.222 v 40.446 c 0,15.021 12.201,27.222 27.222,27.222 15.021,0 27.277,-12.201 27.277,-27.222 V 256.222 C -201.573,241.201 -213.83,229 -228.85,229 Z m 0,7.9675 c 10.744,0 19.31,8.5101 19.31,19.255 v 40.446 c 0,10.744 -8.5655,19.255 -19.31,19.255 -10.7445,0 -19.255,-8.5101 -19.255,-19.255 v -40.446 c 0,-10.744 8.5101,-19.255 19.255,-19.255 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5732" />
+ <path
+ d="m 191.83,520.42 h 14.362 l -11.391,26.091"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round"
+ id="path5734" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round"
+ d="m 234.26,457.58 h 14.362 l -11.391,26.09"
+ id="path5736" />
+ <path
+ d="m 214.66,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5738" />
+ <path
+ d="m 165.16,456.08 c -4.7833,0 -8.6562,3.9041 -8.6562,8.6875 v 11.719 c 0,4.7834 3.8729,8.6875 8.6562,8.6875 4.7834,0 8.6875,-3.9041 8.6875,-8.6875 v -11.719 c 0,-4.7834 -3.9041,-8.6875 -8.6875,-8.6875 z m 0,3 c 3.1733,0 5.6875,2.5142 5.6875,5.6875 v 11.719 c 0,3.1733 -2.5142,5.6875 -5.6875,5.6875 -3.1732,0 -5.6562,-2.5142 -5.6562,-5.6875 v -11.719 c 0,-3.1733 2.483,-5.6875 5.6562,-5.6875 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5740" />
+ <path
+ d="m -1171.1,945.11 a 2.6676,2.6676 0 0 0 -2.1117,1.1113 l -7.9464,10.78 a 2.6676,2.6676 0 1 0 4.2788,3.1675 l 3.1675,-4.2789 v 38.232 a 2.6676,2.6676 0 1 0 5.3347,0 v -46.345 a 2.6676,2.6676 0 0 0 -2.7229,-2.6673 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path4250-1-3" />
+ <path
+ d="m -1144.4,945.12 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.5059 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3346 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6428 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5738-5" />
+ <path
+ d="m -1107.5,944.76 c -8.5059,0 -15.448,6.8868 -15.448,15.393 v 20.894 c 0,8.5059 6.9424,15.393 15.448,15.393 8.5059,0 15.448,-6.8868 15.448,-15.393 v -20.894 c 0,-8.506 -6.9424,-15.393 -15.448,-15.393 z m 0,5.3347 c 5.6428,0 10.114,4.4153 10.114,10.058 v 20.894 c 0,5.6427 -4.4708,10.058 -10.114,10.058 -5.6428,0 -10.114,-4.4153 -10.114,-10.058 v -20.894 c 0,-5.6428 4.4708,-10.058 10.114,-10.058 z"
+ inkscape:connector-curvature="0"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="rect5763" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-426.79377"
+ inkscape:transform-center-x="933.15822"
+ d="m -981.29,613.51 a 3.5004,3.5004 0 0 0 -1.8867,6.6884 l 109.11,49.911 a 3.5004,3.5004 0 1 0 2.9043,-6.3686 l -109.11,-49.911 A 3.5004,3.5004 0 0 0 -981.29,613.51 Z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5787" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-773.89442"
+ inkscape:transform-center-x="673.81332"
+ d="m -705.38,246.62 a 3.5004,3.5004 0 0 0 -4.4791,5.3134 l 78.781,90.494 a 3.5004,3.5004 0 1 0 5.2739,-4.6022 l -78.781,-90.494 A 3.5004,3.5004 0 0 0 -705.38,246.62 Z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5789" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-976.42875"
+ inkscape:transform-center-x="315.47402"
+ d="m -325.06,33.219 a 3.5004,3.5004 0 0 0 -6.2068,3.1256 l 36.88,114.17 a 3.5004,3.5004 0 1 0 6.6582,-2.1593 l -36.88,-114.18 a 3.5004,3.5004 0 0 0 -0.4514,-0.9664 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5791" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1026.1273"
+ inkscape:transform-center-x="-0.023585956"
+ d="m 9.3597,-18.399 a 3.5004,3.5004 0 0 0 -6.8671,1.0659 l -0.011,119.98 a 3.5004,3.5004 0 1 0 6.9995,-0.01 l 0.011,-119.98 a 3.5004,3.5004 0 0 0 -0.1324,-1.0584 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5793" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-165.18705"
+ inkscape:transform-center-x="1042.4061"
+ d="m -1068.4,895.12 a 1.888,3.5004 9.0712 0 0 -0.5103,6.8713 l 63.927,10.069 a 1.888,3.5004 9.0712 1 0 1.0946,-6.9134 l -63.927,-10.069 a 1.888,3.5004 9.0712 0 0 -0.5847,0.042 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5795" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-249.64231"
+ inkscape:transform-center-x="1025.4638"
+ d="m -1050.7,808.09 a 1.888,3.5004 13.749 0 0 -1.0689,6.8068 l 62.893,15.249 a 1.888,3.5004 13.749 1 0 1.6548,-6.8011 l -62.893,-15.249 a 1.888,3.5004 13.749 0 0 -0.5862,-0.01 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5797" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-325.18917"
+ inkscape:transform-center-x="1004.0664"
+ d="m -1028.4,730.25 a 1.888,3.5004 18.012 0 0 -1.5721,6.7085 l 61.585,19.882 a 1.888,3.5004 18.012 1 0 2.1559,-6.6593 l -61.585,-19.882 a 1.888,3.5004 18.012 0 0 -0.5842,-0.049 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5799" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-388.82606"
+ inkscape:transform-center-x="981.17869"
+ d="m -1004.6,664.7 a 1.888,3.5004 21.684 0 0 -1.9984,6.5941 l 60.185,23.786 a 1.888,3.5004 21.684 1 0 2.5779,-6.5076 l -60.185,-23.786 a 1.888,3.5004 21.684 0 0 -0.5798,-0.087 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5801" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-531.33261"
+ inkscape:transform-center-x="911.91157"
+ d="m -932.71,517.97 a 1.888,3.5004 30.294 0 0 -2.9631,6.2206 l 55.946,32.528 a 1.888,3.5004 30.294 1 0 3.5231,-6.0483 l -55.946,-32.528 a 1.888,3.5004 30.294 0 0 -0.5603,-0.1725 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5803" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-616.96881"
+ inkscape:transform-center-x="856.29817"
+ d="m -875.09,429.84 a 1.888,3.5004 35.84 0 0 -3.5504,5.9051 l 52.541,37.782 a 1.888,3.5004 35.84 1 0 4.0911,-5.6795 l -52.541,-37.782 a 1.888,3.5004 35.84 0 0 -0.5409,-0.2259 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5805" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-694.89709"
+ inkscape:transform-center-x="794.36465"
+ d="m -810.98,349.68 a 1.888,3.5004 41.246 0 0 -4.0909,5.5444 l 48.748,42.564 a 1.888,3.5004 41.246 1 0 4.608,-5.2689 l -48.748,-42.564 a 1.888,3.5004 41.246 0 0 -0.5173,-0.2758 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5807" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-746.16601"
+ inkscape:transform-center-x="746.41375"
+ d="m -761.37,296.96 a 1.888,3.5004 45.057 0 0 -4.4504,5.2601 l 45.811,45.71 a 1.888,3.5004 45.057 1 0 4.948,-4.9509 l -45.811,-45.71 a 1.888,3.5004 45.057 0 0 -0.4978,-0.3096 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5809" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-846.16619"
+ inkscape:transform-center-x="630.79324"
+ d="m -641.83,194.21 a 1.888,3.5004 53.363 0 0 -5.1636,4.5621 l 38.727,51.849 a 1.888,3.5004 53.363 1 0 5.6113,-4.1842 l -38.727,-51.849 a 1.888,3.5004 53.363 0 0 -0.4478,-0.3782 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5811" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-902.21965"
+ inkscape:transform-center-x="547.62857"
+ d="m -555.89,136.67 a 1.888,3.5004 58.81 0 0 -5.5733,4.0513 l 33.631,55.29 a 1.888,3.5004 58.81 1 0 5.9832,-3.6326 l -33.631,-55.29 a 1.888,3.5004 58.81 0 0 -0.4099,-0.4191 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5813" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-946.46289"
+ inkscape:transform-center-x="467.01752"
+ d="m -472.63,91.3 a 1.888,3.5004 63.803 0 0 -5.9048,3.5509 l 28.69,58.008 a 1.888,3.5004 63.803 1 0 6.2766,-3.098 l -28.69,-58.007 a 1.888,3.5004 63.803 0 0 -0.3719,-0.4531 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5815" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-976.67475"
+ inkscape:transform-center-x="400.00472"
+ d="m -403.43,60.358 a 1.888,3.5004 67.795 0 0 -6.1376,3.1313 l 24.583,59.864 a 1.888,3.5004 67.795 1 0 6.4771,-2.6536 l -24.583,-59.864 a 1.888,3.5004 67.795 0 0 -0.3394,-0.4779 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5817" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1027.0199"
+ inkscape:transform-center-x="243.16165"
+ d="m -241.53,8.9388 a 1.888,3.5004 76.746 0 0 -6.5501,2.138 l 14.969,62.96 a 1.888,3.5004 76.746 1 0 6.811,-1.6135 l -14.97,-62.961 a 1.888,3.5004 76.746 0 0 -0.2609,-0.5249 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5819" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1040.3554"
+ inkscape:transform-center-x="177.64633"
+ d="m -173.93,-4.6054 a 1.888,3.5004 80.377 0 0 -6.6723,1.719 l 10.952,63.782 a 1.888,3.5004 80.377 1 0 6.8996,-1.179 l -10.952,-63.782 a 1.888,3.5004 80.377 0 0 -0.2272,-0.5404 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5821" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1049.0131"
+ inkscape:transform-center-x="116.05553"
+ d="m -110.39,-13.338 a 1.888,3.5004 83.754 0 0 -6.762,1.323 l 7.1761,64.316 a 1.888,3.5004 83.754 1 0 6.9571,-0.7705 l -7.1762,-64.316 a 1.888,3.5004 83.754 0 0 -0.1949,-0.5529 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5823" />
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-1053.7903"
+ inkscape:transform-center-x="58.509766"
+ d="m -51.038,-18.083 a 1.888,3.5004 86.889 0 0 -6.8243,0.9512 l 3.6479,64.612 a 1.888,3.5004 86.889 1 0 6.9888,-0.3889 l -3.6479,-64.612 a 1.888,3.5004 86.889 0 0 -0.1645,-0.5627 z"
+ style="color:#000000;text-indent:0;text-transform:none;fill:#000000"
+ id="path5825" />
+ <path
+ d="m -1090.6,-131.14 c -65.98,0 -119.09,53.114 -119.09,119.09 v 1374.5 c 0,65.979 53.114,119.09 119.09,119.09 h 665.31 c 29.008,0 39.174,-3.9241 56.5,-21.25 l 746.08,-745.9 c 23.302,-23.302 25.781,-31.589 25.781,-62.469 v -663.88 c 0,-65.979 -53.114,-119.09 -119.09,-119.09 z"
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient10503)"
+ sodipodi:nodetypes="sssssssssss"
+ id="path6078" />
+ </g>
+ <text
+ id="text24840"
+ y="1795.9766"
+ x="-534.04657"
+ style="font-style:normal;font-weight:normal;font-size:81.67732239px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.18778539"
+ xml:space="preserve"><tspan
+ style="font-size:81.67732239px;stroke-width:2.18778539"
+ y="1795.9766"
+ x="-534.04657"
+ id="tspan24838"
+ sodipodi:role="line">https://openclipart.org/detail/205486/voltmeter-and-ammeter</tspan></text>
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ id="path26897"
+ d="M 1529.3463,1129.8524 H 2700.4096"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <text
+ id="text26946"
+ y="913.46747"
+ x="1723.4104"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="913.46747"
+ x="1723.4104"
+ id="tspan26944"
+ sodipodi:role="line">[max]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="1523.4104"
+ y="1073.4675"
+ id="text26950"><tspan
+ sodipodi:role="line"
+ id="tspan26948"
+ x="1523.4104"
+ y="1073.4675"
+ style="stroke-width:0.25">[min]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="1583.4104"
+ y="1173.4675"
+ id="text26954"><tspan
+ sodipodi:role="line"
+ id="tspan26952"
+ x="1583.4104"
+ y="1173.4675"
+ style="stroke-width:0.25">[max]</tspan></text>
+ <text
+ id="text26958"
+ y="1485.4675"
+ x="1577.4104"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="1485.4675"
+ x="1577.4104"
+ id="tspan26956"
+ sodipodi:role="line">[min]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="1514.1893"
+ y="852.01276"
+ id="text27118"><tspan
+ sodipodi:role="line"
+ id="tspan27116"
+ x="1514.1893"
+ y="852.01276"
+ style="stroke-width:0.25">Second point of "needle" labeled SVG path moves along "range" labeled SVG path according to value. </tspan><tspan
+ id="tspan27124"
+ sodipodi:role="line"
+ x="1514.1893"
+ y="864.51276"
+ style="stroke-width:0.25">Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="1703.4104"
+ y="1047.4675"
+ id="text32265"><tspan
+ sodipodi:role="line"
+ id="tspan32263"
+ x="1703.4104"
+ y="1047.4675"
+ style="fill:#ff6600;fill-opacity:1;stroke-width:0.25">needle</tspan></text>
+ <text
+ id="text32303"
+ y="1067.4675"
+ x="1577.4104"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#3ee800;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="fill:#3ee800;fill-opacity:1;stroke-width:0.25"
+ y="1067.4675"
+ x="1577.4104"
+ id="tspan32301"
+ sodipodi:role="line">range</tspan></text>
+ <text
+ id="text32307"
+ y="1307.4675"
+ x="1575.4104"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="fill:#ff6600;fill-opacity:1;stroke-width:0.25"
+ y="1307.4675"
+ x="1575.4104"
+ id="tspan32305"
+ sodipodi:role="line">needle</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#3ee800;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="1575.4104"
+ y="1207.4675"
+ id="text32311"><tspan
+ sodipodi:role="line"
+ id="tspan32309"
+ x="1575.4104"
+ y="1207.4675"
+ style="fill:#3ee800;fill-opacity:1;stroke-width:0.25">range</tspan></text>
+ </g>
+ <g
+ id="g3125"
+ inkscape:label="CircularBar Page"
+ transform="translate(2679.4073,787.70547)">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g9813"
+ id="use9837"
+ width="100%"
+ height="100%"
+ transform="translate(0.5927,-787.70544)"
+ inkscape:label="HMI:Page:CircularBar" />
+ <g
+ id="g3058">
+ <g
+ id="g31471">
+ <circle
+ id="path4349"
+ style="fill:url(#linearGradient10071);stroke:url(#linearGradient4378);stroke-width:2.13336658"
+ transform="scale(1,-1)"
+ cx="1974.9573"
+ cy="-1907.7942"
+ r="125.20776" />
+ <path
+ transform="matrix(2.1333334,0,0,2.1333334,917.47072,723.36897)"
+ id="path4276"
+ style="fill:url(#radialGradient4372);stroke:url(#linearGradient4374);stroke-width:0.93251997"
+ sodipodi:type="inkscape:offset"
+ d="m 495.71875,499.5625 c -30.71038,0 -55.625,24.94721 -55.625,55.65625 0,30.70904 24.91462,55.65625 55.625,55.65625 30.71038,0 55.65625,-24.94587 55.65625,-55.65625 0,-30.71038 -24.94587,-55.65625 -55.65625,-55.65625 z m 0.5957,6.625 c 26.16416,-0.0377 49.91573,24.21255 48.50196,50.61719 a 1.906235,1.906235 0 0 0 -0.002,0.0312 c -0.96267,26.09835 -23.97335,48.63457 -50.44531,47.41601 a 1.906235,1.906235 0 0 0 -0.0703,-0.002 c -27.12401,-0.25004 -50.9578,-26.70889 -47.31641,-53.83984 a 1.906235,1.906235 0 0 0 0.008,-0.0703 c 2.26482,-23.38029 22.99305,-43.56741 46.70508,-44.05859 a 1.906235,1.906235 0 0 0 0.0781,-0.004 c 0.86395,-0.0528 1.71288,-0.0887 2.54101,-0.0898 z"
+ inkscape:original="M 495.71875 501.46875 C 466.0389 501.46875 442 525.5389 442 555.21875 C 442 584.8986 466.0389 608.96875 495.71875 608.96875 C 525.3986 608.96875 549.46875 584.8986 549.46875 555.21875 C 549.46875 525.5389 525.3986 501.46875 495.71875 501.46875 z M 496.3125 504.28125 C 523.64396 504.24185 548.1961 529.3142 546.71875 556.90625 C 545.71652 584.07711 521.8754 607.42646 494.28125 606.15625 C 465.94032 605.89499 441.28655 578.52263 445.09375 550.15625 C 447.45524 525.77795 468.89562 504.8879 493.65625 504.375 C 494.5429 504.3208 495.43084 504.28245 496.3125 504.28125 z "
+ inkscape:radius="1.9060444" />
+ </g>
+ <g
+ style="fill:none;stroke-width:1.47405899"
+ transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)"
+ inkscape:label="HMI:CircularBar@/CIRCULARBAR"
+ id="g30664">
+ <text
+ inkscape:label="value"
+ id="text30652"
+ y="272.72952"
+ x="1045.2592"
+ style="font-style:normal;font-weight:normal;font-size:70.65699005px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;opacity:1;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill-opacity:1;stroke:none;stroke-width:2.60381603px;stroke-opacity:1"
+ y="272.72952"
+ x="1045.2592"
+ id="tspan30650"
+ sodipodi:role="line">65%</tspan></text>
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#linearGradient31386);stroke-width:11.26410389;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none"
+ id="path30654"
+ inkscape:label="path"
+ sodipodi:type="arc"
+ sodipodi:cx="1045.7766"
+ sodipodi:cy="247.00946"
+ sodipodi:rx="209.17709"
+ sodipodi:ry="209.47221"
+ sodipodi:start="2.268928"
+ sodipodi:end="0.87266463"
+ d="M 911.32017,407.47449 A 209.17709,209.47221 0 0 1 849.21444,175.36575 209.17709,209.47221 0 0 1 1045.7766,37.537247 209.17709,209.47221 0 0 1 1242.3388,175.36574 209.17709,209.47221 0 0 1 1180.2331,407.47449"
+ sodipodi:open="true" />
+ </g>
+ <g
+ id="g31467"
+ inkscape:label="g31467"
+ style="display:inline">
+ <circle
+ id="path4282"
+ style="fill:url(#linearGradient4376);stroke-width:2.13333344"
+ cx="1974.1705"
+ cy="1908.6909"
+ r="76.17897" />
+ <use
+ transform="matrix(0.53304115,0,0,0.53229017,1419.5153,1778.3135)"
+ style="opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="0"
+ y="0"
+ xlink:href="#text30652"
+ id="use31590"
+ width="100%"
+ height="100%" />
+ <use
+ transform="matrix(0.53304115,0,0,0.53229017,1417.5153,1776.3135)"
+ style="opacity:1;vector-effect:none;fill:#333333;fill-opacity:1;stroke:none;stroke-width:4.0050149;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="0"
+ y="0"
+ xlink:href="#text30652"
+ id="use31592"
+ width="100%"
+ height="100%" />
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="1512.8077"
+ y="1602.7185"
+ id="text17535"><tspan
+ sodipodi:role="line"
+ id="tspan17533"
+ x="1512.8077"
+ y="1602.7185">HMI:CircularBar:[min:max]@path</tspan></text>
+ <text
+ id="text24840-3"
+ y="2062.4612"
+ x="2067.7786"
+ style="font-style:normal;font-weight:normal;font-size:9.33333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.24999999"
+ xml:space="preserve"><tspan
+ style="font-size:9.33333302px;stroke-width:0.24999999"
+ y="2062.4612"
+ x="2067.7786"
+ id="tspan24838-1"
+ sodipodi:role="line">https://openclipart.org/detail/203239/gauges-vectorbased-superb-quality</tspan></text>
+ <g
+ style="stroke-width:1.47405899"
+ transform="matrix(0.53304115,0,0,0.53229017,1094.7583,1794.01)"
+ inkscape:label="HMI:CircularBar@/CIRCULARBAR"
+ id="g1047">
+ <text
+ inkscape:label="value"
+ transform="scale(0.91814752,1.0891496)"
+ id="text1051"
+ y="218.54041"
+ x="1139.0072"
+ style="font-style:normal;font-weight:normal;font-size:90.1384964px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000001;fill-opacity:1;stroke:none;stroke-width:3.32173681px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill:#000001;fill-opacity:1;stroke:none;stroke-width:3.32173681px;stroke-opacity:1"
+ y="218.54041"
+ x="1139.0072"
+ id="tspan1049"
+ sodipodi:role="line">[value]</tspan></text>
+ <path
+ sodipodi:open="true"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ff6600;stroke-width:3.75470138;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none;marker-start:url(#marker30012);marker-end:url(#marker30310)"
+ id="path1044-3"
+ sodipodi:type="arc"
+ sodipodi:cx="1045.7766"
+ sodipodi:cy="247.00946"
+ sodipodi:rx="180"
+ sodipodi:ry="180"
+ sodipodi:start="2.6179939"
+ sodipodi:end="0.52359878"
+ d="m 889.89204,337.00946 a 180,180 0 0 1 40.1828,-227.888 180,180 0 0 1 231.40356,0 180,180 0 0 1 40.1828,227.888"
+ inkscape:label="path" />
+ <text
+ transform="scale(0.99929531,1.0007052)"
+ inkscape:label="min"
+ id="text7984-5"
+ y="339.48706"
+ x="925.46155"
+ style="font-style:normal;font-weight:normal;font-size:42.93917084px;line-height:125%;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.07347918px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ style="text-align:end;text-anchor:end;fill:#ff6600;stroke-width:1.07347918px"
+ y="339.48706"
+ x="925.46155"
+ id="tspan7982-0"
+ sodipodi:role="line">0</tspan></text>
+ <text
+ transform="scale(0.9992953,1.0007052)"
+ inkscape:label="max"
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:42.93917084px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1.07347918px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="1155.7532"
+ y="345.3743"
+ id="text7988-3"><tspan
+ sodipodi:role="line"
+ id="tspan7986-6"
+ x="1155.7532"
+ y="345.3743"
+ style="text-align:center;text-anchor:middle;fill:#ff6600;stroke-width:1.07347918px">100</tspan></text>
+ </g>
+ <text
+ id="text26946-1"
+ y="1986.7517"
+ x="1708.0165"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="1986.7517"
+ x="1708.0165"
+ id="tspan26944-0"
+ sodipodi:role="line">[max]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="1568.494"
+ y="1986.853"
+ id="text26950-6"><tspan
+ sodipodi:role="line"
+ id="tspan26948-3"
+ x="1568.494"
+ y="1986.853"
+ style="stroke-width:0.25">[min]</tspan></text>
+ <text
+ id="text27130"
+ y="1624.3407"
+ x="1514.1893"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="1624.3407"
+ x="1514.1893"
+ id="tspan27126"
+ sodipodi:role="line">Inkscape's Arc labeled "path" End angle varies according to value. Arc cannot be closed yet, use wide stroke to fill.</tspan><tspan
+ style="stroke-width:0.25"
+ y="1636.8407"
+ x="1514.1893"
+ sodipodi:role="line"
+ id="tspan27128">Value min and max range is either given as arguments or as "min" and "max" labeled SVG texts, or default to 0...100 if unspecified.</tspan></text>
+ <g
+ id="g3045">
+ <g
+ id="g4392"
+ transform="matrix(2.1333334,0,0,2.1333334,1479.7343,1201.5674)">
+ <circle
+ id="path3982"
+ style="fill:url(#radialGradient4401);stroke:url(#linearGradient4403)"
+ transform="matrix(-0.93252,0,0,-0.93252,810.37,640.06)"
+ cx="487.55014"
+ cy="331.46683"
+ r="57.629204" />
+ <circle
+ id="path4008"
+ style="opacity:0.86721999;fill:#000000;filter:url(#filter4030)"
+ transform="matrix(-0.66258,0,0,0.66258,678.79,115.47)"
+ cx="487.55014"
+ cy="331.46683"
+ r="57.629204" />
+ <circle
+ id="path4002"
+ style="fill:url(#radialGradient4405);stroke:url(#linearGradient4407);stroke-width:1.50929999"
+ transform="matrix(-0.66258,0,0,0.66258,678.69,111.47)"
+ cx="487.55014"
+ cy="331.46683"
+ r="57.629204" />
+ </g>
+ <g
+ id="g31570"
+ inkscape:label="HMI:CircularBar@/CIRCULARBAR"
+ transform="matrix(0.53304115,0,0,0.53229017,1681.1611,1776.3135)"
+ style="stroke-width:1.47405899">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="1045.2592"
+ y="272.72952"
+ id="text31566"
+ inkscape:label="value"><tspan
+ sodipodi:role="line"
+ id="tspan31564"
+ x="1045.2592"
+ y="272.72952"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:4.00493336;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1">65%</tspan></text>
+ <path
+ sodipodi:open="true"
+ d="M 925.18787,390.92429 A 187.60278,187.86746 0 0 1 869.48766,182.75501 187.60278,187.86746 0 0 1 1045.7766,59.141998 187.60278,187.86746 0 0 1 1222.0656,182.755 187.60278,187.86746 0 0 1 1166.3654,390.92429"
+ sodipodi:end="0.87266463"
+ sodipodi:start="2.268928"
+ sodipodi:ry="187.86746"
+ sodipodi:rx="187.60278"
+ sodipodi:cy="247.00946"
+ sodipodi:cx="1045.7766"
+ sodipodi:type="arc"
+ inkscape:label="path"
+ id="path31568"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#linearGradient10485);stroke-width:18.77350616;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none" />
+ </g>
+ <use
+ transform="matrix(0.53304115,0,0,0.53229017,1681.1611,1776.3135)"
+ x="0"
+ y="0"
+ xlink:href="#path31568"
+ id="use31670"
+ width="100%"
+ height="100%"
+ style="opacity:0.51399997;stroke-width:1.47405899;filter:url(#filter31680)" />
+ </g>
+ <g
+ id="g3034">
+ <g
+ id="g3010">
+ <circle
+ id="path3836"
+ style="fill:none;stroke:url(#linearGradient10487);stroke-width:4.26666689"
+ transform="scale(-1)"
+ cx="-2500.2302"
+ cy="-1911.7058"
+ r="122.94231" />
+ <circle
+ id="path3826"
+ style="opacity:0.31950001;fill:none;stroke:url(#linearGradient10489);stroke-width:4.26666689"
+ cx="2500.231"
+ cy="1909.5803"
+ r="122.94231" />
+ <circle
+ id="path3848"
+ style="fill:url(#radialGradient10491);stroke-width:1.98937607"
+ transform="scale(-1)"
+ cx="-2500.4646"
+ cy="-1911.9562"
+ r="114.64616" />
+ <ellipse
+ ry="110.12065"
+ rx="108.61215"
+ id="path3850"
+ style="opacity:0.46813001;fill:none;stroke:url(#linearGradient10493);stroke-width:3.19992709"
+ transform="scale(-1)"
+ cx="-2499.5879"
+ cy="-1909.5483" />
+ </g>
+ <g
+ style="fill:none;stroke-width:1.47405899"
+ transform="matrix(0.53304115,0,0,0.53229017,1942.7889,1776.3135)"
+ inkscape:label="HMI:CircularBar@/CIRCULARBAR"
+ id="g2608">
+ <text
+ inkscape:label="value"
+ id="text2604"
+ y="272.72952"
+ x="1045.2592"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill-opacity:1"
+ xml:space="preserve"><tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.55891418px;line-height:1.27999997;font-family:Gautami;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;vector-effect:none;fill-opacity:1"
+ y="272.72952"
+ x="1045.2592"
+ id="tspan2602"
+ sodipodi:role="line">65%</tspan></text>
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:url(#radialGradient10495);stroke-width:84.48078156;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:120.22967529;stroke-opacity:1;marker:none"
+ id="path2606"
+ inkscape:label="path"
+ sodipodi:type="arc"
+ sodipodi:cx="1045.1316"
+ sodipodi:cy="253.72691"
+ sodipodi:rx="150.08221"
+ sodipodi:ry="150.29396"
+ sodipodi:start="2.6179939"
+ sodipodi:end="0.52359878"
+ d="m 915.15658,328.87389 a 150.08221,150.29396 0 0 1 33.50403,-190.27883 150.08221,150.29396 0 0 1 192.94199,0 150.08221,150.29396 0 0 1 33.504,190.27883"
+ sodipodi:open="true" />
+ </g>
+ <g
+ id="g3004">
+ <ellipse
+ id="path3917"
+ style="opacity:0.58091;fill:url(#radialGradient10497);stroke-width:1.65561378"
+ transform="scale(-1)"
+ cx="-2500.0576"
+ cy="-1910.7838"
+ rx="95.035629"
+ ry="95.789268" />
+ <circle
+ id="path3870"
+ style="fill:#000000;stroke-width:2.13333344"
+ cx="2499.887"
+ cy="1911.3699"
+ r="57.322792" />
+ <ellipse
+ ry="51.288994"
+ rx="48.272099"
+ id="path3872"
+ style="fill:url(#radialGradient10499);stroke-width:1.85178936"
+ cx="2497.2419"
+ cy="1911.7377" />
+ <path
+ id="path3903"
+ d="m 2496.7959,1849.8538 c -40.7424,0.2449 -70.9077,47.8848 -54.0672,85.0005 13.4447,35.2341 62.5494,50.2187 93.1328,26.8672 30.8438,-21.1872 34.7542,-71.9723 5.2668,-96.0661 -11.9226,-10.8086 -28.2112,-16.7872 -44.3328,-15.7999 z"
+ style="opacity:0.63071002;fill:none;stroke:url(#linearGradient10501);stroke-width:3.20000005"
+ inkscape:connector-curvature="0" />
+ <use
+ height="100%"
+ width="100%"
+ id="use2935"
+ xlink:href="#text2604"
+ y="0"
+ x="0"
+ style="opacity:0.81327999;vector-effect:none;fill:#666666;fill-opacity:1;stroke-width:1.87731254;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0.53304115,0,0,0.53229017,1944.7889,1778.3135)" />
+ <use
+ height="100%"
+ width="100%"
+ id="use2937"
+ xlink:href="#text2604"
+ y="0"
+ x="0"
+ style="opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke-width:1.87731254;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0.53304115,0,0,0.53229017,1942.7889,1776.3135)" />
+ </g>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1905.4562"
+ y="2520.5203"
+ id="text3613"><tspan
+ sodipodi:role="line"
+ id="tspan3611"
+ x="1905.4562"
+ y="2538.2156"
+ style="stroke-width:0.5" /></text>
+ <g
+ id="g6809"
+ transform="translate(2680,780)"
+ inkscape:label="Switch Page">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g9818"
+ id="use9854"
+ width="100%"
+ height="100%"
+ transform="translate(0,-779.99997)"
+ inkscape:label="HMI:Page:Switch"
+ style="display:inline"
+ sodipodi:insensitive="true" />
+ <text
+ id="text30640"
+ y="2390.3906"
+ x="1512.8077"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="2390.3906"
+ x="1512.8077"
+ id="tspan30638"
+ sodipodi:role="line">HMI:Switch@path</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="1514.1893"
+ y="2412.0127"
+ id="text30646"><tspan
+ id="tspan30644"
+ sodipodi:role="line"
+ x="1514.1893"
+ y="2412.0127"
+ style="fill:#fffffb;fill-opacity:1;stroke-width:0.25">Display only childs of widget's element (a SVG group) who's label match value.</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 1705.0033,2700.5501 v -200 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3520" />
+ <text
+ id="text3539"
+ y="2500.5203"
+ x="1525.4562"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2500.5203"
+ x="1525.4562"
+ id="tspan3537"
+ sodipodi:role="line">HMI:Switch</tspan><tspan
+ id="tspan3573"
+ style="stroke-width:0.5"
+ y="2525.5203"
+ x="1525.4562"
+ sodipodi:role="line">HMI_INT</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1785.4562"
+ y="2500.5203"
+ id="text3543"><tspan
+ sodipodi:role="line"
+ id="tspan3541"
+ x="1785.4562"
+ y="2500.5203"
+ style="stroke-width:0.5">1</tspan></text>
+ <text
+ id="text3547"
+ y="2540.5203"
+ x="1785.4562"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2540.5203"
+ x="1785.4562"
+ id="tspan3545"
+ sodipodi:role="line">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1785.4562"
+ y="2580.5203"
+ id="text3551"><tspan
+ id="tspan3553"
+ sodipodi:role="line"
+ x="1785.4562"
+ y="2580.5203"
+ style="stroke-width:0.5">3</tspan></text>
+ <text
+ id="text3559"
+ y="2620.5203"
+ x="1785.4562"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2620.5203"
+ x="1785.4562"
+ sodipodi:role="line"
+ id="tspan3557">42</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1785.4562"
+ y="2660.5203"
+ id="text3563"><tspan
+ id="tspan3565"
+ sodipodi:role="line"
+ x="1785.4562"
+ y="2660.5203"
+ style="stroke-width:0.5">4</tspan></text>
+ <text
+ id="text3571"
+ y="2700.5203"
+ x="1785.4562"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2700.5203"
+ x="1785.4562"
+ sodipodi:role="line"
+ id="tspan3569">5</tspan></text>
+ <path
+ id="path3575"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1705.0033,3000.5501 v -200 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1525.4562"
+ y="2800.5203"
+ id="text3581"><tspan
+ sodipodi:role="line"
+ id="tspan3577"
+ x="1525.4562"
+ y="2800.5203"
+ style="stroke-width:0.5">HMI:Switch</tspan><tspan
+ sodipodi:role="line"
+ x="1525.4562"
+ y="2825.5203"
+ style="stroke-width:0.5"
+ id="tspan3579">HMI_STRING</tspan></text>
+ <text
+ id="text3585"
+ y="2800.5203"
+ x="1785.4562"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2800.5203"
+ x="1785.4562"
+ id="tspan3583"
+ sodipodi:role="line">"aa"</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1785.4562"
+ y="2840.5203"
+ id="text3589"><tspan
+ sodipodi:role="line"
+ id="tspan3587"
+ x="1785.4562"
+ y="2840.5203"
+ style="stroke-width:0.5">"abba"</tspan></text>
+ <text
+ id="text3593"
+ y="2880.5203"
+ x="1785.4562"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2880.5203"
+ x="1785.4562"
+ sodipodi:role="line"
+ id="tspan3591">"mhoo"</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1785.4562"
+ y="2920.5203"
+ id="text3597"><tspan
+ id="tspan3595"
+ sodipodi:role="line"
+ x="1785.4562"
+ y="2920.5203"
+ style="stroke-width:0.5">"ggg"</tspan></text>
+ <text
+ id="text3601"
+ y="2960.5203"
+ x="1785.4562"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2960.5203"
+ x="1785.4562"
+ sodipodi:role="line"
+ id="tspan3599">"wtf"</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="1785.4562"
+ y="3000.5203"
+ id="text3605"><tspan
+ id="tspan3603"
+ sodipodi:role="line"
+ x="1785.4562"
+ y="3000.5203"
+ style="stroke-width:0.5">"xxx"</tspan></text>
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ id="path3607"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1825.0033,2700.5501 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 1865.0033,3000.5501 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3609"
+ sodipodi:nodetypes="cccccccccccc" />
+ <g
+ transform="translate(0,-20)"
+ inkscape:label="HMI:Switch@/SWITCHINT"
+ id="g3755">
+ <path
+ inkscape:label="3"
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="path3635"
+ sodipodi:sides="3"
+ sodipodi:cx="1909.8937"
+ sodipodi:cy="2602.8892"
+ sodipodi:r1="12.249084"
+ sodipodi:r2="6.1245413"
+ sodipodi:arg1="0.1798535"
+ sodipodi:arg2="1.2270511"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1921.9452,2605.0803 -9.9875,3.5751 -9.9874,3.5751 1.8976,-10.4369 1.8976,-10.4369 8.0899,6.8618 z" />
+ <path
+ inkscape:label="42"
+ d="m 1921.9452,2639.0803 -6.1245,-0.6483 5.6633,2.4201 -5.9594,-1.554 5.2393,3.2371 -5.6613,-2.4247 4.6984,3.9818 -5.2367,-3.2415 4.0525,4.6377 -4.6951,-3.9858 3.316,5.1898 -4.0486,-4.641 2.5054,5.6261 -3.3116,-5.1926 1.6389,5.9367 -2.5007,-5.6282 0.7358,6.1146 -1.634,-5.938 -0.1838,6.156 -0.7307,-6.1152 -1.0992,6.0598 0.1889,-6.1558 -1.9901,5.8283 1.1042,-6.0589 -2.8365,5.4666 1.9949,-5.8266 -3.6195,4.9828 2.841,-5.4643 -4.3218,4.3877 3.6237,-4.9798 -4.9274,3.6945 4.3254,-4.384 -5.4231,2.9188 4.9306,-3.6904 -5.7976,2.078 5.4255,-2.9144 -6.0425,1.1907 5.7993,-2.0731 -6.1525,0.2768 6.0435,-1.1857 -6.125,-0.6433 6.1527,-0.2717 -5.9607,-1.5489 6.1244,0.6483 -5.6632,-2.42 5.9594,1.5539 -5.2394,-3.2371 5.6613,2.4247 -4.6983,-3.9818 5.2366,3.2415 -4.0524,-4.6376 4.695,3.9857 -3.3159,-5.1898 4.0485,4.641 -2.5054,-5.6261 3.3117,5.1926 -1.639,-5.9366 2.5008,5.6281 -0.7358,-6.1146 1.634,5.938 0.1837,-6.156 0.7307,6.1152 1.0992,-6.0598 -0.1888,6.1558 1.99,-5.8283 -1.1042,6.0589 2.8365,-5.4666 -1.9949,5.8266 3.6196,-4.9827 -2.8411,5.4642 4.3218,-4.3877 -3.6237,4.9798 4.9275,-3.6945 -4.3254,4.3841 5.423,-2.9189 -4.9305,3.6904 5.7975,-2.078 -5.4255,2.9144 6.0425,-1.1907 -5.7992,2.0732 6.1524,-0.2768 -6.0435,1.1856 6.1251,0.6433 -6.1527,0.2717 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="0.25465333"
+ sodipodi:arg1="0.1798535"
+ sodipodi:r2="6.1245413"
+ sodipodi:r1="12.249084"
+ sodipodi:cy="2636.8892"
+ sodipodi:cx="1909.8937"
+ sodipodi:sides="42"
+ id="path3637"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ sodipodi:type="star" />
+ <path
+ inkscape:label="4"
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="path3639"
+ sodipodi:sides="4"
+ sodipodi:cx="1909.8937"
+ sodipodi:cy="2676.8892"
+ sodipodi:r1="12.249084"
+ sodipodi:r2="6.1245413"
+ sodipodi:arg1="0.1798535"
+ sodipodi:arg2="0.96525166"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1921.9452,2679.0803 -8.5654,2.8444 -5.6773,7.016 -2.8444,-8.5654 -7.0159,-5.6773 8.5653,-2.8444 5.6774,-7.0159 2.8443,8.5653 z" />
+ <path
+ inkscape:label="5"
+ d="m 1921.9452,2719.0803 -7.8206,2.2371 -2.5907,7.7105 -4.5443,-6.7465 -8.1337,-0.081 5.012,-6.4066 -2.4362,-7.7608 7.6419,2.787 6.6281,-4.7152 -0.2891,8.1291 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="0.80817203"
+ sodipodi:arg1="0.1798535"
+ sodipodi:r2="6.1245413"
+ sodipodi:r1="12.249084"
+ sodipodi:cy="2716.8892"
+ sodipodi:cx="1909.8937"
+ sodipodi:sides="5"
+ id="path3641"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ sodipodi:type="star" />
+ <path
+ inkscape:label="2"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ d="m 1920.4968,2552.3613 -8.5391,6.2941 -8.539,6.2941 z"
+ id="path3643"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <circle
+ inkscape:label="1"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.21478893px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="path3651"
+ cx="1906.7977"
+ cy="2520.55"
+ r="1.2603201" />
+ </g>
+ <g
+ transform="translate(-58.533071,-260.20956)"
+ id="g3747">
+ <path
+ d="m 2601.9453,2845.0803 -9.9874,3.5751 -9.9875,3.5751 1.8976,-10.4369 1.8977,-10.4369 8.0898,6.8618 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="1.2270511"
+ sodipodi:arg1="0.1798535"
+ sodipodi:r2="6.1245413"
+ sodipodi:r1="12.249084"
+ sodipodi:cy="2842.8892"
+ sodipodi:cx="2589.8938"
+ sodipodi:sides="3"
+ id="path3717"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ sodipodi:type="star"
+ inkscape:label="3" />
+ <path
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="path3719"
+ sodipodi:sides="42"
+ sodipodi:cx="2589.8938"
+ sodipodi:cy="2876.8892"
+ sodipodi:r1="12.249084"
+ sodipodi:r2="6.1245413"
+ sodipodi:arg1="0.1798535"
+ sodipodi:arg2="0.25465333"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 2601.9453,2879.0803 -6.1245,-0.6483 5.6633,2.4201 -5.9594,-1.554 5.2393,3.2371 -5.6613,-2.4247 4.6984,3.9818 -5.2366,-3.2415 4.0524,4.6377 -4.6951,-3.9858 3.316,5.1898 -4.0486,-4.641 2.5055,5.6261 -3.3117,-5.1926 1.6389,5.9367 -2.5007,-5.6282 0.7358,6.1146 -1.634,-5.938 -0.1837,6.156 -0.7308,-6.1152 -1.0991,6.0598 0.1888,-6.1558 -1.9901,5.8283 1.1043,-6.0589 -2.8366,5.4666 1.995,-5.8266 -3.6196,4.9828 2.841,-5.4643 -4.3218,4.3877 3.6238,-4.9798 -4.9275,3.6945 4.3254,-4.384 -5.4231,2.9188 4.9306,-3.6904 -5.7976,2.078 5.4255,-2.9144 -6.0425,1.1907 5.7993,-2.0731 -6.1525,0.2768 6.0435,-1.1857 -6.125,-0.6433 6.1527,-0.2717 -5.9607,-1.5489 6.1245,0.6483 -5.6633,-2.42 5.9594,1.5539 -5.2393,-3.2371 5.6612,2.4247 -4.6983,-3.9818 5.2366,3.2415 -4.0524,-4.6376 4.6951,3.9857 -3.316,-5.1898 4.0486,4.641 -2.5055,-5.6261 3.3117,5.1926 -1.6389,-5.9366 2.5007,5.6281 -0.7358,-6.1146 1.634,5.938 0.1837,-6.156 0.7308,6.1152 1.0991,-6.0598 -0.1888,6.1558 1.9901,-5.8283 -1.1043,6.0589 2.8366,-5.4666 -1.995,5.8266 3.6196,-4.9827 -2.841,5.4642 4.3218,-4.3877 -3.6238,4.9798 4.9275,-3.6945 -4.3254,4.3841 5.4231,-2.9189 -4.9306,3.6904 5.7976,-2.078 -5.4256,2.9144 6.0425,-1.1907 -5.7992,2.0732 6.1525,-0.2768 -6.0435,1.1856 6.125,0.6433 -6.1527,0.2717 z"
+ inkscape:label="42" />
+ <path
+ d="m 2601.9453,2919.0803 -8.5654,2.8444 -5.6773,7.016 -2.8444,-8.5654 -7.0159,-5.6773 8.5653,-2.8444 5.6774,-7.0159 2.8443,8.5653 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="0.96525166"
+ sodipodi:arg1="0.1798535"
+ sodipodi:r2="6.1245413"
+ sodipodi:r1="12.249084"
+ sodipodi:cy="2916.8892"
+ sodipodi:cx="2589.8938"
+ sodipodi:sides="4"
+ id="path3721"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ sodipodi:type="star"
+ inkscape:label="4" />
+ <path
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="path3723"
+ sodipodi:sides="5"
+ sodipodi:cx="2589.8938"
+ sodipodi:cy="2956.8892"
+ sodipodi:r1="12.249084"
+ sodipodi:r2="6.1245413"
+ sodipodi:arg1="0.1798535"
+ sodipodi:arg2="0.80817203"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 2601.9453,2959.0803 -7.8205,2.2371 -2.5908,7.7105 -4.5442,-6.7465 -8.1338,-0.081 5.012,-6.4066 -2.4361,-7.7608 7.6418,2.787 6.6282,-4.7152 -0.2892,8.1291 z"
+ inkscape:label="5" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path3725"
+ d="m 2600.4968,2792.3613 -8.5391,6.2941 -8.539,6.2941 z"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ inkscape:label="2" />
+ <circle
+ r="1.2603201"
+ cy="2760.55"
+ cx="2586.7979"
+ id="circle3727"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.21478893px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ inkscape:label="1" />
+ </g>
+ <g
+ transform="translate(-2,20)"
+ inkscape:label="HMI:Switch@/SWITCHSTRING"
+ id="g3681">
+ <path
+ inkscape:label=""mhoo""
+ d="m 1961.9452,2865.0803 -9.9875,3.5751 -9.9874,3.5751 1.8976,-10.4369 1.8976,-10.4369 8.0899,6.8618 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="1.2270511"
+ sodipodi:arg1="0.1798535"
+ sodipodi:r2="6.1245413"
+ sodipodi:r1="12.249084"
+ sodipodi:cy="2862.8892"
+ sodipodi:cx="1949.8937"
+ sodipodi:sides="3"
+ id="path3653"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ sodipodi:type="star" />
+ <path
+ inkscape:label=""ggg""
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="path3655"
+ sodipodi:sides="42"
+ sodipodi:cx="1949.8937"
+ sodipodi:cy="2896.8892"
+ sodipodi:r1="12.249084"
+ sodipodi:r2="6.1245413"
+ sodipodi:arg1="0.1798535"
+ sodipodi:arg2="0.25465333"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1961.9452,2899.0803 -6.1245,-0.6483 5.6633,2.4201 -5.9594,-1.554 5.2393,3.2371 -5.6613,-2.4247 4.6984,3.9818 -5.2367,-3.2415 4.0525,4.6377 -4.6951,-3.9858 3.316,5.1898 -4.0486,-4.641 2.5054,5.6261 -3.3116,-5.1926 1.6389,5.9367 -2.5007,-5.6282 0.7358,6.1146 -1.634,-5.938 -0.1838,6.156 -0.7307,-6.1152 -1.0992,6.0598 0.1889,-6.1558 -1.9901,5.8283 1.1042,-6.0589 -2.8365,5.4666 1.9949,-5.8266 -3.6195,4.9828 2.841,-5.4643 -4.3218,4.3877 3.6237,-4.9798 -4.9274,3.6945 4.3254,-4.384 -5.4231,2.9188 4.9306,-3.6904 -5.7976,2.078 5.4255,-2.9144 -6.0425,1.1907 5.7993,-2.0731 -6.1525,0.2768 6.0435,-1.1857 -6.125,-0.6433 6.1527,-0.2717 -5.9607,-1.5489 6.1244,0.6483 -5.6632,-2.42 5.9594,1.5539 -5.2394,-3.2371 5.6613,2.4247 -4.6983,-3.9818 5.2366,3.2415 -4.0524,-4.6376 4.695,3.9857 -3.3159,-5.1898 4.0485,4.641 -2.5054,-5.6261 3.3117,5.1926 -1.639,-5.9366 2.5008,5.6281 -0.7358,-6.1146 1.634,5.938 0.1837,-6.156 0.7307,6.1152 1.0992,-6.0598 -0.1888,6.1558 1.99,-5.8283 -1.1042,6.0589 2.8365,-5.4666 -1.9949,5.8266 3.6196,-4.9827 -2.8411,5.4642 4.3218,-4.3877 -3.6237,4.9798 4.9275,-3.6945 -4.3254,4.3841 5.423,-2.9189 -4.9305,3.6904 5.7975,-2.078 -5.4255,2.9144 6.0425,-1.1907 -5.7992,2.0732 6.1524,-0.2768 -6.0435,1.1856 6.1251,0.6433 -6.1527,0.2717 z" />
+ <path
+ inkscape:label=""wtf""
+ d="m 1961.9452,2939.0803 -8.5654,2.8444 -5.6773,7.016 -2.8444,-8.5654 -7.0159,-5.6773 8.5653,-2.8444 5.6774,-7.0159 2.8443,8.5653 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="0.96525166"
+ sodipodi:arg1="0.1798535"
+ sodipodi:r2="6.1245413"
+ sodipodi:r1="12.249084"
+ sodipodi:cy="2936.8892"
+ sodipodi:cx="1949.8937"
+ sodipodi:sides="4"
+ id="path3657"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ sodipodi:type="star" />
+ <path
+ inkscape:label=""xxx""
+ sodipodi:type="star"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="path3659"
+ sodipodi:sides="5"
+ sodipodi:cx="1949.8937"
+ sodipodi:cy="2976.8892"
+ sodipodi:r1="12.249084"
+ sodipodi:r2="6.1245413"
+ sodipodi:arg1="0.1798535"
+ sodipodi:arg2="0.80817203"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 1961.9452,2979.0803 -7.8206,2.2371 -2.5907,7.7105 -4.5443,-6.7465 -8.1337,-0.081 5.012,-6.4066 -2.4362,-7.7608 7.6419,2.787 6.6281,-4.7152 -0.2891,8.1291 z" />
+ <path
+ inkscape:label=""abba""
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path3661"
+ d="m 1960.4968,2812.3613 -8.5391,6.2941 -8.539,6.2941 z"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.43566883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <circle
+ inkscape:label=""aa""
+ r="1.2603201"
+ cy="2780.55"
+ cx="1946.7977"
+ id="circle3663"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.21478893px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ </g>
+ <path
+ id="path3683"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2225.0033,2700.5501 v -200 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="2045.4561"
+ y="2500.5203"
+ id="text3689"><tspan
+ sodipodi:role="line"
+ id="tspan3685"
+ x="2045.4561"
+ y="2500.5203"
+ style="stroke-width:0.5">HMI:Switch</tspan><tspan
+ sodipodi:role="line"
+ x="2045.4561"
+ y="2525.5203"
+ style="stroke-width:0.5"
+ id="tspan3687">HMI_INT</tspan></text>
+ <text
+ id="text3693"
+ y="2500.5203"
+ x="2305.4561"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2500.5203"
+ x="2305.4561"
+ id="tspan3691"
+ sodipodi:role="line">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="2305.4561"
+ y="2540.5203"
+ id="text3697"><tspan
+ sodipodi:role="line"
+ id="tspan3695"
+ x="2305.4561"
+ y="2540.5203"
+ style="stroke-width:0.5">2</tspan></text>
+ <text
+ id="text3701"
+ y="2580.5203"
+ x="2305.4561"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2580.5203"
+ x="2305.4561"
+ sodipodi:role="line"
+ id="tspan3699">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="2305.4561"
+ y="2620.5203"
+ id="text3705"><tspan
+ id="tspan3703"
+ sodipodi:role="line"
+ x="2305.4561"
+ y="2620.5203"
+ style="stroke-width:0.5">42</tspan></text>
+ <text
+ id="text3709"
+ y="2660.5203"
+ x="2305.4561"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2660.5203"
+ x="2305.4561"
+ sodipodi:role="line"
+ id="tspan3707">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="2305.4561"
+ y="2700.5203"
+ id="text3713"><tspan
+ id="tspan3711"
+ sodipodi:role="line"
+ x="2305.4561"
+ y="2700.5203"
+ style="stroke-width:0.5">5</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ d="m 2345.0033,2700.5501 63.222,-100 m -63.222,60 63.222,-60 m -63.222,20 63.222,-20 m -63.222,-20 63.222,20 m -63.222,-60 63.222,60 m -63.222,-100 63.222,100"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3715"
+ sodipodi:nodetypes="cccccccccccc" />
+ <g
+ inkscape:label="HMI:Switch@/SWITCHINT"
+ transform="translate(-140,-244)"
+ id="g3805">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path3717"
+ id="use3757"
+ width="100%"
+ height="100%"
+ transform="translate(-20.000044,-4.6430426e-5)" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path3719"
+ id="use3759"
+ width="100%"
+ height="100%"
+ transform="translate(-20.000044,-35.134605)" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path3721"
+ id="use3761"
+ width="100%"
+ height="100%"
+ transform="translate(-20.000044,-75.134605)" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path3723"
+ id="use3763"
+ width="100%"
+ height="100%"
+ transform="translate(-20.000044,-115.83893)" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#path3725"
+ id="use3765"
+ width="100%"
+ height="100%"
+ transform="translate(-20.000044,43.099156)" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#circle3727"
+ id="use3767"
+ width="100%"
+ height="100%"
+ transform="translate(-20.000044,81.204506)" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ id="path3807"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2516.2253,2700.5501 -63.222,-100 m 63.222,60 -63.222,-60 m 63.222,20 -63.222,-20 m 63.222,-20 -63.222,20 m 63.222,-60 -63.222,60 m 63.222,-100 -63.222,100"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ style="fill:#ffffff;fill-opacity:1;stroke:#fffffc;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend-3)"
+ d="m 2515.0423,2490.0031 h -56.322"
+ id="path8203-6"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffee;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="2459.113"
+ y="2474.7529"
+ id="text8753-2"><tspan
+ sodipodi:role="line"
+ x="2459.113"
+ y="2474.7529"
+ id="tspan8765-1"
+ style="fill:#ffffee;fill-opacity:1;stroke-width:0.5">clone </tspan></text>
+ <g
+ inkscape:label="HMI:Switch@/SWICTHTHREE"
+ id="g5482">
+ <g
+ inkscape:label="3"
+ id="g5259"
+ transform="translate(377.68172,1911.1984)">
+ <use
+ height="100%"
+ width="100%"
+ id="use4514"
+ xlink:href="#g29149"
+ y="0"
+ x="0"
+ transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)" />
+ <use
+ height="100%"
+ width="100%"
+ id="use4516"
+ xlink:href="#g19348"
+ y="0"
+ x="0"
+ transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)" />
+ <use
+ height="100%"
+ width="100%"
+ id="use4518"
+ xlink:href="#g24628"
+ y="0"
+ x="0"
+ transform="matrix(0.1142708,0,0,0.1142708,2084.8332,915.30993)" />
+ </g>
+ <use
+ inkscape:label="2"
+ transform="translate(-84.862699,997.78118)"
+ x="0"
+ y="0"
+ xlink:href="#g3034"
+ id="use5261"
+ width="100%"
+ height="100%" />
+ <use
+ inkscape:label="1"
+ x="0"
+ y="0"
+ xlink:href="#g8197"
+ id="use5459"
+ width="100%"
+ height="100%"
+ transform="matrix(0.79711171,0,0,0.79711171,534.15682,1843.6646)" />
+ </g>
+ <text
+ id="text5488"
+ y="2880.5203"
+ x="2133.4561"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ id="tspan5486"
+ style="stroke-width:0.5"
+ y="2880.5203"
+ x="2133.4561"
+ sodipodi:role="line">HMI:Switch</tspan><tspan
+ id="tspan5492"
+ style="stroke-width:0.5"
+ y="2905.5203"
+ x="2133.4561"
+ sodipodi:role="line">can contain</tspan><tspan
+ id="tspan5494"
+ style="stroke-width:0.5"
+ y="2930.5203"
+ x="2133.4561"
+ sodipodi:role="line">other widgets</tspan><tspan
+ id="tspan5498"
+ style="stroke-width:0.5"
+ y="2955.5203"
+ x="2133.4561"
+ sodipodi:role="line">(or clones</tspan><tspan
+ id="tspan5502"
+ style="stroke-width:0.5"
+ y="2980.5203"
+ x="2133.4561"
+ sodipodi:role="line">of them)</tspan></text>
+ </g>
+ <g
+ id="g9918"
+ transform="translate(1340)">
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(2680)"
+ id="use9906"
+ xlink:href="#g9808"
+ y="0"
+ x="0"
+ inkscape:label="HMI:Page:DropDown" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="4192.8076"
+ y="1610.3906"
+ id="text5596"><tspan
+ sodipodi:role="line"
+ id="tspan5594"
+ x="4192.8076"
+ y="1610.3906">HMI:DropDown:[item0:item1:....]@path</tspan></text>
+ <text
+ id="text6121"
+ y="1632.0127"
+ x="4194.1895"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="1632.0127"
+ x="4194.1895"
+ sodipodi:role="line"
+ id="tspan6119">TODO</tspan></text>
+ </g>
+ <g
+ id="g9926"
+ transform="translate(1340)">
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(2680)"
+ id="use9908"
+ xlink:href="#g9813"
+ y="0"
+ x="0"
+ inkscape:label="HMI:Page:Input" />
+ <text
+ id="text6570"
+ y="2390.4241"
+ x="4192.2148"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="2390.4241"
+ x="4192.2148"
+ id="tspan6568"
+ sodipodi:role="line">HMI:Input@path</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="4193.5967"
+ y="2412.0461"
+ id="text6604"><tspan
+ id="tspan6602"
+ sodipodi:role="line"
+ x="4193.5967"
+ y="2412.0461"
+ style="stroke-width:0.25">TODO</tspan></text>
+ </g>
+ <g
+ id="g9933"
+ transform="translate(1340)">
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(2680)"
+ id="use9910"
+ xlink:href="#g9818"
+ y="0"
+ x="0"
+ inkscape:label="HMI:Page:Display" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+ x="4192.8076"
+ y="3170.3906"
+ id="text6827"><tspan
+ sodipodi:role="line"
+ id="tspan6825"
+ x="4192.8076"
+ y="3170.3906">HMI:Display@path</tspan></text>
+ <text
+ id="text6831"
+ y="3192.0127"
+ x="4194.1895"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="fill:#fffffb;fill-opacity:1;stroke-width:0.25"
+ y="3192.0127"
+ x="4194.1895"
+ sodipodi:role="line"
+ id="tspan6829">TODO</tspan></text>
+ </g>
+ <g
+ id="g9803">
+ <rect
+ style="color:#000000;fill-opacity:1"
+ id="rect8168"
+ width="1280"
+ height="720"
+ x="1480"
+ y="780"
+ inkscape:label="page" />
+ <path
+ inkscape:label="button"
+ style="stroke-width:8.65513134"
+ d="m 2621.5859,851.9308 h -25.9654 L 2664.8616,800 l 69.241,51.9308 h -25.9654 v 51.9308 h -34.6205 v -25.9654 h -17.3103 v 25.9654 h -34.6205 z"
+ id="polygon8206"
+ inkscape:connector-curvature="0" />
+ <text
+ inkscape:label="text"
+ id="text8212"
+ y="859.07928"
+ x="2664.4124"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill-opacity:1;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="text-align:center;text-anchor:middle;fill-opacity:1;stroke-width:0.5"
+ y="859.07928"
+ x="2664.4124"
+ id="tspan8210"
+ sodipodi:role="line">Home</tspan></text>
+ </g>
+ <g
+ id="g9808">
+ <use
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="0"
+ y="0"
+ xlink:href="#rect8168"
+ id="use8811"
+ width="100%"
+ height="100%"
+ transform="translate(0,780)" />
+ <g
+ id="g9945"
+ inkscape:label="HMI:Jump:Home">
+ <use
+ transform="translate(0,780)"
+ height="100%"
+ width="100%"
+ id="use8813"
+ xlink:href="#polygon8206"
+ y="0"
+ x="0"
+ style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke-width:8.65513134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <use
+ transform="translate(0,780)"
+ height="100%"
+ width="100%"
+ id="use8815"
+ xlink:href="#text8212"
+ y="0"
+ x="0"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.49999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ id="g9813">
+ <use
+ style="opacity:1;vector-effect:none;fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="translate(0,1560)"
+ height="100%"
+ width="100%"
+ id="use8838"
+ xlink:href="#rect8168"
+ y="0"
+ x="0" />
+ <g
+ id="g9941"
+ inkscape:label="HMI:Jump:Home">
+ <use
+ x="0"
+ y="0"
+ xlink:href="#polygon8206"
+ id="use8840"
+ width="100%"
+ height="100%"
+ transform="translate(0,1560)"
+ style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke-width:8.65513134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#text8212"
+ id="use8842"
+ width="100%"
+ height="100%"
+ transform="translate(0,1560)"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.49999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ id="g9818">
+ <use
+ style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.06666672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="0"
+ y="0"
+ xlink:href="#rect8168"
+ id="use8877"
+ width="100%"
+ height="100%"
+ transform="translate(0,2340)" />
+ <g
+ id="g9937"
+ inkscape:label="HMI:Jump:Home">
+ <use
+ transform="translate(0,2340)"
+ height="100%"
+ width="100%"
+ id="use8879"
+ xlink:href="#polygon8206"
+ y="0"
+ x="0"
+ style="opacity:1;vector-effect:none;fill:#fffffc;fill-opacity:1;stroke:none;stroke-width:8.65513134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <use
+ transform="translate(0,2340)"
+ height="100%"
+ width="100%"
+ id="use8881"
+ xlink:href="#text8212"
+ y="0"
+ x="0"
+ style="opacity:1;vector-effect:none;fill:#000009;fill-opacity:1;stroke:none;stroke-width:0.49999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ id="g9959"
+ transform="translate(2680)">
+ <use
+ inkscape:label="HMI:Page:Button"
+ x="0"
+ y="0"
+ xlink:href="#g9808"
+ id="use9947"
+ transform="translate(2680)"
+ width="100%"
+ height="100%" />
+ <text
+ id="text9951"
+ y="1610.3906"
+ x="4192.8076"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="1610.3906"
+ x="4192.8076"
+ id="tspan9949"
+ sodipodi:role="line">HMI:Button@path</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="4194.1895"
+ y="1632.0127"
+ id="text9957"><tspan
+ id="tspan9955"
+ sodipodi:role="line"
+ x="4194.1895"
+ y="1632.0127"
+ style="stroke-width:0.25">TODO</tspan></text>
+ </g>
+ <g
+ id="g9973"
+ transform="translate(2680)">
+ <use
+ inkscape:label="HMI:Page:ForEach"
+ x="0"
+ y="0"
+ xlink:href="#g9813"
+ id="use9961"
+ transform="translate(2680)"
+ width="100%"
+ height="100%" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="4192.2148"
+ y="2390.4241"
+ id="text9965"><tspan
+ sodipodi:role="line"
+ id="tspan9963"
+ x="4192.2148"
+ y="2390.4241">HMI:ForEach@path</tspan></text>
+ <text
+ id="text9971"
+ y="2412.0461"
+ x="4193.5967"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="2412.0461"
+ x="4193.5967"
+ sodipodi:role="line"
+ id="tspan9969">TODO</tspan></text>
+ </g>
+ <g
+ id="g9985"
+ transform="translate(2680)">
+ <use
+ inkscape:label="HMI:Page:JsonTable"
+ x="0"
+ y="0"
+ xlink:href="#g9818"
+ id="use9975"
+ transform="translate(2680)"
+ width="100%"
+ height="100%" />
+ <text
+ id="text9979"
+ y="3170.3906"
+ x="4192.8076"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="3170.3906"
+ x="4192.8076"
+ id="tspan9977"
+ sodipodi:role="line">HMI:JsonTable@path</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="4194.1895"
+ y="3192.0127"
+ id="text9983"><tspan
+ id="tspan9981"
+ sodipodi:role="line"
+ x="4194.1895"
+ y="3192.0127"
+ style="fill:#fffffb;fill-opacity:1;stroke-width:0.25">TODO</tspan></text>
+ </g>
+ <g
+ id="g31721"
+ inkscape:label="Page Jump and Back">
+ <use
+ inkscape:label="HMI:Page:DropDown"
+ x="0"
+ y="0"
+ xlink:href="#g9808"
+ id="use10505"
+ transform="translate(1340)"
+ width="100%"
+ height="100%"
+ style="display:inline"
+ sodipodi:insensitive="true" />
+ <text
+ id="text10509"
+ y="1610.3906"
+ x="2852.8076"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="1610.3906"
+ x="2852.8076"
+ id="tspan10507"
+ sodipodi:role="line">HMI:Page:PageName[@RootPath]</tspan><tspan
+ y="1660.3906"
+ x="2852.8076"
+ sodipodi:role="line"
+ id="tspan31421">HMI:Jump:PageName[@RelativePath]</tspan><tspan
+ y="1710.3906"
+ x="2852.8076"
+ sodipodi:role="line"
+ id="tspan31423">HMI:Back</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="2854.1895"
+ y="1744.0127"
+ id="text10513"><tspan
+ id="tspan10511"
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1744.0127"
+ style="stroke-width:0.25">Pages are full screen, only one is displayed at the same time.</tspan><tspan
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1756.5127"
+ style="stroke-width:0.25"
+ id="tspan31431">If widget's bounding box is included in page bounding box, then widget is part of page.</tspan><tspan
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1769.0127"
+ style="stroke-width:0.25"
+ id="tspan24710">Page change is triggered by HMI:Jump and HMI:Back (TODO: /CURRENTPAGE).</tspan><tspan
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1781.5127"
+ style="stroke-width:0.25"
+ id="tspan31507">HMI:Back takes no parameter and just go back one step in page change history.</tspan><tspan
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1794.0127"
+ style="stroke-width:0.25"
+ id="tspan31509">HMI:Jump can have "inactive", "active" and "disabled" labeled children:</tspan><tspan
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1806.5127"
+ style="stroke-width:0.25"
+ id="tspan31511"> - "inactive" is shown when target page is not currently displayed</tspan><tspan
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1819.0127"
+ style="stroke-width:0.25"
+ id="tspan31513"> - "active" is shown when target page is currently displayed</tspan><tspan
+ sodipodi:role="line"
+ x="2854.1895"
+ y="1831.5127"
+ style="stroke-width:0.25"
+ id="tspan31515"> - "disabled" is shown when relative page's RootPath is set to 0, disabling jump.</tspan></text>
+ <text
+ id="text31455"
+ y="2112.0127"
+ x="2854.1895"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="2112.0127"
+ x="2854.1895"
+ sodipodi:role="line"
+ id="tspan31466">When [@RootPath] is given, page is a relative page.</tspan><tspan
+ id="tspan31443"
+ style="stroke-width:0.25"
+ y="2124.5127"
+ x="2854.1895"
+ sodipodi:role="line">When using HMI:Jump to reach a relative page, a compatible [@RelativePath] may be provided.</tspan><tspan
+ id="tspan31445"
+ style="stroke-width:0.25"
+ y="2137.0127"
+ x="2854.1895"
+ sodipodi:role="line">To be compatible, RootPath and RelativePath must both point to same HMI_NODE (i.e same POU).</tspan><tspan
+ id="tspan31447"
+ style="stroke-width:0.25"
+ y="2149.5127"
+ x="2854.1895"
+ sodipodi:role="line">Every widget using a path descendant of RootPath in a relative page is relative.</tspan><tspan
+ id="tspan31449"
+ style="stroke-width:0.25"
+ y="2162.0127"
+ x="2854.1895"
+ sodipodi:role="line">Relative widgets get the RootPath section of their path replaced by RelativePath.</tspan><tspan
+ id="tspan31451"
+ style="stroke-width:0.25"
+ y="2174.5127"
+ x="2854.1895"
+ sodipodi:role="line" /><tspan
+ id="tspan31453"
+ style="stroke-width:0.25"
+ y="2187.0127"
+ x="2854.1895"
+ sodipodi:role="line" /></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="2852.8076"
+ y="2082.3906"
+ id="text31500"><tspan
+ id="tspan31498"
+ sodipodi:role="line"
+ x="2852.8076"
+ y="2082.3906">Relative pages</tspan></text>
+ <rect
+ y="1570.8585"
+ x="3642.8337"
+ height="164.25635"
+ width="236.32014"
+ id="rect20533"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect28563"
+ width="127.0032"
+ height="52.087524"
+ x="3743.3491"
+ y="1588.9159" />
+ <rect
+ y="1674.9159"
+ x="3743.3491"
+ height="54.183105"
+ width="129.09868"
+ id="rect28565"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect28597"
+ width="236.32014"
+ height="164.25635"
+ x="3642.8337"
+ y="1748.8585" />
+ <rect
+ y="1766.9159"
+ x="3743.3491"
+ height="52.087524"
+ width="127.0032"
+ id="rect28599"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect28601"
+ width="129.09868"
+ height="54.183105"
+ x="3743.3491"
+ y="1852.9159" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect28625"
+ width="127.0032"
+ height="52.087524"
+ x="3743.3491"
+ y="1944.9159" />
+ <rect
+ y="2030.9159"
+ x="3743.3491"
+ height="54.183105"
+ width="129.09868"
+ id="rect28627"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <rect
+ y="1926.8585"
+ x="3642.8337"
+ height="164.25635"
+ width="236.32014"
+ id="rect28623"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <rect
+ y="2120.916"
+ x="3743.3491"
+ height="52.087524"
+ width="127.0032"
+ id="rect28651"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect28653"
+ width="129.09868"
+ height="54.183105"
+ x="3743.3491"
+ y="2206.916" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect28649"
+ width="236.32014"
+ height="164.25635"
+ x="3642.8337"
+ y="2102.8584" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
+ id="rect29757"
+ width="98.502846"
+ height="52.087524"
+ x="3355.3491"
+ y="1870.9159" />
+ <rect
+ y="1958.9159"
+ x="3355.3491"
+ height="54.183105"
+ width="97.664452"
+ id="rect29759"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <g
+ transform="matrix(0.9339736,0,0,0.9339736,570.22762,-7.4794549)"
+ id="g19637">
+ <path
+ style="fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 3397.4424,1713.5338 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="path841"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3397.4424,1998.8049 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="circle851"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3397.4424,1903.7145 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="circle853"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 3397.4424,1808.6242 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="circle855"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#888888;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3179.444,1920.411 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="circle843"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3288.4432,1951.2597 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="circle847"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3288.4432,1761.079 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="circle849"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14681)"
+ d="m 3202.1732,1945.5633 64.3092,22.561"
+ id="path873"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cc"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker22786)"
+ d="m 3189.8361,1923.0289 81.406,-124.1166"
+ id="path875"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker20902)"
+ d="m 3309.3661,1983.2134 67.1534,29.2922"
+ id="path877"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker14281)"
+ d="m 3309.3661,1964.9604 67.1534,-29.2921"
+ id="path879-5"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13481)"
+ d="m 3309.3661,1793.0327 67.1534,29.2922"
+ id="path881"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13093)"
+ d="m 3309.3661,1774.7797 67.1534,-29.2922"
+ id="path883"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path14267"
+ d="m 3397.4424,2188.9856 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="opacity:1;vector-effect:none;fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path14269"
+ d="m 3397.4424,2093.8953 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="opacity:1;vector-effect:none;fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path14271"
+ d="m 3288.4432,2141.4404 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="opacity:1;vector-effect:none;fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path14275"
+ d="m 3309.3661,2173.3942 67.1534,29.2921"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12717)" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path14277"
+ d="m 3309.3661,2155.1411 67.1534,-29.2921"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13869)" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path15085"
+ d="m 3185.5597,1965.1532 94.6058,177.9637"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15089)" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12689"
+ d="m 3179.444,2205.6822 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="fill:#df28c1;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12695"
+ d="m 2790.1344,2063.0466 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="fill:#ba0000;fill-opacity:1;stroke:none;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12697"
+ d="m 2899.1336,2158.137 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="fill:#2e8900;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12699"
+ d="m 2899.1336,1967.9563 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="fill:#d77f00;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12701"
+ d="m 2807.3355,2100.88 74.597,65.0781"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1197)" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12703"
+ d="m 2807.3355,2070.8677 74.597,-65.0781"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1207)" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path12705"
+ d="m 2919.9445,2188.2957 238.5766,31.0872"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1187)" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path12707"
+ d="m 2917.4342,2170.0427 45.1645,-26.1509"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1177)" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path12709"
+ d="m 2920.5754,1997.6662 40.6771,27.946"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1167)" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path12711"
+ d="m 2916.3544,1974.9257 242.1667,-22.5609"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1157)" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#41fefb;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3397.4424,2378.9856 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="path21346"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#41fe00;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3397.4424,2283.8953 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="path21348"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#ffff02;fill-opacity:1;stroke:#000100;stroke-width:1.88977504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66932509, 1.88977503;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3288.4432,2331.4404 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ id="path21350"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12717)"
+ d="m 3309.3661,2363.3942 67.1534,29.2921"
+ id="path21352"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker13869)"
+ d="m 3309.3661,2345.1411 67.1534,-29.2921"
+ id="path21354"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.88976383;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker21366)"
+ d="m 3192.561,2246.4305 82.8503,88.6965"
+ id="path21362"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12691"
+ d="m 2982.4361,2110.5918 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="fill:#4528c1;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path12693"
+ d="m 2982.4361,2015.5015 a 22.827207,22.827207 0 0 1 22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,22.8272 22.827207,22.827207 0 0 1 -22.8272,-22.8272 22.827207,22.827207 0 0 1 22.8272,-22.8272 z"
+ style="fill:#4585c1;fill-opacity:1;stroke:#000100;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <text
+ id="text20892"
+ y="1947.4917"
+ x="3172.6416"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="1947.4917"
+ x="3172.6416"
+ id="tspan20890"
+ sodipodi:role="line">/</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3644.752"
+ y="1580.1208"
+ id="text23772"><tspan
+ id="tspan28514"
+ sodipodi:role="line"
+ x="3644.752"
+ y="1580.1208"
+ style="stroke-width:0.23349333">HMI:MyPage@/A/B/C0</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path24724"
+ d="M 3988.9001,1724.9696 H 3881.6162"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker25174)" />
+ <text
+ id="text25616"
+ y="1719.4069"
+ x="3911.6536"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.33149907"
+ y="1719.4069"
+ x="3911.6536"
+ id="tspan25614"
+ sodipodi:role="line">HMI:Jump:MyPage</tspan></text>
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker25626)"
+ d="M 3988.9001,1902.9696 H 3881.6162"
+ id="path25618"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ x="3911.6536"
+ y="1897.4069"
+ id="text25622"><tspan
+ sodipodi:role="line"
+ id="tspan25620"
+ x="3911.6536"
+ y="1897.4069"
+ style="stroke-width:0.33149907">HMI:Jump:MyPage@/A/B/C1</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path26120"
+ d="M 3988.9001,2076.9696 H 3881.6162"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker26128)" />
+ <text
+ id="text26124"
+ y="2071.4067"
+ x="3911.6536"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.33149907"
+ y="2071.4067"
+ x="3911.6536"
+ id="tspan26122"
+ sodipodi:role="line">HMI:Jump:MyPage@/A/B/C2</tspan></text>
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker27950)"
+ d="M 3988.9001,2254.9696 H 3881.6162"
+ id="path27942"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ x="3911.6536"
+ y="2249.4067"
+ id="text27946"><tspan
+ sodipodi:role="line"
+ id="tspan27944"
+ x="3911.6536"
+ y="2249.4067"
+ style="stroke-width:0.33149907">HMI:Jump:MyPage@/D/E/F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3270.6416"
+ y="1859.4917"
+ id="text28484"><tspan
+ sodipodi:role="line"
+ id="tspan28482"
+ x="3270.6416"
+ y="1859.4917"
+ style="stroke-width:0.5">A</tspan></text>
+ <text
+ id="text28488"
+ y="1813.4917"
+ x="3532.6416"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="1813.4917"
+ x="3532.6416"
+ id="tspan28486"
+ sodipodi:role="line">B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3628.6416"
+ y="1665.4917"
+ id="text28492"><tspan
+ sodipodi:role="line"
+ id="tspan28490"
+ x="3628.6416"
+ y="1665.4917"
+ style="stroke-width:0.5">C0</tspan></text>
+ <text
+ id="text28496"
+ y="1841.4917"
+ x="3628.6416"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="1841.4917"
+ x="3628.6416"
+ id="tspan28494"
+ sodipodi:role="line">C1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3628.6416"
+ y="2021.4917"
+ id="text28500"><tspan
+ sodipodi:role="line"
+ id="tspan28498"
+ x="3628.6416"
+ y="2021.4917"
+ style="stroke-width:0.5">C2</tspan></text>
+ <text
+ id="text28504"
+ y="2035.4917"
+ x="3270.6416"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2035.4917"
+ x="3270.6416"
+ id="tspan28502"
+ sodipodi:role="line">D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3530.6416"
+ y="2079.4917"
+ id="text28508"><tspan
+ sodipodi:role="line"
+ id="tspan28506"
+ x="3530.6416"
+ y="2079.4917"
+ style="stroke-width:0.5">E</tspan></text>
+ <text
+ id="text28512"
+ y="2199.4917"
+ x="3634.6416"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2199.4917"
+ x="3634.6416"
+ id="tspan28510"
+ sodipodi:role="line">F</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ x="3911.6536"
+ y="1739.4069"
+ id="text28532"><tspan
+ sodipodi:role="line"
+ id="tspan28530"
+ x="3911.6536"
+ y="1739.4069"
+ style="stroke-width:0.33149907">HMI:Jump:MyPage@/A/B/C0</tspan></text>
+ <text
+ id="text28488-8"
+ y="1620.8591"
+ x="3736.2322"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="1620.8591"
+ x="3736.2322"
+ id="tspan28486-8"
+ sodipodi:role="line">G</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3736.2322"
+ y="1710.8591"
+ id="text28587"><tspan
+ sodipodi:role="line"
+ id="tspan28585"
+ x="3736.2322"
+ y="1710.8591"
+ style="stroke-width:0.5">H</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="1598.1208"
+ id="text28591"><tspan
+ sodipodi:role="line"
+ id="tspan28589"
+ x="3758.752"
+ y="1598.1208"
+ style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/G</tspan></text>
+ <text
+ id="text28595"
+ y="1684.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1684.1208"
+ x="3758.752"
+ id="tspan28593"
+ sodipodi:role="line">HMI:Widget@/A/B/C0/H</tspan></text>
+ <text
+ id="text28605"
+ y="1758.1208"
+ x="3644.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1758.1208"
+ x="3644.752"
+ sodipodi:role="line"
+ id="tspan28603">HMI:MyPage@/A/B/C0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3736.2322"
+ y="1798.8591"
+ id="text28609"><tspan
+ sodipodi:role="line"
+ id="tspan28607"
+ x="3736.2322"
+ y="1798.8591"
+ style="stroke-width:0.5">G</tspan></text>
+ <text
+ id="text28613"
+ y="1888.8591"
+ x="3736.2322"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="1888.8591"
+ x="3736.2322"
+ id="tspan28611"
+ sodipodi:role="line">H</tspan></text>
+ <text
+ id="text28617"
+ y="1776.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1776.1208"
+ x="3758.752"
+ id="tspan28615"
+ sodipodi:role="line">HMI:Widget@/A/B/C0/G</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="1862.1208"
+ id="text28621"><tspan
+ sodipodi:role="line"
+ id="tspan28619"
+ x="3758.752"
+ y="1862.1208"
+ style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/H</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3644.752"
+ y="1936.1208"
+ id="text28631"><tspan
+ id="tspan28629"
+ sodipodi:role="line"
+ x="3644.752"
+ y="1936.1208"
+ style="stroke-width:0.23349333">HMI:MyPage@/A/B/C0</tspan></text>
+ <text
+ id="text28635"
+ y="1976.8591"
+ x="3736.2322"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="1976.8591"
+ x="3736.2322"
+ id="tspan28633"
+ sodipodi:role="line">G</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3736.2322"
+ y="2066.8591"
+ id="text28639"><tspan
+ sodipodi:role="line"
+ id="tspan28637"
+ x="3736.2322"
+ y="2066.8591"
+ style="stroke-width:0.5">H</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="1954.1208"
+ id="text28643"><tspan
+ sodipodi:role="line"
+ id="tspan28641"
+ x="3758.752"
+ y="1954.1208"
+ style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/G</tspan></text>
+ <text
+ id="text28647"
+ y="2040.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="2040.1208"
+ x="3758.752"
+ id="tspan28645"
+ sodipodi:role="line">HMI:Widget@/A/B/C0/H</tspan></text>
+ <text
+ id="text28657"
+ y="2112.1208"
+ x="3644.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="2112.1208"
+ x="3644.752"
+ sodipodi:role="line"
+ id="tspan28655">HMI:MyPage@/A/B/C0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3736.2322"
+ y="2152.8591"
+ id="text28661"><tspan
+ sodipodi:role="line"
+ id="tspan28659"
+ x="3736.2322"
+ y="2152.8591"
+ style="stroke-width:0.5">G</tspan></text>
+ <text
+ id="text28665"
+ y="2242.8591"
+ x="3736.2322"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="2242.8591"
+ x="3736.2322"
+ id="tspan28663"
+ sodipodi:role="line">H</tspan></text>
+ <text
+ id="text28669"
+ y="2130.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="2130.1208"
+ x="3758.752"
+ id="tspan28667"
+ sodipodi:role="line">HMI:Widget@/A/B/C0/G</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="2216.1208"
+ id="text28673"><tspan
+ sodipodi:role="line"
+ id="tspan28671"
+ x="3758.752"
+ y="2216.1208"
+ style="stroke-width:0.23349333">HMI:Widget@/A/B/C0/H</tspan></text>
+ <text
+ id="text28677"
+ y="1638.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1638.1208"
+ x="3758.752"
+ id="tspan28675"
+ sodipodi:role="line">real path: /A/B/C0/G</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="1724.1208"
+ id="text28681"><tspan
+ sodipodi:role="line"
+ id="tspan28679"
+ x="3758.752"
+ y="1724.1208"
+ style="stroke-width:0.23349333">real path: /A/B/C0/H</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="1816.1208"
+ id="text28685"><tspan
+ sodipodi:role="line"
+ id="tspan28683"
+ x="3758.752"
+ y="1816.1208"
+ style="stroke-width:0.23349333">real path: /A/B/C1/G</tspan></text>
+ <text
+ id="text28689"
+ y="1902.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1902.1208"
+ x="3758.752"
+ id="tspan28687"
+ sodipodi:role="line">real path: /A/B/C1/H</tspan></text>
+ <text
+ id="text28693"
+ y="1994.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1994.1208"
+ x="3758.752"
+ id="tspan28691"
+ sodipodi:role="line">real path: /A/B/C2/G</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="2080.1208"
+ id="text28697"><tspan
+ sodipodi:role="line"
+ id="tspan28695"
+ x="3758.752"
+ y="2080.1208"
+ style="stroke-width:0.23349333">real path: /A/B/C3/H</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3758.752"
+ y="2168.1208"
+ id="text28701"><tspan
+ sodipodi:role="line"
+ id="tspan28699"
+ x="3758.752"
+ y="2168.1208"
+ style="stroke-width:0.23349333">real path: /D/E/F/G</tspan></text>
+ <text
+ id="text28705"
+ y="2254.1208"
+ x="3758.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="2254.1208"
+ x="3758.752"
+ id="tspan28703"
+ sodipodi:role="line">real path: /D/E/F/H</tspan></text>
+ <rect
+ y="1854.8585"
+ x="3314.7683"
+ height="164.25647"
+ width="147.04692"
+ id="rect29755"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.86794662;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3316.752"
+ y="1864.1208"
+ id="text29763"><tspan
+ id="tspan29761"
+ sodipodi:role="line"
+ x="3316.752"
+ y="1864.1208"
+ style="stroke-width:0.23349333">HMI:SomePage</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ x="3370.752"
+ y="1880.1208"
+ id="text29767"><tspan
+ sodipodi:role="line"
+ id="tspan29765"
+ x="3370.752"
+ y="1880.1208"
+ style="stroke-width:0.23349333">HMI:Widget@/A/I</tspan></text>
+ <text
+ id="text29771"
+ y="1968.1208"
+ x="3370.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1968.1208"
+ x="3370.752"
+ id="tspan29769"
+ sodipodi:role="line">HMI:Widget@/D/J</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3352.3206"
+ y="1902.8329"
+ id="text28484-9"><tspan
+ sodipodi:role="line"
+ id="tspan28482-7"
+ x="3352.3206"
+ y="1902.8329"
+ style="stroke-width:0.5">I</tspan></text>
+ <text
+ id="text29985"
+ y="1992.8329"
+ x="3352.3206"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.5"
+ y="1992.8329"
+ x="3352.3206"
+ id="tspan29983"
+ sodipodi:role="line">J</tspan></text>
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.7649895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker30413)"
+ d="M 3572.4377,1951.115 H 3465.1538"
+ id="path30405"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ x="3465.8237"
+ y="1967.2129"
+ id="text30409"><tspan
+ sodipodi:role="line"
+ id="tspan30407"
+ x="3465.8237"
+ y="1967.2129"
+ style="stroke-width:0.33149907">HMI:Jump:SomePage</tspan></text>
+ <text
+ id="text31389"
+ y="1912.1208"
+ x="3124.752"
+ style="font-style:normal;font-weight:normal;font-size:9.33974457px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.23349333"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.23349333"
+ y="1912.1208"
+ x="3124.752"
+ sodipodi:role="line"
+ id="tspan31387">HMI_TREE root</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path12699-3"
+ d="m 2905.556,1872.8754 a 21.320009,21.320009 0 0 1 21.32,21.32 21.320009,21.320009 0 0 1 -21.32,21.32 21.320009,21.320009 0 0 1 -21.32,-21.32 21.320009,21.320009 0 0 1 21.32,-21.32 z"
+ style="fill:none;fill-opacity:1;stroke:#000100;stroke-width:1.76499999;stroke-miterlimit:4;stroke-dasharray:5.29499996, 1.76499999;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:transform-center-x="-171.89143"
+ inkscape:transform-center-y="-18.96737" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#000100;stroke-width:1.7649895;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2905.5559,1920.8755 a 21.320009,21.320009 0 0 1 21.32,21.32 21.320009,21.320009 0 0 1 -21.32,21.32 21.320009,21.320009 0 0 1 -21.32,-21.32 21.320009,21.320009 0 0 1 21.32,-21.32 z"
+ id="path841-0"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ x="2940.9072"
+ y="1897.7371"
+ id="text30409-9"><tspan
+ sodipodi:role="line"
+ id="tspan30407-2"
+ x="2940.9072"
+ y="1897.7371"
+ style="stroke-width:0.33149907">HMI_NODE in a POU</tspan></text>
+ <text
+ id="text31781"
+ y="1945.7371"
+ x="2940.9072"
+ style="font-style:normal;font-weight:normal;font-size:13.25997066px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33149907"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.33149907"
+ y="1945.7371"
+ x="2940.9072"
+ id="tspan31779"
+ sodipodi:role="line">HMI_* variable</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="2852.2148"
+ y="1710.4241"
+ id="text10521-7"><tspan
+ sodipodi:role="line"
+ id="tspan10519-6"
+ x="2852.2148"
+ y="1745.8147" /></text>
+ <g
+ id="g33071"
+ inkscape:label="KeyPad page">
+ <use
+ inkscape:label="HMI:Page:KeyPad"
+ x="0"
+ y="0"
+ xlink:href="#g9813"
+ id="use10517"
+ transform="translate(1340)"
+ width="100%"
+ height="100%"
+ sodipodi:insensitive="true" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="2852.2148"
+ y="2390.4241"
+ id="text10521"><tspan
+ sodipodi:role="line"
+ id="tspan10519"
+ x="2852.2148"
+ y="2390.4241">HMI:KeyPad:HMI_TYPE[:HMI_TYPE...]</tspan></text>
+ <text
+ id="text10525"
+ y="2412.0461"
+ x="2853.5967"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="2412.0461"
+ x="2853.5967"
+ sodipodi:role="line"
+ id="tspan10523">KeyPad widget let user draw keyboard for different types of input.</tspan><tspan
+ style="stroke-width:0.25"
+ y="2424.5461"
+ x="2853.5967"
+ sodipodi:role="line"
+ id="tspan33108">It is shown for example when editing a value from HMI:Input widget.</tspan></text>
+ <g
+ id="g33240"
+ transform="translate(0,4.0539551)">
+ <rect
+ style="fill:url(#pattern33036);stroke:none;stroke-width:0.34027249"
+ width="435.5488"
+ height="244.9962"
+ x="2860.2483"
+ y="2779.1428"
+ id="rect32318" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.32951546px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40823787"
+ x="2872.0142"
+ y="2770.2192"
+ id="text33049"><tspan
+ sodipodi:role="line"
+ id="tspan33047"
+ x="2872.0142"
+ y="2770.2192"
+ style="stroke-width:0.40823787">HMI:Keypad:HMI_STRING:HMI_LOCAL:PAGE_LOCAL</tspan></text>
+ </g>
+ <g
+ id="g33245"
+ transform="translate(-40)">
+ <rect
+ style="fill:url(#pattern33045);stroke:none;stroke-width:0.34027249"
+ width="435.5488"
+ height="244.9962"
+ x="3541.9167"
+ y="2783.1968"
+ id="rect33043" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:16.32951546px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40823787"
+ x="3631.9973"
+ y="2772.2732"
+ id="text33053"><tspan
+ sodipodi:role="line"
+ id="tspan33051"
+ x="3631.9973"
+ y="2772.2732"
+ style="stroke-width:0.40823787">HMI:Keypad:HMI_INT:HMI_REAL</tspan></text>
+ </g>
+ <g
+ id="g33235"
+ transform="translate(80)">
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2704.1388 v -240"
+ id="path33345"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2704.1388 h 63.222"
+ id="path33343"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2664.1388 h 63.222"
+ id="path33341"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2624.1388 h 63.222"
+ id="path33339"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2584.1388 h 63.222"
+ id="path33337"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2544.1388 h 63.222"
+ id="path33335"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2986.575,2464.1388 h 123.222"
+ id="path3520-3"
+ inkscape:connector-curvature="0" />
+ <text
+ id="text3543-5"
+ y="2507.3318"
+ x="3118.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2507.3318"
+ x="3118.6919"
+ id="tspan3541-1"
+ sodipodi:role="line">Info</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2547.3318"
+ id="text3547-7"><tspan
+ sodipodi:role="line"
+ id="tspan3545-4"
+ x="3118.6919"
+ y="2547.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">Esc</tspan></text>
+ <text
+ id="text3551-3"
+ y="2587.3318"
+ x="3118.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2587.3318"
+ x="3118.6919"
+ sodipodi:role="line"
+ id="tspan3553-1">Shift</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2627.3318"
+ id="text3559-4"><tspan
+ id="tspan3557-6"
+ sodipodi:role="line"
+ x="3118.6919"
+ y="2627.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">Enter</tspan></text>
+ <text
+ id="text3563-9"
+ y="2667.3318"
+ x="3118.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2667.3318"
+ x="3118.6919"
+ sodipodi:role="line"
+ id="tspan3565-4">[...]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2707.3318"
+ id="text3571-2"><tspan
+ id="tspan3569-2"
+ sodipodi:role="line"
+ x="3118.6919"
+ y="2707.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">Keys</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2707.3318"
+ id="text33160"><tspan
+ sodipodi:role="line"
+ id="tspan33158"
+ x="3304.6919"
+ y="2707.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">0 +</tspan></text>
+ <text
+ id="text33164"
+ y="2747.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2747.3318"
+ x="3304.6919"
+ id="tspan33162"
+ sodipodi:role="line">9 -</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2787.3318"
+ id="text33168"><tspan
+ id="tspan33166"
+ sodipodi:role="line"
+ x="3304.6919"
+ y="2787.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">8</tspan></text>
+ <text
+ id="text33172"
+ y="2827.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2827.3318"
+ x="3304.6919"
+ sodipodi:role="line"
+ id="tspan33170">[...]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2867.3318"
+ id="text33176"><tspan
+ id="tspan33174"
+ sodipodi:role="line"
+ x="3304.6919"
+ y="2867.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">q Q</tspan></text>
+ <text
+ id="text33180"
+ y="2907.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2907.3318"
+ x="3304.6919"
+ sodipodi:role="line"
+ id="tspan33178">w W</tspan></text>
+ <path
+ sodipodi:nodetypes="cccccccccccccccccccc"
+ inkscape:connector-curvature="0"
+ d="m 3232.575,3024.1388 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,80 v -320 m 0,200 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -63.222,-40 h 63.222 m -123.222,-40 h 123.222"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path33182" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2947.3318"
+ id="text33187"><tspan
+ id="tspan33185"
+ sodipodi:role="line"
+ x="3304.6919"
+ y="2947.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">[...]</tspan></text>
+ <text
+ id="text33191"
+ y="2987.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2987.3318"
+ x="3304.6919"
+ sodipodi:role="line"
+ id="tspan33189">, ;</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="3027.3318"
+ id="text33195"><tspan
+ id="tspan33193"
+ sodipodi:role="line"
+ x="3304.6919"
+ y="3027.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">. :</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="2866.6919"
+ y="2467.3318"
+ id="text33199"><tspan
+ sodipodi:role="line"
+ id="tspan33197"
+ x="2866.6919"
+ y="2467.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">HMI:KeyPad</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path33347"
+ d="m 3046.575,2504.1388 h 63.222"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2467.3318"
+ id="text33351"><tspan
+ sodipodi:role="line"
+ id="tspan33349"
+ x="3118.6919"
+ y="2467.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">Value</tspan></text>
+ </g>
+ <g
+ transform="translate(720)"
+ id="g33315">
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2744.1388 v -280"
+ id="path33331"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2704.1388 h 63.222"
+ id="path33329"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2664.1388 h 63.222"
+ id="path33327"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2624.1388 h 63.222"
+ id="path33325"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2584.1388 h 63.222"
+ id="path33323"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3046.575,2544.1388 h 63.222"
+ id="path33321"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2986.575,2464.1388 h 123.222"
+ id="path33247"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2507.3318"
+ id="text33251"><tspan
+ sodipodi:role="line"
+ id="tspan33249"
+ x="3118.6919"
+ y="2507.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">Info</tspan></text>
+ <text
+ id="text33255"
+ y="2547.3318"
+ x="3118.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2547.3318"
+ x="3118.6919"
+ id="tspan33253"
+ sodipodi:role="line">Esc</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2587.3318"
+ id="text33259"><tspan
+ id="tspan33257"
+ sodipodi:role="line"
+ x="3118.6919"
+ y="2587.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">Sign</tspan></text>
+ <text
+ id="text33263"
+ y="2627.3318"
+ x="3118.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2627.3318"
+ x="3118.6919"
+ sodipodi:role="line"
+ id="tspan33261">Enter</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2707.3318"
+ id="text33267"><tspan
+ id="tspan33265"
+ sodipodi:role="line"
+ x="3118.6919"
+ y="2707.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">[...]</tspan></text>
+ <text
+ id="text33271"
+ y="2747.3318"
+ x="3118.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2747.3318"
+ x="3118.6919"
+ sodipodi:role="line"
+ id="tspan33269">Keys</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2747.3318"
+ id="text33279"><tspan
+ sodipodi:role="line"
+ x="3304.6919"
+ y="2747.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ id="tspan33385">9</tspan></text>
+ <text
+ id="text33283"
+ y="2787.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2787.3318"
+ x="3304.6919"
+ sodipodi:role="line"
+ id="tspan33281">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2827.3318"
+ id="text33287"><tspan
+ id="tspan33285"
+ sodipodi:role="line"
+ x="3304.6919"
+ y="2827.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">7</tspan></text>
+ <text
+ id="text33291"
+ y="2867.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2867.3318"
+ x="3304.6919"
+ sodipodi:role="line"
+ id="tspan33289">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2907.3318"
+ id="text33295"><tspan
+ id="tspan33293"
+ sodipodi:role="line"
+ x="3304.6919"
+ y="2907.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">5</tspan></text>
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,3024.1388 h 63.222"
+ id="path33377"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,2984.1388 h 63.222"
+ id="path33375"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,2944.1388 h 63.222"
+ id="path33373"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,3024.1388 v -280"
+ id="path33371"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,2904.1388 h 63.222"
+ id="path33369"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,2864.1388 h 63.222"
+ id="path33367"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,2824.1388 h 63.222"
+ id="path33365"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3232.575,2784.1388 h 63.222"
+ id="path33363"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3172.575,2744.1388 h 123.222"
+ id="path33297"
+ inkscape:connector-curvature="0" />
+ <text
+ id="text33301"
+ y="2947.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2947.3318"
+ x="3304.6919"
+ sodipodi:role="line"
+ id="tspan33299">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3304.6919"
+ y="2987.3318"
+ id="text33305"><tspan
+ id="tspan33303"
+ sodipodi:role="line"
+ x="3304.6919"
+ y="2987.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">3</tspan></text>
+ <text
+ id="text33309"
+ y="3027.3318"
+ x="3304.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="3027.3318"
+ x="3304.6919"
+ sodipodi:role="line"
+ id="tspan33307">[...]</tspan></text>
+ <text
+ id="text33313"
+ y="2467.3318"
+ x="2866.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2467.3318"
+ x="2866.6919"
+ id="tspan33311"
+ sodipodi:role="line">HMI:KeyPad</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path33353"
+ d="m 3046.575,2504.1388 h 63.222"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ id="text33357"
+ y="2467.3318"
+ x="3118.6919"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ xml:space="preserve"><tspan
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5"
+ y="2467.3318"
+ x="3118.6919"
+ id="tspan33355"
+ sodipodi:role="line">Value</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path33379"
+ d="m 3046.575,2744.1388 h 63.222"
+ style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:20px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5"
+ x="3118.6919"
+ y="2667.3318"
+ id="text33383"><tspan
+ id="tspan33381"
+ sodipodi:role="line"
+ x="3118.6919"
+ y="2667.3318"
+ style="fill:#000000;fill-opacity:1;stroke-width:0.5">NumDot</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g35667">
+ <use
+ inkscape:label="HMI:Page:Slider"
+ x="0"
+ y="0"
+ xlink:href="#g9818"
+ id="use10529"
+ transform="translate(1340)"
+ width="100%"
+ height="100%"
+ style="display:inline" />
+ <text
+ id="text10533"
+ y="3170.3906"
+ x="2852.8076"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="3170.3906"
+ x="2852.8076"
+ id="tspan10531"
+ sodipodi:role="line">HMI:Slider</tspan><tspan
+ y="3220.3906"
+ x="2852.8076"
+ sodipodi:role="line"
+ id="tspan31723">HMI:CircularSlider</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="2854.1895"
+ y="3252.0127"
+ id="text10537"><tspan
+ id="tspan10535"
+ sodipodi:role="line"
+ x="2854.1895"
+ y="3252.0127"
+ style="fill:#fffffb;fill-opacity:1;stroke-width:0.25">TODO</tspan></text>
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="rect35600"
+ d="m 3292.1479,3284.5305 10,35 h -20 z"
+ style="fill:url(#linearGradient35602);fill-opacity:1" />
+ <path
+ style="fill:url(#linearGradient35607);fill-opacity:1"
+ d="m 3292.1479,3771.5305 10,-35 h -20 z"
+ id="path35605"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path35649"
+ d="m 3292.0999,3328.0305 v 400"
+ style="fill:none;fill-opacity:1;stroke:#464646;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ rx="10"
+ ry="10"
+ id="rect35590"
+ width="20"
+ height="75"
+ x="3282.1479"
+ y="3490.5305"
+ style="fill:url(#linearGradient35598);fill-opacity:1" />
+ </g>
+ <rect
+ id="rect47533"
+ width="46.545795"
+ height="542.65326"
+ x="3626.9021"
+ y="3249.9719"
+ style="opacity:1;vector-effect:none;fill:#646464;fill-opacity:1;stroke:url(#radialGradient48094);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="fill:#b4b4b4;fill-opacity:1;stroke:url(#radialGradient48061);stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ y="3466.1411"
+ x="3628.9995"
+ height="106.85596"
+ width="42.225544"
+ id="rect48059" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#f00000;fill-opacity:1;stroke:none"
+ x="3096.4146"
+ y="3422.8428"
+ id="text48098"><tspan
+ sodipodi:role="line"
+ id="tspan48096"
+ x="3096.4146"
+ y="3422.8428">TO BE REWRITTEN, DO NOT USE</tspan></text>
+ <g
+ style="stroke-width:0.35083869"
+ transform="matrix(0.81491208,0,0,0.81491208,5048.484,991.82998)"
+ inkscape:label="HMI:DropDown:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27@/SELECTION"
+ id="g48112">
+ <rect
+ inkscape:label="box"
+ ry="2.4558709"
+ rx="2.4558709"
+ y="923.98993"
+ x="864.00842"
+ height="130.9433"
+ width="391.99988"
+ id="rect48102"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#53676c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.75419331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect48104"
+ width="391.99988"
+ height="92.71212"
+ x="864.00842"
+ y="943.10553"
+ rx="2.4558709"
+ ry="2.4558709"
+ inkscape:label="highlight" />
+ <text
+ inkscape:label="text"
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d42aff;fill-opacity:1;stroke:none;stroke-width:0.35083869px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="881.44226"
+ y="1011.9975"
+ id="text48108"><tspan
+ id="tspan48106"
+ sodipodi:role="line"
+ x="881.44226"
+ y="1011.9975"
+ style="text-align:start;text-anchor:start;fill:#d42aff;stroke-width:0.35083869px">sel_0</tspan></text>
+ <path
+ inkscape:label="button"
+ inkscape:transform-center-y="10.92088"
+ d="m 1200.5,1018.6835 -18.9155,-32.76262 -18.9155,-32.76264 37.831,0 37.831,0 -18.9155,32.76264 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="2.6179939"
+ sodipodi:arg1="1.5707963"
+ sodipodi:r2="21.841761"
+ sodipodi:r1="43.683521"
+ sodipodi:cy="975"
+ sodipodi:cx="1200.5"
+ sodipodi:sides="3"
+ id="path48110"
+ style="opacity:1;vector-effect:none;fill:#a7a5a6;fill-opacity:1;stroke:none;stroke-width:0.12376806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="star" />
+ </g>
+ <g
+ id="g48213">
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(6700)"
+ id="use9947-8"
+ xlink:href="#g9808"
+ y="0"
+ x="0"
+ inkscape:label="HMI:Page:Button" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ x="8192.8076"
+ y="1610.3906"
+ id="text9951-1"><tspan
+ sodipodi:role="line"
+ id="tspan9949-2"
+ x="8192.8076"
+ y="1610.3906">HMI:ToggleButton@path</tspan></text>
+ <text
+ id="text9957-3"
+ y="1632.0127"
+ x="8214.1895"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="stroke-width:0.25"
+ y="1632.0127"
+ x="8214.1895"
+ sodipodi:role="line"
+ id="tspan9955-3">TODO</tspan></text>
+ </g>
+ <g
+ id="g48220">
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(6700)"
+ id="use9961-6"
+ xlink:href="#g9813"
+ y="0"
+ x="0"
+ inkscape:label="HMI:Page:ForEach" />
+ <text
+ id="text9965-8"
+ y="2390.4241"
+ x="8192.2148"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="2390.4241"
+ x="8192.2148"
+ id="tspan9963-8"
+ sodipodi:role="line">HMI:Multistate@path</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25"
+ x="8213.5967"
+ y="2412.0461"
+ id="text9971-3"><tspan
+ id="tspan9969-8"
+ sodipodi:role="line"
+ x="8213.5967"
+ y="2412.0461"
+ style="stroke-width:0.25">TODO</tspan></text>
+ </g>
+ <g
+ id="g48227">
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(6700)"
+ id="use9975-8"
+ xlink:href="#g9818"
+ y="0"
+ x="0"
+ inkscape:label="HMI:Page:JsonTable" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ x="8192.2148"
+ y="3170.4241"
+ id="text35647"><tspan
+ sodipodi:role="line"
+ id="tspan35645"
+ x="8192.2148"
+ y="3170.4241">HMI:CustomHtml@path</tspan></text>
+ <text
+ id="text9983-0"
+ y="3192.0127"
+ x="8214.1895"
+ style="font-style:normal;font-weight:normal;font-size:10px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#fffffb;fill-opacity:1;stroke:none;stroke-width:0.25"
+ xml:space="preserve"><tspan
+ style="fill:#fffffb;fill-opacity:1;stroke-width:0.25"
+ y="3192.0127"
+ x="8214.1895"
+ sodipodi:role="line"
+ id="tspan9981-4">TODO</tspan></text>
+ </g>
+</svg>
--- a/util/ProcessLogger.py Wed Jun 30 15:44:32 2021 +0200
+++ b/util/ProcessLogger.py Thu Sep 02 21:36:29 2021 +0200
@@ -139,6 +139,9 @@
else:
self.timeout = None
+ if _debug:
+ self.logger.write("(DEBUG) launching:\n" + self.Command_str + "\n")
+
self.Proc = subprocess.Popen(self.Command, **popenargs)
self.outt = outputThread(
@@ -191,7 +194,7 @@
if self.timeout:
self.timeout.cancel()
self.exitcode = ecode
- if _debug or self.exitcode != 0:
+ if self.exitcode != 0:
self.log_the_end(ecode, pid)
if self.finish_callback is not None:
self.finish_callback(self, ecode, pid)
--- a/xmlclass/xmlclass.py Wed Jun 30 15:44:32 2021 +0200
+++ b/xmlclass/xmlclass.py Thu Sep 02 21:36:29 2021 +0200
@@ -1522,7 +1522,7 @@
raise ValueError("Wrong path!")
if attributes[parts[0]]["attr_type"]["basename"] == "boolean":
setattr(self, parts[0], value)
- elif attributes[parts[0]]["use"] == "optional" and value == "":
+ elif attributes[parts[0]]["use"] == "optional" and value == None:
if "default" in attributes[parts[0]]:
setattr(self, parts[0],
attributes[parts[0]]["attr_type"]["extract"](