From db12b9e02cdeaa19a927d0e9d0ce915e59c964dd Mon Sep 17 00:00:00 2001
From: "benjamin.jakimow@geo.hu-berlin.de" <q8DTkxUg-BB>
Date: Wed, 21 Feb 2018 14:03:33 +0100
Subject: [PATCH] added icons pixelloader.py - loads from valid band-indices
 only profilevisualization.py - refactoring, added exampleLyr(sensor)   
 several changes related to 3D plotting: added ViewWidget3D(),
 TemporalProfile3DPlotStyle(PlotStyle),
 PlotSettingsModel3D(QAbstractTableModel)

---
 timeseriesviewer/pixelloader.py          |    5 +-
 timeseriesviewer/plotstyling.py          |   35 +-
 timeseriesviewer/profilevisualization.py |  791 ++++++++--
 timeseriesviewer/ui/profileviewdock.ui   |   58 +-
 timeseriesviewer/ui/resources.py         | 1795 +++++++++++++++-------
 timeseriesviewer/ui/resources.qrc        |    2 +
 6 files changed, 2011 insertions(+), 675 deletions(-)

diff --git a/timeseriesviewer/pixelloader.py b/timeseriesviewer/pixelloader.py
index fb72052d..81fad3b7 100644
--- a/timeseriesviewer/pixelloader.py
+++ b/timeseriesviewer/pixelloader.py
@@ -198,6 +198,9 @@ def doLoaderTask(task):
 
     bandIndices = list(range(nb)) if task.bandIndices is None else list(task.bandIndices)
 
+    #ensure to load valid indices only
+    bandIndices = [i for i in bandIndices if i >= 0 and i < nb]
+
     gt = ds.GetGeoTransform()
     result.resGeoTransformation = gt
     result.resCrsWkt = ds.GetProjection()
@@ -322,7 +325,7 @@ def doLoaderTask(task):
     #finally, ensure that there is on 2D array only
     for i in range(len(PROFILE_DATA)):
         d = PROFILE_DATA[i]
-        if d != INFO_OUT_OF_IMAGE:
+        if isinstance(d, np.ndarray):
             assert d.ndim == 2
             b, yx = d.shape
             assert b == len(bandIndices)
diff --git a/timeseriesviewer/plotstyling.py b/timeseriesviewer/plotstyling.py
index b7385f48..f7e50a50 100644
--- a/timeseriesviewer/plotstyling.py
+++ b/timeseriesviewer/plotstyling.py
@@ -62,26 +62,28 @@ class PlotStyle(QObject):
         if plotStyle: kwds.pop('plotStyle')
         super(PlotStyle,self).__init__(**kwds)
 
-        self.markerSymbol = MARKERSYMBOLS[0][0]
-        self.markerSize = 10
-        self.markerBrush = QBrush()
-        self.markerBrush.setColor(Qt.green)
-        self.markerBrush.setStyle(Qt.SolidPattern)
 
-        self.backgroundColor = Qt.black
 
-        self.markerPen = QPen()
-        self.markerPen.setStyle(Qt.SolidLine)
-        self.markerPen.setColor(Qt.white)
+        if plotStyle:
+            self.copyFrom(plotStyle)
+        else:
+            self.markerSymbol = MARKERSYMBOLS[0][0]
+            self.markerSize = 10
+            self.markerBrush = QBrush()
+            self.markerBrush.setColor(Qt.green)
+            self.markerBrush.setStyle(Qt.SolidPattern)
 
-        self.linePen = QPen()
-        self.linePen.setStyle(Qt.NoPen)
-        self.linePen.setColor(QColor(74, 75, 75))
+            self.backgroundColor = Qt.black
 
-        self.mIsVisible = True
+            self.markerPen = QPen()
+            self.markerPen.setStyle(Qt.SolidLine)
+            self.markerPen.setColor(Qt.white)
 
-        if plotStyle:
-            self.copyFrom(plotStyle)
+            self.linePen = QPen()
+            self.linePen.setStyle(Qt.NoPen)
+            self.linePen.setColor(QColor(74,75,75))
+
+            self.mIsVisible = True
 
 
     def setVisibility(self, b):
@@ -109,9 +111,8 @@ class PlotStyle(QObject):
         self.markerSize = plotStyle.markerSize
         self.backgroundColor = QColor(plotStyle.backgroundColor)
         self.linePen = QPen(plotStyle.linePen)
-        self.setVisibility(plotStyle.isVisible())
-        self.update()
 
+        self.setVisibility(plotStyle.isVisible())
         s = ""
     def createIcon(self, size=None):
 
diff --git a/timeseriesviewer/profilevisualization.py b/timeseriesviewer/profilevisualization.py
index 743c7095..c835b649 100644
--- a/timeseriesviewer/profilevisualization.py
+++ b/timeseriesviewer/profilevisualization.py
@@ -57,7 +57,32 @@ OPENGL_AVAILABLE = False
 try:
     import OpenGL
     OPENGL_AVAILABLE = True
+
+    from pyqtgraph.opengl import GLViewWidget
+
+
+    class ViewWidget3D(GLViewWidget):
+
+        def paintGL(self, *args, **kwds):
+            GLViewWidget.paintGL(self, *args, **kwds)
+            self.qglColor(Qt.white)
+            self.renderAnnotations()
+
+        def renderAnnotations(self):
+
+            #self.renderText(0.8, 0.8, 0.8, 'text')
+            self.renderText(5, 10, 'text')
+    """
+    class TemporalProfileGLLinePlotItem(gl.GLLinePlotItem):
+
+        def __init__(self, plotStyle, *args, **kwds):
+            assert isinstance(plotStyle, TemporalProfile3DPlotStyle)
+
+        gl.GLLinePlotItem
+    """
 except:
+    if DEBUG:
+        print('unable to import package OpenGL')
     pass
 
 def getTextColorWithContrast(c):
@@ -73,7 +98,7 @@ def bandIndex2bandKey(i):
     return 'b{}'.format(i + 1)
 
 def bandKey2bandIndex(key):
-    match = PlotSettingsModel.regBandKeyExact.search(key)
+    match = PlotSettingsModel2D.regBandKeyExact.search(key)
     assert match
     idx = int(match.group()[1:]) - 1
     return idx
@@ -231,7 +256,7 @@ class _SensorPoints(pg.PlotDataItem):
 class TemporalProfilePlotDataItem(pg.PlotDataItem):
 
     def __init__(self, plotStyle, parent=None):
-        assert isinstance(plotStyle, TemporalProfilePlotStyle)
+        assert isinstance(plotStyle, TemporalProfile2DPlotStyle)
 
 
         super(TemporalProfilePlotDataItem, self).__init__([], [], parent=parent)
@@ -355,23 +380,24 @@ class TemporalProfilePlotDataItem(pg.PlotDataItem):
 
 
 
-class PlotSettingsWidgetDelegate(QStyledItemDelegate):
+class PlotSettingsModel2DWidgetDelegate(QStyledItemDelegate):
     """
 
     """
     def __init__(self, tableView, timeSeries, temporalProfileListModel, parent=None):
 
-        super(PlotSettingsWidgetDelegate, self).__init__(parent=parent)
+        super(PlotSettingsModel2DWidgetDelegate, self).__init__(parent=parent)
         self._preferedSize = QgsFieldExpressionWidget().sizeHint()
-        self.tableView = tableView
-        self.timeSeries = timeSeries
-        self.temporalProfileListModel = temporalProfileListModel
+        self.mTableView = tableView
+        self.mTimeSeries = timeSeries
+        self.mTemporalProfileListModel = temporalProfileListModel
+        self.mSensorLayers = {}
 
     def setItemDelegates(self, tableView):
         assert isinstance(tableView, QTableView)
         model = tableView.model()
 
-        assert isinstance(model, PlotSettingsModel)
+        assert isinstance(model, PlotSettingsModel2D)
         for c in [model.cnSensor, model.cnExpression, model.cnStyle, model.cnTemporalProfile]:
             i = model.columNames.index(c)
             tableView.setItemDelegateForColumn(i, self)
@@ -379,7 +405,7 @@ class PlotSettingsWidgetDelegate(QStyledItemDelegate):
     def getColumnName(self, index):
         assert index.isValid()
         model = index.model()
-        assert isinstance(model, PlotSettingsModel)
+        assert isinstance(model, PlotSettingsModel2D)
         return model.columNames[index.column()]
     """
     def sizeHint(self, options, index):
@@ -391,60 +417,84 @@ class PlotSettingsWidgetDelegate(QStyledItemDelegate):
         s = QSize(x, s.height())
         return self._preferedSize
     """
+    def exampleLyr(self, sensor):
+        assert isinstance(sensor, SensorInstrument)
+
+
+        if sensor not in self.mSensorLayers.keys():
+
+            crs = QgsCoordinateReferenceSystem('EPSG:4862')
+            uri = 'Point?crs={}'.format(crs.authid())
+            lyr = QgsVectorLayer(uri, 'LOCATIONS', 'memory', False)
+            f = sensorExampleQgsFeature(sensor)
+            assert isinstance(f, QgsFeature)
+            assert lyr.startEditing()
+            for field in f.fields():
+                lyr.addAttribute(field)
+            lyr.addFeature(f)
+            lyr.commitChanges()
+            self.mSensorLayers[sensor] = lyr
+        return self.mSensorLayers[sensor]
 
     def createEditor(self, parent, option, index):
         cname = self.getColumnName(index)
-        model = self.tableView.model()
+        model = self.mTableView.model()
         w = None
-        if index.isValid() and isinstance(model, PlotSettingsModel):
+        if index.isValid() and isinstance(model, PlotSettingsModel2D):
             plotStyle = model.idx2plotStyle(index)
-            if isinstance(plotStyle, TemporalProfilePlotStyle):
+            if isinstance(plotStyle, TemporalProfile2DPlotStyle):
                 if cname == model.cnExpression:
                     w = QgsFieldExpressionWidget(parent=parent)
-
-                    #todo: w.setLayer(sv.memLyr)
+                    w.setExpression(plotStyle.expression())
+                    w.setLayer(self.exampleLyr(plotStyle.sensor()))
+                    plotStyle.sigSensorChanged.connect(lambda s : w.setLayer(self.exampleLyr(s)))
                     w.setExpressionDialogTitle('Values')
                     w.setToolTip('Set an expression to specify the image band or calculate a spectral index.')
-                    w.fieldChanged.connect(lambda : self.checkData(w, w.expression()))
+                    w.fieldChanged[str,bool].connect(lambda n, b : self.checkData(index, w, w.expression()))
 
                 elif cname == model.cnStyle:
                     w = PlotStyleButton(parent=parent)
                     w.setPlotStyle(plotStyle)
                     w.setToolTip('Set style.')
-                    w.sigPlotStyleChanged.connect(lambda: self.checkData(w, w.plotStyle()))
+                    w.sigPlotStyleChanged.connect(lambda: self.checkData(index, w, w.plotStyle()))
 
                 elif cname == model.cnSensor:
                     w = QComboBox(parent=parent)
-                    m = SensorListModel(self.timeSeries)
+                    m = SensorListModel(self.mTimeSeries)
                     w.setModel(m)
 
                 elif cname == model.cnTemporalProfile:
                     w = QComboBox(parent=parent)
-                    w.setModel(self.temporalProfileListModel)
+                    w.setModel(self.mTemporalProfileListModel)
                 else:
                     raise NotImplementedError()
         return w
 
-    def checkData(self, w, expression):
-        if isinstance(w, QgsFieldExpressionWidget):
-            assert expression == w.expression()
-            assert w.isExpressionValid(expression) == w.isValidExpression()
+    def checkData(self, index, w, expression):
+        assert isinstance(index, QModelIndex)
+        model = self.mTableView.model()
+        if index.isValid() and isinstance(model, PlotSettingsModel2D):
+            plotStyle = model.idx2plotStyle(index)
+            assert isinstance(plotStyle, TemporalProfile2DPlotStyle)
+            if isinstance(w, QgsFieldExpressionWidget):
+                assert expression == w.expression()
+                assert w.isExpressionValid(expression) == w.isValidExpression()
+
+                if w.isValidExpression():
+                    self.commitData.emit(w)
+                else:
+                    s = ""
+                    #print(('Delegate commit failed',w.asExpression()))
+            if isinstance(w, PlotStyleButton):
 
-            if w.isValidExpression():
                 self.commitData.emit(w)
-            else:
-                s = ""
-                #print(('Delegate commit failed',w.asExpression()))
-        if isinstance(w, PlotStyleButton):
-
-            self.commitData.emit(w)
 
     def setEditorData(self, editor, index):
         cname = self.getColumnName(index)
-        model = self.tableView.model()
+        model = self.mTableView.model()
 
         w = None
-        if index.isValid() and isinstance(model, PlotSettingsModel):
+        if index.isValid() and isinstance(model, PlotSettingsModel2D):
 
             cname = self.getColumnName(index)
             if cname == model.cnExpression:
@@ -479,9 +529,9 @@ class PlotSettingsWidgetDelegate(QStyledItemDelegate):
 
     def setModelData(self, w, model, index):
         cname = self.getColumnName(index)
-        model = self.tableView.model()
+        model = self.mTableView.model()
 
-        if index.isValid() and isinstance(model, PlotSettingsModel):
+        if index.isValid() and isinstance(model, PlotSettingsModel2D):
             if cname == model.cnExpression:
                 assert isinstance(w, QgsFieldExpressionWidget)
                 expr = w.asExpression()
@@ -510,6 +560,94 @@ class PlotSettingsWidgetDelegate(QStyledItemDelegate):
                 raise NotImplementedError()
 
 
+
+class PlotSettingsModel3DWidgetDelegate(QStyledItemDelegate):
+    """
+
+    """
+    def __init__(self, tableView, parent=None):
+
+        super(PlotSettingsModel3DWidgetDelegate, self).__init__(parent=parent)
+        self._preferedSize = QgsFieldExpressionWidget().sizeHint()
+        self.mTableView = tableView
+
+
+
+    def setItemDelegates(self, tableView):
+        assert isinstance(tableView, QTableView)
+        model = tableView.model()
+
+        assert isinstance(model, PlotSettingsModel3D)
+        for c in [model.cnStyle]:
+            i = model.columNames.index(c)
+            tableView.setItemDelegateForColumn(i, self)
+
+    def getColumnName(self, index):
+        assert index.isValid()
+        model = index.model()
+        assert isinstance(model, PlotSettingsModel3D)
+        return model.columNames[index.column()]
+    """
+    def sizeHint(self, options, index):
+        s = super(ExpressionDelegate, self).sizeHint(options, index)
+        exprString = self.tableView.model().data(index)
+        l = QLabel()
+        l.setText(exprString)
+        x = l.sizeHint().width() + 100
+        s = QSize(x, s.height())
+        return self._preferedSize
+    """
+    def createEditor(self, parent, option, index):
+        cname = self.getColumnName(index)
+        model = self.mTableView.model()
+        w = None
+        if index.isValid() and isinstance(model, PlotSettingsModel3D):
+            plotStyle = model.idx2plotStyle(index)
+            if isinstance(plotStyle, TemporalProfile3DPlotStyle):
+                if cname == model.cnStyle:
+                    w = QgsColorButton(parent=parent)
+                    w.setColor(plotStyle.color())
+                    w.setToolTip('Set line color')
+                    w.colorChanged.connect(lambda: self.checkData(index, w))
+
+        return w
+
+    def checkData(self, index, w):
+        assert isinstance(index, QModelIndex)
+        model = self.mTableView.model()
+        if index.isValid() and isinstance(model, PlotSettingsModel3D):
+            plotStyle = model.idx2plotStyle(index)
+            assert isinstance(plotStyle, TemporalProfile3DPlotStyle)
+            if isinstance(w, QgsColorButton):
+                self.commitData.emit(w)
+
+    def setEditorData(self, editor, index):
+        cname = self.getColumnName(index)
+        model = self.mTableView.model()
+
+        w = None
+        if index.isValid() and isinstance(model, PlotSettingsModel3D):
+            style = model.idx2plotStyle(index)
+            assert isinstance(style, TemporalProfile3DPlotStyle)
+            cname = self.getColumnName(index)
+            if cname == model.cnStyle:
+                assert isinstance(editor, QgsColorButton)
+                editor.setColor(style.color())
+            else:
+                raise NotImplementedError()
+
+    def setModelData(self, w, model, index):
+        cname = self.getColumnName(index)
+        model = self.mTableView.model()
+
+        if index.isValid() and isinstance(model, PlotSettingsModel3D):
+            if cname == model.cnStyle:
+                assert isinstance(w, QgsColorButton)
+                model.setData(index, w.color(), Qt.EditRole)
+            else:
+                raise NotImplementedError()
+
+
 class SensorPixelDataMemoryLayer(QgsVectorLayer):
 
     def __init__(self, sensor, crs=None):
@@ -969,12 +1107,13 @@ class TemporalProfileCollection(QAbstractTableModel):
 
 
 
-class TemporalProfilePlotStyle(PlotStyle):
+class TemporalProfile2DPlotStyle(PlotStyle):
 
     sigExpressionUpdated = pyqtSignal()
+    sigSensorChanged = pyqtSignal(SensorInstrument)
 
     def __init__(self, temporalProfile):
-        super(TemporalProfilePlotStyle, self).__init__()
+        super(TemporalProfile2DPlotStyle, self).__init__()
         assert isinstance(temporalProfile, TemporalProfile)
         self.mSensor = None
         self.mTP = temporalProfile
@@ -1002,11 +1141,13 @@ class TemporalProfilePlotStyle(PlotStyle):
         assert isinstance(sensor, SensorInstrument)
         b = sensor != self.mSensor
         self.mSensor = sensor
-        if b: self.update()
+        if b:
+            self.update()
+            self.sigSensorChanged.emit(sensor)
 
 
     def update(self):
-        super(TemporalProfilePlotStyle, self).update()
+        super(TemporalProfile2DPlotStyle, self).update()
 
         for pdi in self.mPlotItems:
             assert isinstance(pdi, TemporalProfilePlotDataItem)
@@ -1034,7 +1175,7 @@ class TemporalProfilePlotStyle(PlotStyle):
         return self.__class__, (), self.__getstate__()
 
     def __getstate__(self):
-        result = super(TemporalProfilePlotStyle, self).__getstate__()
+        result = super(TemporalProfile2DPlotStyle, self).__getstate__()
         #remove
         del result['mTP']
         del result['mSensor']
@@ -1043,6 +1184,55 @@ class TemporalProfilePlotStyle(PlotStyle):
 
 
 
+class TemporalProfile3DPlotStyle(PlotStyle):
+
+
+    def __init__(self,sensor):
+        super(TemporalProfile3DPlotStyle, self).__init__()
+        #assert isinstance(temporalProfile, TemporalProfile)
+        assert isinstance(sensor, SensorInstrument)
+        self.mSensor = sensor
+        #self.mTP = temporalProfile
+        self.mScale = 1.0
+        self.mOffset = 0.0
+        self.mColor = QColor('green')
+
+        #self.setTemporalProfile(temporalProfile)
+
+    def setColor(self, color):
+        assert isinstance(color, QColor)
+        old = self.mColor
+        self.mColor = color
+        if old != color:
+            self.update()
+
+    def color(self):
+        return self.mColor
+
+    def setScaling(self, scale, offset):
+        scale = float(scale)
+        offset = float(offset)
+        x,y =self.mScale, self.mOffset
+        self.mScale = scale
+        self.mOffset = offset
+
+        if x != scale or y != offset:
+            self.update()
+
+    def sensor(self):
+        return self.mSensor
+
+    def __reduce_ex__(self, protocol):
+        return self.__class__, (), self.__getstate__()
+
+    def __getstate__(self):
+        result = super(TemporalProfile3DPlotStyle, self).__getstate__()
+        #remove
+        del result['mSensor']
+
+        return result
+
+
 
 class DateTimeViewBox(pg.ViewBox):
     """
@@ -1093,11 +1283,292 @@ class DateTimePlotWidget(pg.PlotWidget):
 
 
 
-class PlotSettingsModel(QAbstractTableModel):
+class PlotSettingsModel3D(QAbstractTableModel):
+
+    #sigSensorAdded = pyqtSignal(SensorPlotSettings)
+    sigVisibilityChanged = pyqtSignal(TemporalProfile2DPlotStyle)
+    sigPlotStylesAdded = pyqtSignal(list)
+    sigPlotStylesRemoved = pyqtSignal(list)
+
+    def __init__(self, parent=None, *args):
+
+        #assert isinstance(tableView, QTableView)
+
+        super(PlotSettingsModel3D, self).__init__(parent=parent)
+        self.mTimeSeries = None
+        self.cnSensor = 'sensor'
+        self.cnScale = 'Scale'
+        self.cnOffset = 'Offset'
+        self.cnStyle = 'style'
+
+        self.columNames = [self.cnSensor, self.cnScale, self.cnOffset, self.cnStyle]
+
+        self.mPlotSettings = []
+        #assert isinstance(plotWidget, DateTimePlotWidget)
+
+        self.sortColumnIndex = 0
+        self.sortOrder = Qt.AscendingOrder
+
+
+        self.sort(0, Qt.AscendingOrder)
+
+    def connectTimeSeries(self, timeSeries):
+        if isinstance(timeSeries, TimeSeries):
+
+            self.mTimeSeries = timeSeries
+            self.mTimeSeries.sigSensorAdded.connect(self.createStyle)
+            self.mTimeSeries.sigSensorRemoved.connect(self.onSensorRemoved)
+            for sensor in self.mTimeSeries.sensors():
+                self.onSensorAdded(sensor)
+
+
+    def hasStyleForSensor(self, sensor):
+        assert isinstance(sensor, SensorInstrument)
+        for plotStyle in self.mPlotSettings:
+            assert isinstance(plotStyle, TemporalProfile3DPlotStyle)
+            if plotStyle.sensor() == sensor:
+                return True
+        return False
+
+
+    def createStyle(self, sensor):
+        if not self.hasStyleForSensor(sensor):
+            s = TemporalProfile3DPlotStyle(sensor)
+            self.insertPlotStyles([s])
+
+    def onSensorRemoved(self, sensor):
+        assert isinstance(sensor, SensorInstrument)
+        self.removePlotStyles([s for s in self.mPlotSettings if s.sensor() == sensor])
+
+
+    def __len__(self):
+        return len(self.mPlotSettings)
+
+    def __iter__(self):
+        return iter(self.mPlotSettings)
+
+    def __getitem__(self, slice):
+        return self.mPlotSettings[slice]
+
+    def __contains__(self, item):
+        return item in self.mPlotSettings
+
+
+    def columnIndex(self, name):
+        return self.columNames.index(name)
+
+
+    def insertPlotStyles(self, plotStyles, i=None):
+        """
+        Inserts PlotStyle
+        :param plotStyles: TemporalProfilePlotStyle | [list-of-TemporalProfilePlotStyle]
+        :param i: index to insert, defaults to the last list position
+        """
+        if isinstance(plotStyles, TemporalProfile3DPlotStyle):
+            plotStyles = [plotStyles]
+        assert isinstance(plotStyles, list)
+        for plotStyle in plotStyles:
+            assert isinstance(plotStyle, TemporalProfile3DPlotStyle)
+
+        if i is None:
+            i = len(self.mPlotSettings)
+
+        if len(plotStyles) > 0:
+            self.beginInsertRows(QModelIndex(), i, i + len(plotStyles)-1)
+            for j, plotStyle in enumerate(plotStyles):
+                assert isinstance(plotStyle, TemporalProfile3DPlotStyle)
+                self.mPlotSettings.insert(i+j, plotStyle)
+            self.endInsertRows()
+            self.sigPlotStylesAdded.emit(plotStyles)
+
+    def removePlotStyles(self, plotStyles):
+        """
+        Removes PlotStyle instances
+        :param plotStyles: TemporalProfilePlotStyle | [list-of-TemporalProfilePlotStyle]
+        """
+        if isinstance(plotStyles, TemporalProfile3DPlotStyle):
+            plotStyles = [plotStyles]
+        assert isinstance(plotStyles, list)
+
+        if len(plotStyles) > 0:
+            for plotStyle in plotStyles:
+                assert isinstance(plotStyle, TemporalProfile3DPlotStyle)
+                if plotStyle in self.mPlotSettings:
+                    idx = self.plotStyle2idx(plotStyle)
+                    self.beginRemoveRows(QModelIndex(), idx.row(),idx.row())
+                    self.mPlotSettings.remove(plotStyle)
+                    self.endRemoveRows()
+                if isinstance(plotStyle, TemporalProfile3DPlotStyle):
+                    for pi in plotStyle.mPlotItems:
+                        self.mPlotWidget.getPlotItem().removeItem(pi)
+            self.sigPlotStylesRemoved.emit(plotStyles)
+
+    def sort(self, col, order):
+        if self.rowCount() == 0:
+            return
+
+
+        colName = self.columnames[col]
+        r = order != Qt.AscendingOrder
+
+        #self.beginMoveRows(idxSrc,
+
+        if colName == self.cnSensor:
+            self.mPlotSettings.sort(key = lambda sv:sv.sensor().name(), reverse=r)
+
+    def rowCount(self, parent = QModelIndex()):
+        return len(self.mPlotSettings)
+
+
+    def removeRows(self, row, count , parent = QModelIndex()):
+
+        self.beginRemoveRows(parent, row, row + count-1)
+
+        toRemove = self.mPlotSettings[row:row + count]
+
+        for tsd in toRemove:
+            self.mPlotSettings.remove(tsd)
+
+        self.endRemoveRows()
+
+    def plotStyle2idx(self, plotStyle):
+
+        assert isinstance(plotStyle, TemporalProfile3DPlotStyle)
+
+        if plotStyle in self.mPlotSettings:
+            i = self.mPlotSettings.index(plotStyle)
+            return self.createIndex(i, 0)
+        else:
+            return QModelIndex()
+
+    def idx2plotStyle(self, index):
+
+        if index.isValid() and index.row() < self.rowCount():
+            return self.mPlotSettings[index.row()]
+
+        return None
+
+    def columnCount(self, parent = QModelIndex()):
+        return len(self.columNames)
+
+    def data(self, index, role = Qt.DisplayRole):
+        if role is None or not index.isValid():
+            return None
+
+        value = None
+        columnName = self.columNames[index.column()]
+        plotStyle = self.idx2plotStyle(index)
+        if isinstance(plotStyle, TemporalProfile3DPlotStyle):
+            sensor = plotStyle.sensor()
+            #print(('data', columnName, role))
+            if role == Qt.DisplayRole:
+                if columnName == self.cnSensor:
+                    if isinstance(sensor, SensorInstrument):
+                        value = sensor.name()
+                    else:
+                        value = '<Select Sensor>'
+                elif columnName == self.cnScale:
+                    value = plotStyle.mScale
+                elif columnName == self.cnOffset:
+                    value = plotStyle.mOffset
+            if role == Qt.EditRole:
+                if columnName == self.cnScale:
+                    value = plotStyle.mScale
+                elif columnName == self.cnOffset:
+                    value = plotStyle.mOffset
+
+            elif role == Qt.CheckStateRole:
+                if columnName == self.cnSensor:
+                    value = Qt.Checked if plotStyle.isVisible() else Qt.Unchecked
+
+            elif role == Qt.UserRole:
+                value = plotStyle
+                if columnName == self.cnSensor:
+                    value = plotStyle.sensor()
+                elif columnName == self.cnStyle:
+                    value = plotStyle
+                else:
+                    value = plotStyle
+        #print(('get data',value))
+        return value
+
+    def setData(self, index, value, role=None):
+        if role is None or not index.isValid():
+            return False
+        #print(('Set data', index.row(), index.column(), value, role))
+        columnName = self.columNames[index.column()]
+
+        if value is None:
+            return False
+
+        result = False
+        plotStyle = self.idx2plotStyle(index)
+        if isinstance(plotStyle, TemporalProfile3DPlotStyle):
+            if role in [Qt.DisplayRole]:
+                if columnName == self.cnScale and isinstance(value, float):
+                    plotStyle.setScaling(value, plotStyle.mOffset)
+                    result = True
+                elif columnName == self.cnOffset and isinstance(value, float):
+                    plotStyle.setScaling(plotStyle.mScale, value)
+                    result = True
+                elif columnName == self.cnStyle:
+                    if isinstance(value, PlotStyle):
+                        plotStyle.copyFrom(value)
+                        result = True
+                    elif isinstance(value, QColor):
+                        plotStyle.setColor(value)
+                        result = True
+
+            if role == Qt.CheckStateRole:
+                if columnName == self.cnSensor:
+                    plotStyle.setVisibility(value == Qt.Checked)
+                    result = True
+
+            if role == Qt.EditRole:
+                if columnName == self.cnScale:
+                    plotStyle.setScaling(value, plotStyle.mOffset)
+                    result = True
+                elif columnName == self.cnOffset:
+                    plotStyle.setScaling(plotStyle.mScale, value)
+                    result = True
+                elif columnName == self.cnStyle:
+                    if isinstance(value, QColor):
+                        plotStyle.setColor(value)
+                        result = True
+                    if isinstance(value, TemporalProfile3DPlotStyle):
+                        plotStyle.copyFrom(value)
+                        result = True
+
+        return result
+
+
+    def flags(self, index):
+        if index.isValid():
+            columnName = self.columNames[index.column()]
+            flags = Qt.ItemIsEnabled | Qt.ItemIsSelectable
+            if columnName in [self.cnSensor]:
+                flags = flags | Qt.ItemIsUserCheckable
+            if columnName in [self.cnScale, self.cnOffset, self.cnStyle]: #allow check state
+                flags = flags | Qt.ItemIsEditable
+            return flags
+            #return item.qt_flags(index.column())
+        return Qt.NoItemFlags
+
+    def headerData(self, col, orientation, role):
+        if Qt is None:
+            return None
+        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
+            return self.columNames[col]
+        elif orientation == Qt.Vertical and role == Qt.DisplayRole:
+            return col
+        return None
+
+
+class PlotSettingsModel2D(QAbstractTableModel):
 
     #sigSensorAdded = pyqtSignal(SensorPlotSettings)
-    sigVisibilityChanged = pyqtSignal(TemporalProfilePlotStyle)
-    sigDataChanged = pyqtSignal(TemporalProfilePlotStyle)
+    sigVisibilityChanged = pyqtSignal(TemporalProfile2DPlotStyle)
+    sigDataChanged = pyqtSignal(TemporalProfile2DPlotStyle)
     sigPlotStylesAdded = pyqtSignal(list)
     sigPlotStylesRemoved = pyqtSignal(list)
 
@@ -1108,14 +1579,14 @@ class PlotSettingsModel(QAbstractTableModel):
 
         #assert isinstance(tableView, QTableView)
 
-        super(PlotSettingsModel, self).__init__(parent=parent)
+        super(PlotSettingsModel2D, self).__init__(parent=parent)
         assert isinstance(temporalProfileCollection, TemporalProfileCollection)
 
         self.cnID = 'ID'
         self.cnSensor = 'sensor'
         self.cnExpression = LABEL_DN
         self.cnStyle = 'style'
-        self.cnTemporalProfile = 'px'
+        self.cnTemporalProfile = 'Coordinate'
         self.columNames = [self.cnTemporalProfile, self.cnSensor, self.cnStyle, self.cnExpression]
 
         self.mPlotSettings = []
@@ -1174,10 +1645,10 @@ class PlotSettingsModel(QAbstractTableModel):
         bandIndices = set()
         assert isinstance(sensor, SensorInstrument)
         for p in [p for p in self.mPlotSettings if p.sensor() == sensor]:
-            assert isinstance(p, TemporalProfilePlotStyle)
+            assert isinstance(p, TemporalProfile2DPlotStyle)
             expression = p.expression()
             #remove leading & tailing "
-            bandKeys = PlotSettingsModel.regBandKey.findall(expression)
+            bandKeys = PlotSettingsModel2D.regBandKey.findall(expression)
             for bandIndex in [bandKey2bandIndex(key) for key in bandKeys]:
                 bandIndices.add(bandIndex)
 
@@ -1190,11 +1661,11 @@ class PlotSettingsModel(QAbstractTableModel):
         :param plotStyles: TemporalProfilePlotStyle | [list-of-TemporalProfilePlotStyle]
         :param i: index to insert, defaults to the last list position
         """
-        if isinstance(plotStyles, TemporalProfilePlotStyle):
+        if isinstance(plotStyles, TemporalProfile2DPlotStyle):
             plotStyles = [plotStyles]
         assert isinstance(plotStyles, list)
         for plotStyle in plotStyles:
-            assert isinstance(plotStyle, TemporalProfilePlotStyle)
+            assert isinstance(plotStyle, TemporalProfile2DPlotStyle)
 
         if i is None:
             i = len(self.mPlotSettings)
@@ -1202,7 +1673,7 @@ class PlotSettingsModel(QAbstractTableModel):
         if len(plotStyles) > 0:
             self.beginInsertRows(QModelIndex(), i, i + len(plotStyles)-1)
             for j, plotStyle in enumerate(plotStyles):
-                assert isinstance(plotStyle, TemporalProfilePlotStyle)
+                assert isinstance(plotStyle, TemporalProfile2DPlotStyle)
                 self.mPlotSettings.insert(i+j, plotStyle)
             self.endInsertRows()
             self.sigPlotStylesAdded.emit(plotStyles)
@@ -1224,7 +1695,7 @@ class PlotSettingsModel(QAbstractTableModel):
                     self.beginRemoveRows(QModelIndex(), idx.row(),idx.row())
                     self.mPlotSettings.remove(plotStyle)
                     self.endRemoveRows()
-                if isinstance(plotStyle, TemporalProfilePlotStyle):
+                if isinstance(plotStyle, TemporalProfile2DPlotStyle):
                     for pi in plotStyle.mPlotItems:
                         self.mPlotWidget.getPlotItem().removeItem(pi)
             self.sigPlotStylesRemoved.emit(plotStyles)
@@ -1263,7 +1734,7 @@ class PlotSettingsModel(QAbstractTableModel):
 
     def plotStyle2idx(self, plotStyle):
 
-        assert isinstance(plotStyle, TemporalProfilePlotStyle)
+        assert isinstance(plotStyle, TemporalProfile2DPlotStyle)
 
         if plotStyle in self.mPlotSettings:
             i = self.mPlotSettings.index(plotStyle)
@@ -1288,7 +1759,7 @@ class PlotSettingsModel(QAbstractTableModel):
         value = None
         columnName = self.columNames[index.column()]
         plotStyle = self.idx2plotStyle(index)
-        if isinstance(plotStyle, TemporalProfilePlotStyle):
+        if isinstance(plotStyle, TemporalProfile2DPlotStyle):
             sensor = plotStyle.sensor()
             #print(('data', columnName, role))
             if role == Qt.DisplayRole:
@@ -1338,7 +1809,7 @@ class PlotSettingsModel(QAbstractTableModel):
 
         result = False
         plotStyle = self.idx2plotStyle(index)
-        if isinstance(plotStyle, TemporalProfilePlotStyle):
+        if isinstance(plotStyle, TemporalProfile2DPlotStyle):
             if role in [Qt.DisplayRole]:
                 if columnName == self.cnExpression:
                     plotStyle.setExpression(value)
@@ -1377,7 +1848,7 @@ class PlotSettingsModel(QAbstractTableModel):
     def savePlotSettings(self, sensorPlotSettings, index='DEFAULT'):
         return
         #todo
-        assert isinstance(sensorPlotSettings, TemporalProfilePlotStyle)
+        assert isinstance(sensorPlotSettings, TemporalProfile2DPlotStyle)
         #todo: avoid dumps
         id = 'SPS.{}.{}'.format(index, sensorPlotSettings.sensor().id())
         d = pickle.dumps(sensorPlotSettings)
@@ -1398,7 +1869,7 @@ class PlotSettingsModel(QAbstractTableModel):
                 sensorPlotSettings = None
                 pass
 
-        if isinstance(sensorPlotSettings, TemporalProfilePlotStyle):
+        if isinstance(sensorPlotSettings, TemporalProfile2DPlotStyle):
             return sensorPlotSettings
         else:
             return None
@@ -1440,17 +1911,20 @@ class ProfileViewDockUI(QgsDockWidget, loadUI('profileviewdock.ui')):
         self.stackedWidget.setCurrentWidget(self.page2D)
         self.plotWidget3D = None
         if OPENGL_AVAILABLE:
-            l = self.layout3DPlotWidget
+            l = self.frame3DPlot.layout()
 
-            from pyqtgraph.opengl import GLViewWidget
-            self.plotWidget3D = GLViewWidget(parent=self.page3D)
+            #from pyqtgraph.opengl import GLViewWidget
+            #self.plotWidget3D = GLViewWidget(parent=self.page3D)
+            self.plotWidget3D = ViewWidget3D(parent=self.frame3DPlot)
             self.plotWidget3D.setObjectName('plotWidget3D')
+
             size = self.labelDummy3D.size()
             l.addWidget(self.plotWidget3D)
+            self.plotWidget3D.setSizePolicy(self.labelDummy3D.sizePolicy())
             self.labelDummy3D.setVisible(False)
             l.removeWidget(self.labelDummy3D)
-            #self.plotWidget3D.setSize(size)
-
+            self.plotWidget3D.setBaseSize(size)
+            self.splitter3D.setSizes([100, 100])
 
         #pi = self.plotWidget2D.plotItem
         #ax = DateAxis(orientation='bottom', showValues=True)
@@ -1472,6 +1946,43 @@ class ProfileViewDockUI(QgsDockWidget, loadUI('profileviewdock.ui')):
         self.tableViewTemporalProfiles.setSortingEnabled(True)
 
 
+
+def qgsFieldFromKeyValue(fieldName, value):
+    t = type(value)
+    if t in [int, float] or np.isreal(value):
+
+        fLen  = 0
+        fPrec = 0
+        fComm = ''
+        fType = ''
+        f = QgsField(fieldName, QVariant.Double, 'double', 40, 5)
+    else:
+        f = QgsField(fieldName, QVariant.String, 'text', 40, 5)
+    return f
+
+def sensorExampleQgsFeature(sensor):
+    assert isinstance(sensor, SensorInstrument)
+    #populate with exemplary band values (generally stored as floats)
+    fieldValues = collections.OrderedDict()
+    for b in range(sensor.nb):
+        fn = bandIndex2bandKey(b)
+        fieldValues[fn] = 1.0
+
+    date = datetime.date.today()
+    doy = dateDOY(date)
+    fieldValues['doy'] = doy
+    fieldValues['date'] = str(date)
+
+
+    fields = QgsFields()
+    for k, v in fieldValues.items():
+        fields.append(qgsFieldFromKeyValue(k,v))
+    f = QgsFeature(fields)
+    for k, v in fieldValues.items():
+        f.setAttribute(k, v)
+    return f
+
+
 def dateDOY(date):
     if isinstance(date, np.datetime64):
         date = date.astype(datetime.date)
@@ -1594,7 +2105,7 @@ class TemporalProfile(QObject):
         for sensor in self.mTimeSeries.sensors():
             assert isinstance(sensor, SensorInstrument)
 
-            plotStyle = TemporalProfilePlotStyle(self)
+            plotStyle = TemporalProfile2DPlotStyle(self)
             plotStyle.setSensor(sensor)
 
             pi = TemporalProfilePlotDataItem(plotStyle)
@@ -1621,18 +2132,6 @@ class TemporalProfile(QObject):
     def updated(self):
         return self.mUpdated
 
-    def qgsFieldFromKeyValue(self, key, value):
-        t = type(value)
-        if t in [int, float] or np.isreal(value):
-
-            fLen  = 0
-            fPrec = 0
-            fComm = ''
-            fType = ''
-            f = QgsField(key, QVariant.Double, 'double', 40, 5)
-        else:
-            f = QgsField(key, QVariant.String, 'text', 40, 5)
-        return f
 
     def dataFromExpression(self, sensor, expression, dateType='date'):
         assert dateType in ['date','doy']
@@ -1654,7 +2153,7 @@ class TemporalProfile(QObject):
             data = self.mData[tsd]
             for k, v in data.items():
                 if v is not None and fields.fieldNameIndex(k) == -1:
-                    fields.append(self.qgsFieldFromKeyValue(k, v))
+                    fields.append(qgsFieldFromKeyValue(k, v))
 
         for i, tsd in enumerate(sensorTSDs):
             assert isinstance(tsd, TimeSeriesDatum)
@@ -1764,9 +2263,20 @@ class SpectralTemporalVisualization(QObject):
 
         self.plot_initialized = False
         self.tableView2DProfiles = ui.tableView2DProfiles
+
         self.tableView2DProfiles.setSortingEnabled(False)
 
+        self.tableView2DProfiles.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents)
 
+        self.plotSettingsModel3D = PlotSettingsModel3D()
+        #self.plotSettingsModel3D.sigPlotStylesRemoved.connect(self.updatePlot3D)
+        #self.plotSettingsModel3D.sigPlotStylesAdded.connect(self.updatePlot3D)
+        #self.plotSettingsModel3D.sigPlotStylesAdded.connect(self.updatePlot3D)
+        self.plotSettingsModel3D.rowsInserted.connect(self.onRowsInserted3D)
+        self.ui.tableView3DProfiles.setModel(self.plotSettingsModel3D)
+        self.ui.tableView3DProfiles.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents)
+        self.delegateTableView3D = PlotSettingsModel3DWidgetDelegate(self.ui.tableView3DProfiles)
+        self.delegateTableView3D.setItemDelegates(self.ui.tableView3DProfiles)
         # self.mSelectionModel.currentChanged.connect(self.onCurrentSelectionChanged)
 
         self.plot2D = ui.plotWidget2D
@@ -1785,14 +2295,14 @@ class SpectralTemporalVisualization(QObject):
 
         self.proxy2D = pg.SignalProxy(self.plot2D.scene().sigMouseMoved, rateLimit=60, slot=self.onMouseMoved2D)
         self.plot3D = ui.plotWidget3D
-        self.plot3D.setCameraPosition(distance=50)
+        self.reset3DCamera()
 
         ## Add a grid to the view
         if OPENGL_AVAILABLE:
             import pyqtgraph.opengl as gl
             self.glGridItem = gl.GLGridItem()
             self.glGridItem.setDepthValue(10)  # draw grid after surfaces since they may be translucent
-            self.glPlotDataItems = []
+            self.glPlotDataItems = [self.glGridItem]
             self.plot3D.addItem(self.glGridItem)
 
         self.tpCollection = TemporalProfileCollection()
@@ -1800,12 +2310,12 @@ class SpectralTemporalVisualization(QObject):
 
         self.ui.tableViewTemporalProfiles.setModel(self.tpCollection)
         self.ui.tableViewTemporalProfiles.selectionModel().selectionChanged.connect(self.onTemporalProfileSelectionChanged)
-
+        self.ui.tableViewTemporalProfiles.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents)
         self.ui.cbTemporalProfile3D.setModel(self.tpCollectionListModel)
         #self.pxCollection.sigPixelAdded.connect(self.requestUpdate)
         #self.pxCollection.sigPixelRemoved.connect(self.clear)
 
-        self.plotSettingsModel = None
+        self.plotSettingsModel2D = None
         self.pixelLoader.sigLoadingStarted.connect(self.clear)
         self.pixelLoader.sigLoadingFinished.connect(lambda : self.plot2D.enableAutoRange('x', False))
 
@@ -1882,7 +2392,7 @@ class SpectralTemporalVisualization(QObject):
 
     def removePlotStyles(self, plotStyles):
         m = self.ui.tableView2DProfiles.model()
-        if isinstance(m, PlotSettingsModel):
+        if isinstance(m, PlotSettingsModel2D):
             m.removePlotStyles(plotStyles)
 
     def removeTemporalProfiles(self, temporalProfiles):
@@ -1894,12 +2404,12 @@ class SpectralTemporalVisualization(QObject):
         l = len(self.tpCollection)
         if l > 0:
             temporalProfile = self.tpCollection[0]
-            plotStyle = TemporalProfilePlotStyle(temporalProfile)
+            plotStyle = TemporalProfile2DPlotStyle(temporalProfile)
             plotStyle.sigExpressionUpdated.connect(self.updatePlot2D)
             sensors = self.TS.Sensors.keys()
             if len(sensors) > 0:
                 plotStyle.setSensor(sensors[0])
-            self.plotSettingsModel.insertPlotStyles([plotStyle])
+            self.plotSettingsModel2D.insertPlotStyles([plotStyle])
             pdi = plotStyle.createPlotItem(self.plot2D)
 
             assert isinstance(pdi, TemporalProfilePlotDataItem)
@@ -1957,18 +2467,24 @@ class SpectralTemporalVisualization(QObject):
         self.ui.btnRefresh2D.setDefaultAction(self.ui.actionRefresh2D)
         self.ui.btnRefresh3D.setDefaultAction(self.ui.actionRefresh3D)
         self.ui.btnRemoveTemporalProfile.setDefaultAction(self.ui.actionRemoveTemporalProfile)
+        self.ui.btnReset3DCamera.setDefaultAction(self.ui.actionReset3DCamera)
+
         self.ui.actionRefresh2D.triggered.connect(self.updatePlot2D)
         self.ui.actionRefresh3D.triggered.connect(self.updatePlot3D)
 
         self.ui.actionAddView.triggered.connect(self.createNewPlotStyle)
         self.ui.actionRemoveView.triggered.connect(lambda:self.removePlotStyles(self.selected2DPlotStyles()))
         self.ui.actionRemoveTemporalProfile.triggered.connect(lambda :self.removeTemporalProfiles(self.selectedTemporalProfiles()))
-
+        self.ui.actionReset3DCamera.triggered.connect(self.reset3DCamera)
         self.tpCollection.sigMaxProfilesChanged.connect(self.ui.sbMaxTP.setValue)
         self.ui.sbMaxTP.valueChanged.connect(self.tpCollection.setMaxProfiles)
 
         #todo: self.ui.actionRemoveView.triggered.connect(self.plotSettingsModel.createPlotStyle)
 
+    def reset3DCamera(self, *args):
+
+        if OPENGL_AVAILABLE:
+            self.plot3D.setCameraPosition((0,0,0), distance=10, elevation=10)
 
     def setTimeSeries(self, TS):
 
@@ -1979,19 +2495,21 @@ class SpectralTemporalVisualization(QObject):
 
 
 
-        self.plotSettingsModel = PlotSettingsModel(self.tpCollection, self.plot2D, parent=self)
-        self.plotSettingsModel.sigVisibilityChanged.connect(self.setVisibility)
-        self.plotSettingsModel.sigDataChanged.connect(self.requestUpdate)
-        self.plotSettingsModel.rowsInserted.connect(self.onRowsInserted)
+        self.plotSettingsModel2D = PlotSettingsModel2D(self.tpCollection, self.plot2D, parent=self)
+        self.plotSettingsModel2D.sigVisibilityChanged.connect(self.setVisibility)
+        self.plotSettingsModel2D.sigDataChanged.connect(self.requestUpdate)
+        self.plotSettingsModel2D.rowsInserted.connect(self.onRowsInserted2D)
 
+        self.plotSettingsModel3D.connectTimeSeries(self.TS)
         # self.plotSettingsModel.modelReset.connect(self.updatePersistantWidgets)
-        self.tableView2DProfiles.setModel(self.plotSettingsModel)
+        self.tableView2DProfiles.setModel(self.plotSettingsModel2D)
         #self.tableView2DProfilesSelectionModel = QItemSelectionModel(self.mModel)
         self.tableView2DProfiles.selectionModel().selectionChanged.connect(self.onPlot2DSelectionChanged)
         #self.tableView2DProfilesSelectionModel.selectionChanged.connect(self.onPlot2DSelectionChanged)
         #self.tableView2DProfilesSelectionModel.setSelectionModel(self.mSelectionModel)
-        self.delegate = PlotSettingsWidgetDelegate(self.tableView2DProfiles, self.TS, self.tpCollectionListModel)
-        self.delegate.setItemDelegates(self.tableView2DProfiles)
+        self.delegateTableView2D = PlotSettingsModel2DWidgetDelegate(self.tableView2DProfiles, self.TS, self.tpCollectionListModel)
+        self.delegateTableView2D.setItemDelegates(self.tableView2DProfiles)
+
 
 
     sigMoveToTSD = pyqtSignal(TimeSeriesDatum)
@@ -2025,26 +2543,9 @@ class SpectralTemporalVisualization(QObject):
         self.updateRequested = True
         #next time
 
-    def updatePersistentWidgets(self):
+    def onRowsInserted2D(self, parent, start, end):
         model = self.tableView2DProfiles.model()
-        if isinstance(model, PlotSettingsModel):
-            colExpression = model.columnIndex(model.cnExpression)
-            colStyle = model.columnIndex(model.cnStyle)
-
-            for row in range(model.rowCount()):
-                idxExpr = model.createIndex(row, colExpression)
-                idxStyle = model.createIndex(row, colStyle)
-
-                #self.TV.openPersistentEditor(idxExpr)
-                #self.TV.openPersistentEditor(idxStyle)
-
-                #self.TV.openPersistentEditor(model.createIndex(start, colStyle))
-            s = ""
-
-
-    def onRowsInserted(self, parent, start, end):
-        model = self.tableView2DProfiles.model()
-        if isinstance(model, PlotSettingsModel):
+        if isinstance(model, PlotSettingsModel2D):
             colExpression = model.columnIndex(model.cnExpression)
             colStyle = model.columnIndex(model.cnStyle)
             while start <= end:
@@ -2056,6 +2557,15 @@ class SpectralTemporalVisualization(QObject):
                 #self.TV.openPersistentEditor(model.createIndex(start, colStyle))
             s = ""
 
+    def onRowsInserted3D(self, parent, start, end):
+        model = self.ui.tableView3DProfiles.model()
+        if isinstance(model, PlotSettingsModel3D):
+            colStyle = model.columnIndex(model.cnStyle)
+            while start <= end:
+                idxStyle = model.createIndex(start, colStyle)
+                self.ui.tableView3DProfiles.openPersistentEditor(idxStyle)
+                start += 1
+
     def onObservationClicked(self, plotDataItem, points):
         for p in points:
             tsd = p.data()
@@ -2091,7 +2601,7 @@ class SpectralTemporalVisualization(QObject):
         Loads a temporal profile for a single or multiple geometries.
         :param spatialPoints: SpatialPoint | [list-of-SpatialPoints]
         """
-        if not isinstance(self.plotSettingsModel, PlotSettingsModel):
+        if not isinstance(self.plotSettingsModel2D, PlotSettingsModel2D):
             return False
 
         if not self.pixelLoader.isReadyToLoad():
@@ -2110,7 +2620,7 @@ class SpectralTemporalVisualization(QObject):
         if LUT_bandIndices is None:
             LUT_bandIndices = dict()
             for sensor in self.TS.Sensors:
-                LUT_bandIndices[sensor] = self.plotSettingsModel.requiredBandsIndices(sensor)
+                LUT_bandIndices[sensor] = self.plotSettingsModel2D.requiredBandsIndices(sensor)
 
         assert isinstance(LUT_bandIndices, dict)
         for sensor in self.TS.Sensors:
@@ -2150,7 +2660,7 @@ class SpectralTemporalVisualization(QObject):
 
             for TP in TPs:
                 assert isinstance(TP, TemporalProfile)
-                existingBandKeys = [k for k in TP.data(tsd).keys() if PlotSettingsModel.regBandKeyExact.search(k)]
+                existingBandKeys = [k for k in TP.data(tsd).keys() if PlotSettingsModel2D.regBandKeyExact.search(k)]
                 existingBandIndices = set([bandKey2bandIndex(k) for k in existingBandKeys])
                 need2load = requiredIndices.difference(existingBandIndices)
                 missingIndices = missingIndices.union(need2load)
@@ -2178,7 +2688,7 @@ class SpectralTemporalVisualization(QObject):
                 print('Data for geometries already loaded')
 
     def setVisibility(self, sensorPlotStyle):
-        assert isinstance(sensorPlotStyle, TemporalProfilePlotStyle)
+        assert isinstance(sensorPlotStyle, TemporalProfile2DPlotStyle)
         self.setVisibility2D(sensorPlotStyle)
 
     def setVisibility2D(self, sensorPlotStyle):
@@ -2189,18 +2699,18 @@ class SpectralTemporalVisualization(QObject):
     def addData(self, sensorView = None):
 
         if sensorView is None:
-            for sv in self.plotSettingsModel.items:
+            for sv in self.plotSettingsModel2D.items:
                 self.setData(sv)
         else:
-            assert isinstance(sensorView, TemporalProfilePlotStyle)
+            assert isinstance(sensorView, TemporalProfile2DPlotStyle)
             self.setData2D(sensorView)
 
     @QtCore.pyqtSlot()
     def onDataUpdate(self):
 
 
-        for plotSetting in self.plotSettingsModel:
-            assert isinstance(plotSetting, TemporalProfilePlotStyle)
+        for plotSetting in self.plotSettingsModel2D:
+            assert isinstance(plotSetting, TemporalProfile2DPlotStyle)
             if plotSetting.temporalProfile().updated():
                 for pdi in plotSetting.mPlotItems:
                     assert isinstance(pdi, TemporalProfilePlotDataItem)
@@ -2213,10 +2723,12 @@ class SpectralTemporalVisualization(QObject):
 
         if not self.plot2D.xAxisInitialized:
             x0 = x1 = None
-            for plotSetting in self.plotSettingsModel:
-                assert isinstance(plotSetting, TemporalProfilePlotStyle)
+            for plotSetting in self.plotSettingsModel2D:
+                assert isinstance(plotSetting, TemporalProfile2DPlotStyle)
                 for pdi in plotSetting.mPlotItems:
                     assert isinstance(pdi, TemporalProfilePlotDataItem)
+                    if pdi.xData.ndim == 0 or pdi.xData.shape[0] == 0:
+                        continue
                     if x0 is None:
                         x0 = pdi.xData.min()
                         x1 = pdi.xData.max()
@@ -2258,21 +2770,17 @@ class SpectralTemporalVisualization(QObject):
                 self.loadCoordinate(tp.mCoordinate, LUT_bandIndices=LUT_bandIndices)
 
                 #2. visualize already loaded data
-                profileData = {}
-
-                #x =
-                #y =
-
-
-
-                for sensor in tp.mTimeSeries.sensors():
-                    profileData[sensor] = {'x':[],'y':[],'z':[]}
-
+                LUTStyle = {}
+                for style in self.plotSettingsModel3D:
+                    assert isinstance(style, TemporalProfile3DPlotStyle)
+                    LUTStyle[style.sensor()] = style
 
                 dataPos = []
                 x0 = x1 = y0 = y1 = z0 = z1 = 0
                 for iDate, tsd in enumerate(tp.mTimeSeries):
                     data = tp.data(tsd)
+
+
                     bandKeys = sorted([k for k in data.keys() if k.startswith('b') and data[k] != None], key=lambda k: bandKey2bandIndex(k))
                     if len(bandKeys) < 2:
                         continue
@@ -2298,14 +2806,20 @@ class SpectralTemporalVisualization(QObject):
                         x0, x1 = (min(x.min(), x0), max(x.max(), x1))
                         y0, y1 = (min(y.min(), y0), max(y.max(), y1))
                         z0, z1 = (min(z.min(), z0), max(z.max(), z1))
-                    dataPos.append((x,y,z))
+                    if tsd.sensor in LUTStyle.keys():
+                        style = LUTStyle[tsd.sensor]
+                    else:
+                        style = TemporalProfile3DPlotStyle(tsd.sensor)
+                    dataPos.append((x,y,z, style))
 
                 xyz = [(x0,x1),(y0,y1),(z0,z1)]
                 l = len(dataPos)
                 for iPos, pos in enumerate(dataPos):
-                    x,y,z = pos
-
-                    arr = np.asarray(pos, dtype=np.float64).transpose()
+                    x,y,z, style = pos
+                    assert isinstance(style, TemporalProfile3DPlotStyle)
+                    if not style.isVisible():
+                        continue
+                    arr = np.asarray((x,y,z), dtype=np.float64).transpose()
                     for i, m in enumerate(xyz):
                         m0,m1 = m
                         arr[:, i] = (arr[:,i] - m0)/(m1-m0)
@@ -2313,7 +2827,8 @@ class SpectralTemporalVisualization(QObject):
                     plt = gl.GLLinePlotItem(pos=arr,
                                             #color=pg.glColor((i, n * 1.3)),
                                             #color=pg.glColor(255,123,123,125),
-                                            color=pg.glColor((iPos, l * 1.3)),
+                                            #color=pg.glColor((iPos, l * 1.3)),
+                                            color=pg.glColor(style.color()),
                                             width=1.0,
                                             antialias=True)
 
@@ -2323,10 +2838,10 @@ class SpectralTemporalVisualization(QObject):
 
                 for i, item in enumerate(self.glPlotDataItems):
                    w.addItem(item)
-                self.glGridItem.scale(0.1,0.1,0.1, local=False)
+                #self.glGridItem.scale(0.1,0.1,0.1, local=False)
 
                 #w.setBackgroundColor(QColor('black'))
-                w.setCameraPosition(pos=(0.0, 0.0, 0.0), distance=1.)
+                #w.setCameraPosition(pos=(0.0, 0.0, 0.0), distance=1.)
                 w.addItem(self.glGridItem)
                 w.update()
                 """
@@ -2343,7 +2858,7 @@ class SpectralTemporalVisualization(QObject):
 
     @QtCore.pyqtSlot()
     def updatePlot2D(self):
-        if isinstance(self.plotSettingsModel, PlotSettingsModel):
+        if isinstance(self.plotSettingsModel2D, PlotSettingsModel2D):
             if DEBUG:
                 print('Update plot...')
 
@@ -2351,8 +2866,8 @@ class SpectralTemporalVisualization(QObject):
             piDataItems = pi.listDataItems()
 
             locations = set()
-            for plotSetting in self.plotSettingsModel:
-                assert isinstance(plotSetting, TemporalProfilePlotStyle)
+            for plotSetting in self.plotSettingsModel2D:
+                assert isinstance(plotSetting, TemporalProfile2DPlotStyle)
                 locations.add(plotSetting.temporalProfile().mCoordinate)
 
                 for pdi in plotSetting.mPlotItems:
@@ -2461,7 +2976,7 @@ if __name__ == '__main__':
     import site, sys
     from timeseriesviewer import utils
     qgsApp = utils.initQgisApplication()
-    DEBUG = True
+    DEBUG = False
 
     if False: #the ultimative test for floating point division correctness, at least on a DOY-level
         date1 = np.datetime64('1960-12-31','D')
diff --git a/timeseriesviewer/ui/profileviewdock.ui b/timeseriesviewer/ui/profileviewdock.ui
index 2011c259..ee4313a7 100644
--- a/timeseriesviewer/ui/profileviewdock.ui
+++ b/timeseriesviewer/ui/profileviewdock.ui
@@ -85,11 +85,19 @@
           <property name="text">
            <string>2D</string>
           </property>
+          <property name="icon">
+           <iconset resource="resources.qrc">
+            <normaloff>:/timeseriesviewer/icons/mIconTemporalProfile2D.svg</normaloff>:/timeseriesviewer/icons/mIconTemporalProfile2D.svg</iconset>
+          </property>
          </item>
          <item>
           <property name="text">
            <string>3D</string>
           </property>
+          <property name="icon">
+           <iconset resource="resources.qrc">
+            <normaloff>:/timeseriesviewer/icons/mIconTemporalProfile3D.svg</normaloff>:/timeseriesviewer/icons/mIconTemporalProfile3D.svg</iconset>
+          </property>
          </item>
          <item>
           <property name="text">
@@ -373,7 +381,16 @@
              <property name="orientation">
               <enum>Qt::Horizontal</enum>
              </property>
+             <property name="opaqueResize">
+              <bool>true</bool>
+             </property>
              <widget class="QFrame" name="frameSettings3D">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                <horstretch>1</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
               <property name="frameShape">
                <enum>QFrame::StyledPanel</enum>
               </property>
@@ -423,10 +440,21 @@
                    </property>
                   </widget>
                  </item>
+                 <item>
+                  <widget class="QToolButton" name="btnReset3DCamera">
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="resources.qrc">
+                     <normaloff>:/timeseriesviewer/icons/mActionZoomFullExtent.svg</normaloff>:/timeseriesviewer/icons/mActionZoomFullExtent.svg</iconset>
+                   </property>
+                  </widget>
+                 </item>
                  <item>
                   <widget class="QLabel" name="label">
                    <property name="text">
-                    <string>Pixel</string>
+                    <string>Coordinate</string>
                    </property>
                   </widget>
                  </item>
@@ -460,6 +488,12 @@
                </item>
                <item>
                 <widget class="QTableView" name="tableView3DProfiles">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
                  <property name="frameShape">
                   <enum>QFrame::NoFrame</enum>
                  </property>
@@ -467,15 +501,24 @@
                </item>
               </layout>
              </widget>
-             <widget class="QWidget" name="verticalLayoutWidget">
+             <widget class="QFrame" name="frame3DPlot">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+                <horstretch>3</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
               <layout class="QVBoxLayout" name="layout3DPlotWidget">
                <property name="spacing">
                 <number>1</number>
                </property>
+               <property name="margin">
+                <number>0</number>
+               </property>
                <item>
                 <widget class="QLabel" name="labelDummy3D">
                  <property name="sizePolicy">
-                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                  <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
                    <horstretch>3</horstretch>
                    <verstretch>2</verstretch>
                   </sizepolicy>
@@ -792,6 +835,15 @@ Please ensure that PyOpenGL is installed
     <string>Removes the selected profiles</string>
    </property>
   </action>
+  <action name="actionReset3DCamera">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/timeseriesviewer/icons/mActionZoomFullExtent.svg</normaloff>:/timeseriesviewer/icons/mActionZoomFullExtent.svg</iconset>
+   </property>
+   <property name="text">
+    <string>Reset View</string>
+   </property>
+  </action>
  </widget>
  <customwidgets>
   <customwidget>
diff --git a/timeseriesviewer/ui/resources.py b/timeseriesviewer/ui/resources.py
index 9e622dfe..99b776c9 100644
--- a/timeseriesviewer/ui/resources.py
+++ b/timeseriesviewer/ui/resources.py
@@ -5902,7 +5902,7 @@ qt_resource_data = "\
 \x5c\x5e\x71\xc7\x22\xa4\x50\x0f\x73\x13\x6d\xa4\x9a\x1a\x4f\x0c\
 \xf3\x79\x83\x7c\x69\xca\x4d\xa8\x4b\xb9\xc7\x09\xff\xff\x0b\x31\
 \xf5\xb2\x78\
-\x00\x00\x23\x93\
+\x00\x00\x21\x5d\
 \x3c\
 \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
 \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
@@ -5968,512 +5968,476 @@ qt_resource_data = "\
 \x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\
 \x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\
 \x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\
-\x22\x20\x2f\x3e\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x3c\x2f\
-\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x3c\x2f\x63\x63\x3a\x57\x6f\
-\x72\x6b\x3e\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x3c\x2f\x6d\
-\x65\x74\x61\x64\x61\x74\x61\x3e\x3c\x64\x65\x66\x73\x0d\x0a\x20\
-\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x36\x33\x22\x3e\
-\x3c\x6d\x61\x72\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
-\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\
-\x3d\x22\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4d\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\x22\
-\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\
-\x66\x59\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\
-\x65\x66\x58\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
-\x69\x64\x3d\x22\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4d\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\
-\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\
-\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
-\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\x3d\x22\x74\x72\x75\
-\x65\x22\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x34\x31\x31\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\
-\x35\x2e\x37\x37\x2c\x30\x20\x2d\x32\x2e\x38\x38\x2c\x35\x20\x56\
-\x20\x2d\x35\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x34\x61\
-\x34\x31\x33\x35\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\
-\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\
-\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x34\x61\
-\x34\x31\x33\x35\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
-\x68\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x33\x70\x74\x3b\x73\
-\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\
-\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x30\x2e\x34\x29\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
-\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\
-\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x3c\
-\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x3c\x6d\x61\x72\x6b\x65\x72\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
-\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x32\
-\x53\x65\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\
-\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\x20\
-\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x22\x0d\x0a\x20\x20\
-\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\x22\x0d\x0a\x20\
-\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x32\
-\x53\x65\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\
-\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\
-\x73\x69\x62\x6c\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
-\x6e\x6b\x73\x63\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\x3d\
-\x22\x74\x72\x75\x65\x22\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\
-\x32\x39\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\
-\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\
-\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\
-\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\
-\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\
-\x30\x2e\x36\x32\x35\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\
-\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\
-\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x38\x2e\x37\
-\x31\x38\x35\x38\x37\x38\x2c\x34\x2e\x30\x33\x33\x37\x33\x35\x32\
-\x20\x2d\x32\x2e\x32\x30\x37\x32\x38\x39\x35\x2c\x30\x2e\x30\x31\
-\x36\x30\x31\x33\x32\x36\x20\x38\x2e\x37\x31\x38\x35\x38\x38\x34\
-\x2c\x2d\x34\x2e\x30\x30\x31\x37\x30\x37\x38\x20\x63\x20\x2d\x31\
-\x2e\x37\x34\x35\x34\x39\x38\x34\x2c\x32\x2e\x33\x37\x32\x30\x36\
-\x30\x39\x20\x2d\x31\x2e\x37\x33\x35\x34\x34\x30\x38\x2c\x35\x2e\
-\x36\x31\x37\x34\x35\x31\x39\x20\x2d\x36\x65\x2d\x37\x2c\x38\x2e\
-\x30\x33\x35\x34\x34\x33\x20\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\
-\x61\x74\x72\x69\x78\x28\x2d\x30\x2e\x33\x2c\x30\x2c\x30\x2c\x2d\
-\x30\x2e\x33\x2c\x30\x2e\x36\x39\x2c\x30\x29\x22\x0d\x0a\x20\x20\
+\x22\x20\x2f\x3e\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x20\x2f\x3e\
+\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x3c\x2f\x72\x64\x66\x3a\
+\x52\x44\x46\x3e\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x3c\
+\x64\x65\x66\x73\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\
+\x65\x66\x73\x36\x33\x22\x3e\x3c\x6d\x61\x72\x6b\x65\x72\x0d\x0a\
 \x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
-\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\
-\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x3c\x2f\x6d\x61\x72\x6b\
-\x65\x72\x3e\x3c\x6d\x61\x72\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\
-\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\
-\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x53\x65\x6e\x64\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\
-\x22\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\
-\x65\x66\x59\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
-\x72\x65\x66\x58\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
-\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x53\x65\x6e\x64\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\
-\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\x3d\x22\x74\x72\x75\x65\
-\x22\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x32\x38\x31\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x30\
-\x2c\x30\x20\x35\x2c\x2d\x35\x20\x2d\x31\x32\x2e\x35\x2c\x30\x20\
-\x35\x2c\x35\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\
-\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\
-\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\
-\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\
-\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
-\x68\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x33\x70\x74\x3b\x73\
-\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\
+\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x54\x72\x69\x61\x6e\x67\x6c\
+\x65\x4f\x75\x74\x4d\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\
+\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x54\x72\x69\x61\x6e\
+\x67\x6c\x65\x4f\x75\x74\x4d\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\
+\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\
+\x63\x6b\x3d\x22\x74\x72\x75\x65\x22\x3e\x3c\x70\x61\x74\x68\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\
+\x74\x68\x34\x34\x31\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x20\x20\x64\x3d\x22\x4d\x20\x35\x2e\x37\x37\x2c\x30\x20\x2d\x32\
+\x2e\x38\x38\x2c\x35\x20\x56\x20\x2d\x35\x20\x5a\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\
+\x69\x6c\x6c\x3a\x23\x34\x61\x34\x31\x33\x35\x3b\x66\x69\x6c\x6c\
+\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\
+\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\
+\x6f\x6b\x65\x3a\x23\x34\x61\x34\x31\x33\x35\x3b\x73\x74\x72\x6f\
+\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x30\x30\x30\x30\
+\x30\x30\x33\x70\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\
+\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\
+\x6c\x65\x28\x30\x2e\x34\x29\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\
+\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\
+\x22\x30\x22\x20\x2f\x3e\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x3c\
+\x6d\x61\x72\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
+\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\
+\x22\x41\x72\x72\x6f\x77\x32\x53\x65\x6e\x64\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\
+\x6f\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\
+\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\
+\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\
+\x22\x41\x72\x72\x6f\x77\x32\x53\x65\x6e\x64\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\
+\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x69\
+\x73\x73\x74\x6f\x63\x6b\x3d\x22\x74\x72\x75\x65\x22\x3e\x3c\x70\
+\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\
+\x3d\x22\x70\x61\x74\x68\x34\x32\x39\x39\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\
+\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\
+\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\
+\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\
+\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\
+\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x36\x32\x35\x3b\x73\x74\x72\
+\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\
+\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\
+\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\
+\x3d\x22\x4d\x20\x38\x2e\x37\x31\x38\x35\x38\x37\x38\x2c\x34\x2e\
+\x30\x33\x33\x37\x33\x35\x32\x20\x2d\x32\x2e\x32\x30\x37\x32\x38\
+\x39\x35\x2c\x30\x2e\x30\x31\x36\x30\x31\x33\x32\x36\x20\x38\x2e\
+\x37\x31\x38\x35\x38\x38\x34\x2c\x2d\x34\x2e\x30\x30\x31\x37\x30\
+\x37\x38\x20\x63\x20\x2d\x31\x2e\x37\x34\x35\x34\x39\x38\x34\x2c\
+\x32\x2e\x33\x37\x32\x30\x36\x30\x39\x20\x2d\x31\x2e\x37\x33\x35\
+\x34\x34\x30\x38\x2c\x35\x2e\x36\x31\x37\x34\x35\x31\x39\x20\x2d\
+\x36\x65\x2d\x37\x2c\x38\x2e\x30\x33\x35\x34\x34\x33\x20\x7a\x22\
 \x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\
 \x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x2d\x30\x2e\
-\x32\x2c\x30\x2c\x30\x2c\x2d\x30\x2e\x32\x2c\x2d\x31\x2e\x32\x2c\
+\x33\x2c\x30\x2c\x30\x2c\x2d\x30\x2e\x33\x2c\x30\x2e\x36\x39\x2c\
 \x30\x29\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\
 \x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\
 \x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\
 \x3e\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x3c\x6d\x61\x72\x6b\x65\
 \x72\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x54\x72\x69\x61\
-\x6e\x67\x6c\x65\x4f\x75\x74\x4c\x22\x0d\x0a\x20\x20\x20\x20\x20\
-\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x54\x72\
-\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4c\x22\x0d\x0a\x20\x20\x20\
-\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\
-\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\x0d\x0a\x20\x20\
-\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x69\x73\
-\x73\x74\x6f\x63\x6b\x3d\x22\x74\x72\x75\x65\x22\x3e\x3c\x70\x61\
-\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\
-\x22\x70\x61\x74\x68\x34\x34\x30\x38\x22\x0d\x0a\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x35\x2e\x37\x37\x2c\x30\
-\x20\x2d\x32\x2e\x38\x38\x2c\x35\x20\x56\x20\x2d\x35\x20\x5a\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\
-\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\
-\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\
-\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\
-\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\
-\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x30\
-\x30\x30\x30\x30\x30\x33\x70\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\
-\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
-\x73\x63\x61\x6c\x65\x28\x30\x2e\x38\x29\x22\x0d\x0a\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\
-\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\
-\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x3c\x2f\x6d\x61\x72\x6b\x65\
-\x72\x3e\x3c\x6d\x61\x72\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\x20\
-\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\
-\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x4c\x65\x6e\x64\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\x22\
-\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\
-\x66\x59\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\
-\x65\x66\x58\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
-\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x4c\x65\x6e\x64\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\
-\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\
+\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\
+\x77\x31\x53\x65\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x6f\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\
+\x77\x31\x53\x65\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x73\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\
+\x76\x69\x73\x69\x62\x6c\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\
+\x6b\x3d\x22\x74\x72\x75\x65\x22\x3e\x3c\x70\x61\x74\x68\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\
+\x68\x34\x32\x38\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
+\x20\x64\x3d\x22\x4d\x20\x30\x2c\x30\x20\x35\x2c\x2d\x35\x20\x2d\
+\x31\x32\x2e\x35\x2c\x30\x20\x35\x2c\x35\x20\x5a\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\
+\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\
+\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\
+\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\
+\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\
+\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x30\x30\x30\x30\
+\x30\x30\x33\x70\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\
+\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\
+\x72\x69\x78\x28\x2d\x30\x2e\x32\x2c\x30\x2c\x30\x2c\x2d\x30\x2e\
+\x32\x2c\x2d\x31\x2e\x32\x2c\x30\x29\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\
+\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\
+\x65\x3d\x22\x30\x22\x20\x2f\x3e\x3c\x2f\x6d\x61\x72\x6b\x65\x72\
+\x3e\x3c\x6d\x61\x72\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\
+\x64\x3d\x22\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4c\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\
+\x22\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\
+\x65\x66\x59\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x72\x65\x66\x58\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x69\x64\x3d\x22\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\
+\x4c\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\
+\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\
+\x6c\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\x3d\x22\x74\x72\
+\x75\x65\x22\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x34\x30\x38\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\
+\x20\x35\x2e\x37\x37\x2c\x30\x20\x2d\x32\x2e\x38\x38\x2c\x35\x20\
+\x56\x20\x2d\x35\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\
+\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\
+\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\
+\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\
+\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\
+\x74\x68\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x33\x70\x74\x3b\
+\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\
+\x73\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x30\x2e\x38\
+\x29\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\
+\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\
+\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\
+\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x3c\x6d\x61\x72\x6b\x65\x72\
 \x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
-\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\x3d\x22\x74\x72\x75\x65\x22\
-\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x32\x36\x39\x22\x0d\x0a\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x30\x2c\
-\x30\x20\x35\x2c\x2d\x35\x20\x2d\x31\x32\x2e\x35\x2c\x30\x20\x35\
-\x2c\x35\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\
-\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\
-\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\
-\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\
-\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\
-\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x33\x70\x74\x3b\x73\x74\
-\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\
-\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x2d\x30\x2e\x38\
-\x2c\x30\x2c\x30\x2c\x2d\x30\x2e\x38\x2c\x2d\x31\x30\x2c\x30\x29\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
-\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\
-\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x3c\
-\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x3c\x69\x6e\x6b\x73\x63\x61\x70\
-\x65\x3a\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\x0d\x0a\x20\
-\x20\x20\x20\x20\x20\x20\x69\x73\x5f\x76\x69\x73\x69\x62\x6c\x65\
-\x3d\x22\x74\x72\x75\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
-\x69\x64\x3d\x22\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\x35\
-\x37\x35\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x65\x66\x66\
-\x65\x63\x74\x3d\x22\x73\x70\x69\x72\x6f\x22\x20\x2f\x3e\x3c\x2f\
-\x64\x65\x66\x73\x3e\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\
-\x61\x6d\x65\x64\x76\x69\x65\x77\x0d\x0a\x20\x20\x20\x20\x20\x70\
-\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\x66\x66\x66\
-\x66\x22\x0d\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\
-\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\x0d\x0a\
-\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\x69\
-\x74\x79\x3d\x22\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x6f\x62\x6a\
-\x65\x63\x74\x74\x6f\x6c\x65\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x67\x72\x69\x64\x74\x6f\x6c\x65\
-\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\x22\x0d\x0a\x20\x20\x20\x20\
-\x20\x67\x75\x69\x64\x65\x74\x6f\x6c\x65\x72\x61\x6e\x63\x65\x3d\
-\x22\x31\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
-\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\
-\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
-\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\
-\x32\x38\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
-\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\
-\x74\x3d\x22\x37\x35\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\
-\x3d\x22\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x36\x31\x22\x0d\x0a\
-\x20\x20\x20\x20\x20\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x66\
-\x61\x6c\x73\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
-\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x31\x2e\x38\x31\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
-\x63\x78\x3d\x22\x33\x31\x32\x2e\x37\x30\x37\x31\x38\x22\x0d\x0a\
-\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\
-\x3d\x22\x31\x35\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\
-\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\
-\x33\x32\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x30\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\
-\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\
-\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\
-\x3d\x22\x43\x61\x70\x61\x5f\x31\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\
-\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x31\x22\x0d\x0a\x20\
-\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\
-\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x32\x34\x37\x29\x22\
-\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\
-\x67\x33\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\
+\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\
+\x31\x4c\x65\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\
+\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\
+\x31\x4c\x65\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\
+\x69\x73\x69\x62\x6c\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\
+\x3d\x22\x74\x72\x75\x65\x22\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\
+\x34\x32\x36\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\
+\x64\x3d\x22\x4d\x20\x30\x2c\x30\x20\x35\x2c\x2d\x35\x20\x2d\x31\
+\x32\x2e\x35\x2c\x30\x20\x35\x2c\x35\x20\x5a\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\
+\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\
+\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\
+\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\
+\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\
+\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\
+\x30\x33\x70\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\
+\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\
+\x69\x78\x28\x2d\x30\x2e\x38\x2c\x30\x2c\x30\x2c\x2d\x30\x2e\x38\
+\x2c\x2d\x31\x30\x2c\x30\x29\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\
+\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\
+\x22\x30\x22\x20\x2f\x3e\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x3c\
+\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x74\x68\x2d\x65\x66\
+\x66\x65\x63\x74\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5f\
+\x76\x69\x73\x69\x62\x6c\x65\x3d\x22\x74\x72\x75\x65\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x2d\
+\x65\x66\x66\x65\x63\x74\x35\x37\x35\x36\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x3d\x22\x73\x70\x69\x72\
+\x6f\x22\x20\x2f\x3e\x3c\x2f\x64\x65\x66\x73\x3e\x3c\x73\x6f\x64\
+\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0d\
+\x0a\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\
+\x22\x23\x66\x66\x66\x66\x66\x66\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\
+\x36\x36\x36\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\
+\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x6f\x62\x6a\x65\x63\x74\x74\x6f\x6c\x65\x72\x61\
+\x6e\x63\x65\x3d\x22\x31\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x67\
+\x72\x69\x64\x74\x6f\x6c\x65\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x67\x75\x69\x64\x65\x74\x6f\x6c\
+\x65\x72\x61\x6e\x63\x65\x3d\x22\x31\x30\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\
+\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\
+\x61\x64\x6f\x77\x3d\x22\x32\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\
+\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\
+\x69\x64\x74\x68\x3d\x22\x31\x32\x38\x30\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\
+\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x37\x35\x36\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6e\x61\x6d\x65\x64\x76\x69\
+\x65\x77\x36\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x73\x68\x6f\x77\
+\x67\x72\x69\x64\x3d\x22\x66\x61\x6c\x73\x65\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\
+\x3d\x22\x31\x2e\x38\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x31\x33\x35\x2e\x39\
+\x31\x31\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
+\x61\x70\x65\x3a\x63\x79\x3d\x22\x31\x35\x30\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\
+\x6f\x77\x2d\x78\x3d\x22\x33\x32\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\
+\x79\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\
+\x6d\x69\x7a\x65\x64\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\
+\x2d\x6c\x61\x79\x65\x72\x3d\x22\x43\x61\x70\x61\x5f\x31\x22\x20\
+\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\
+\x31\x37\x35\x32\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\
+\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x33\x2e\
+\x33\x38\x30\x36\x39\x35\x35\x2c\x30\x2c\x30\x2c\x33\x2e\x33\x38\
+\x30\x36\x39\x35\x35\x2c\x32\x32\x38\x2e\x38\x30\x33\x34\x31\x2c\
+\x2d\x32\x31\x36\x2e\x35\x37\x39\x31\x37\x29\x22\x3e\x3c\x63\x69\
+\x72\x63\x6c\x65\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\
+\x22\x63\x69\x72\x63\x6c\x65\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x72\x3d\x22\x31\x36\x2e\x34\x32\x32\x36\x35\x37\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x31\x33\x35\x2e\
+\x30\x36\x36\x32\x32\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x63\
+\x78\x3d\x22\x2d\x35\x30\x2e\x33\x39\x30\x31\x36\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\
+\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\
+\x3a\x23\x36\x64\x39\x37\x63\x34\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\
+\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\
+\x34\x34\x35\x65\x37\x35\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\
+\x64\x74\x68\x3a\x30\x2e\x35\x37\x32\x36\x35\x36\x39\x39\x3b\x73\
+\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\
+\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\
+\x74\x79\x3a\x31\x22\x20\x2f\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x35\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x2d\x36\
+\x33\x2e\x36\x39\x31\x32\x36\x33\x2c\x31\x33\x38\x2e\x30\x34\x32\
+\x38\x39\x20\x63\x20\x30\x2e\x34\x31\x39\x31\x38\x35\x2c\x2d\x34\
+\x2e\x38\x32\x31\x32\x20\x31\x2e\x33\x36\x30\x36\x33\x33\x2c\x2d\
+\x37\x2e\x37\x31\x33\x36\x39\x20\x34\x2e\x33\x35\x34\x34\x38\x33\
+\x2c\x2d\x31\x30\x2e\x37\x30\x37\x35\x34\x20\x33\x2e\x32\x33\x33\
+\x32\x32\x31\x2c\x2d\x33\x2e\x32\x33\x33\x32\x32\x20\x36\x2e\x32\
+\x32\x37\x36\x34\x35\x2c\x2d\x34\x2e\x37\x33\x33\x35\x38\x20\x31\
+\x31\x2e\x38\x38\x35\x34\x39\x36\x2c\x2d\x36\x2e\x30\x32\x30\x39\
+\x32\x20\x32\x2e\x37\x37\x39\x36\x37\x37\x2c\x2d\x30\x2e\x36\x33\
+\x32\x32\x31\x20\x2d\x32\x2e\x30\x33\x35\x32\x32\x33\x2c\x2d\x32\
+\x2e\x37\x32\x38\x31\x33\x20\x2d\x38\x2e\x36\x39\x38\x30\x38\x37\
+\x2c\x2d\x30\x2e\x32\x33\x35\x33\x36\x20\x2d\x33\x2e\x35\x37\x39\
+\x31\x30\x37\x2c\x31\x2e\x33\x33\x38\x38\x37\x20\x2d\x37\x2e\x32\
+\x31\x32\x30\x34\x32\x2c\x34\x2e\x38\x33\x33\x32\x33\x20\x2d\x38\
+\x2e\x34\x38\x36\x37\x37\x37\x2c\x39\x2e\x39\x32\x35\x32\x39\x20\
+\x2d\x31\x2e\x35\x34\x34\x34\x35\x35\x2c\x36\x2e\x31\x36\x35\x32\
+\x33\x20\x30\x2e\x37\x35\x33\x30\x34\x34\x2c\x39\x2e\x32\x34\x36\
+\x31\x32\x20\x30\x2e\x39\x34\x34\x38\x38\x35\x2c\x37\x2e\x30\x33\
+\x38\x35\x33\x20\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
+\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\
+\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\
+\x70\x61\x63\x69\x74\x79\x3a\x30\x2e\x33\x3b\x66\x69\x6c\x6c\x3a\
+\x23\x66\x66\x66\x66\x66\x66\x22\x20\x2f\x3e\x3c\x70\x61\x74\x68\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\
+\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x66\x69\x6c\x6c\x2d\x72\
+\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\
+\x6b\x65\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x72\x6f\x6b\
+\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x37\x38\x35\x31\x38\x35\
+\x38\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
+\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
+\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\
+\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\
+\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\
+\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\
+\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x64\x3d\x22\x6d\x20\x2d\x34\x32\x2e\x38\x32\x31\x30\x38\
+\x35\x2c\x31\x33\x39\x2e\x31\x33\x30\x38\x20\x68\x20\x2d\x36\x2e\
+\x37\x34\x34\x33\x38\x37\x20\x6c\x20\x2d\x38\x2e\x33\x39\x33\x30\
+\x31\x38\x2c\x2d\x39\x2e\x32\x39\x32\x32\x36\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x38\x32\x33\
+\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
+\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\
+\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\
+\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x22\x20\x2f\x3e\x3c\
+\x2f\x67\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\
+\x67\x33\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\
 \x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\
 \x30\x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\
-\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x35\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x33\x22\x0d\x0a\x20\x20\x20\
 \x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\
 \x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x32\x34\x37\x29\x22\x20\x2f\
 \x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x33\
-\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\
 \x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\
 \x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\
-\x20\x69\x64\x3d\x22\x67\x33\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x69\x64\x3d\x22\x67\x33\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\
 \x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\
 \x6c\x61\x74\x65\x28\x30\x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\
-\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\x31\x22\
+\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x39\x22\
 \x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\
 \x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x32\x34\
 \x37\x29\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\
-\x64\x3d\x22\x67\x34\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\
+\x64\x3d\x22\x67\x34\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\
 \x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\
 \x74\x65\x28\x30\x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\x67\x0d\
-\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\x35\x22\x0d\x0a\
+\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\x33\x22\x0d\x0a\
 \x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
 \x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x32\x34\x37\x29\
 \x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\
-\x22\x67\x34\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\
+\x22\x67\x34\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\
 \x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\
 \x28\x30\x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\
-\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\x39\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\x37\x22\x0d\x0a\x20\x20\
 \x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\
 \x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x32\x34\x37\x29\x22\x20\
 \x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\
-\x35\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\
+\x34\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\
 \x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\
 \x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\
-\x20\x20\x69\x64\x3d\x22\x67\x35\x33\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x69\x64\x3d\x22\x67\x35\x31\x22\x0d\x0a\x20\x20\x20\x20\
 \x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\
 \x73\x6c\x61\x74\x65\x28\x30\x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\
-\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x35\x35\
+\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x35\x33\
 \x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\
 \x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x32\
 \x34\x37\x29\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\
-\x69\x64\x3d\x22\x67\x35\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\
+\x69\x64\x3d\x22\x67\x35\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\
 \x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\
 \x61\x74\x65\x28\x30\x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\x67\
-\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x35\x39\x22\x0d\
+\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x35\x37\x22\x0d\
 \x0a\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
 \x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x32\x34\x37\
-\x29\x22\x20\x2f\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\
-\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\
-\x70\x65\x73\x3d\x22\x63\x73\x63\x73\x73\x63\x73\x63\x63\x73\x63\
-\x63\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
-\x65\x3a\x6f\x72\x69\x67\x69\x6e\x61\x6c\x2d\x64\x3d\x22\x4d\x20\
-\x31\x31\x2e\x36\x37\x34\x34\x39\x33\x2c\x31\x30\x34\x2e\x33\x30\
-\x31\x36\x37\x20\x43\x20\x32\x34\x2e\x31\x37\x39\x39\x34\x2c\x39\
-\x32\x2e\x32\x32\x31\x35\x31\x39\x20\x32\x37\x2e\x33\x30\x36\x30\
-\x36\x39\x2c\x38\x37\x2e\x30\x38\x39\x39\x31\x20\x33\x39\x2e\x38\
-\x30\x39\x36\x34\x2c\x37\x35\x2e\x30\x31\x32\x31\x32\x32\x20\x35\
-\x32\x2e\x33\x31\x33\x32\x30\x38\x2c\x36\x32\x2e\x39\x33\x34\x33\
-\x34\x36\x20\x36\x34\x2e\x38\x31\x39\x36\x2c\x38\x38\x2e\x31\x39\
-\x35\x31\x35\x38\x20\x37\x37\x2e\x33\x32\x33\x31\x36\x38\x2c\x39\
-\x32\x2e\x32\x32\x32\x37\x30\x32\x20\x63\x20\x31\x32\x2e\x35\x30\
-\x33\x35\x36\x37\x2c\x34\x2e\x30\x32\x37\x34\x39\x36\x20\x33\x2e\
-\x38\x36\x35\x38\x33\x33\x2c\x31\x35\x2e\x31\x36\x35\x31\x30\x38\
-\x20\x36\x2e\x39\x39\x31\x30\x32\x31\x2c\x33\x31\x2e\x32\x37\x31\
-\x36\x30\x38\x20\x33\x2e\x31\x32\x35\x31\x38\x32\x2c\x31\x36\x2e\
-\x31\x30\x36\x35\x32\x20\x32\x39\x2e\x32\x33\x31\x33\x36\x31\x2c\
-\x38\x2e\x35\x36\x30\x35\x31\x20\x34\x31\x2e\x37\x33\x34\x39\x33\
-\x31\x2c\x31\x32\x2e\x35\x38\x38\x30\x35\x20\x31\x32\x2e\x35\x30\
-\x33\x35\x37\x2c\x34\x2e\x30\x32\x37\x35\x33\x20\x37\x2e\x35\x34\
-\x35\x32\x38\x2c\x2d\x31\x31\x2e\x36\x35\x30\x33\x20\x31\x36\x2e\
-\x39\x32\x32\x37\x32\x2c\x2d\x33\x31\x2e\x37\x38\x30\x36\x39\x20\
-\x34\x2e\x36\x38\x34\x34\x34\x2c\x2d\x31\x30\x2e\x30\x35\x36\x30\
-\x30\x34\x20\x31\x36\x2e\x33\x39\x30\x32\x38\x2c\x2d\x31\x36\x2e\
-\x30\x39\x33\x36\x38\x34\x20\x32\x36\x2e\x39\x33\x33\x35\x36\x2c\
-\x2d\x31\x36\x2e\x36\x30\x36\x37\x37\x32\x20\x31\x30\x2e\x35\x36\
-\x32\x35\x38\x2c\x2d\x30\x2e\x35\x31\x34\x30\x30\x39\x20\x31\x30\
-\x2e\x35\x37\x39\x39\x36\x2c\x34\x2e\x35\x32\x37\x38\x30\x34\x20\
-\x31\x39\x2e\x39\x35\x38\x33\x36\x2c\x31\x36\x2e\x36\x30\x36\x37\
-\x37\x32\x20\x38\x2e\x32\x38\x37\x32\x38\x2c\x31\x39\x2e\x36\x36\
-\x32\x33\x37\x20\x31\x30\x2e\x31\x34\x31\x35\x34\x2c\x31\x35\x2e\
-\x34\x35\x30\x33\x34\x20\x31\x38\x2e\x37\x35\x36\x37\x35\x2c\x33\
-\x36\x2e\x32\x33\x36\x39\x36\x20\x31\x38\x2e\x37\x35\x36\x37\x38\
-\x2c\x31\x32\x2e\x30\x37\x38\x39\x36\x20\x39\x2e\x39\x31\x34\x37\
-\x35\x2c\x32\x33\x2e\x34\x36\x37\x31\x31\x20\x31\x38\x2e\x37\x35\
-\x36\x37\x38\x2c\x31\x32\x2e\x30\x37\x38\x39\x36\x20\x39\x2e\x33\
-\x37\x38\x33\x37\x2c\x2d\x31\x32\x2e\x30\x37\x38\x39\x36\x20\x31\
-\x32\x2e\x35\x30\x35\x34\x34\x2c\x2d\x35\x32\x2e\x33\x34\x33\x35\
-\x34\x20\x32\x38\x2e\x31\x33\x35\x31\x34\x2c\x2d\x36\x30\x2e\x33\
-\x39\x35\x30\x32\x31\x20\x31\x35\x2e\x36\x32\x39\x37\x2c\x2d\x38\
-\x2e\x30\x35\x31\x34\x32\x35\x20\x32\x35\x2e\x30\x30\x39\x39\x33\
-\x2c\x2d\x38\x2e\x30\x35\x33\x38\x35\x33\x20\x33\x37\x2e\x35\x31\
-\x33\x35\x33\x2c\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\
-\x73\x63\x61\x70\x65\x3a\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\
-\x74\x3d\x22\x23\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\x35\
-\x37\x35\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
-\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\
-\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\
-\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x35\x37\x35\x34\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x31\x2e\x36\x37\
-\x34\x34\x39\x33\x2c\x31\x30\x34\x2e\x33\x30\x31\x36\x37\x20\x63\
-\x20\x31\x2e\x33\x34\x30\x35\x37\x35\x2c\x2d\x37\x2e\x30\x33\x32\
-\x39\x34\x32\x20\x34\x2e\x37\x36\x31\x39\x34\x32\x2c\x2d\x31\x33\
-\x2e\x36\x35\x36\x30\x30\x39\x20\x39\x2e\x37\x32\x31\x37\x34\x36\
-\x2c\x2d\x31\x38\x2e\x38\x31\x39\x33\x31\x37\x20\x34\x2e\x39\x35\
-\x39\x38\x30\x35\x2c\x2d\x35\x2e\x31\x36\x33\x33\x30\x38\x20\x31\
-\x31\x2e\x34\x34\x30\x30\x31\x38\x2c\x2d\x38\x2e\x38\x34\x38\x30\
-\x38\x38\x20\x31\x38\x2e\x34\x31\x33\x34\x30\x31\x2c\x2d\x31\x30\
-\x2e\x34\x37\x30\x32\x33\x31\x20\x37\x2e\x32\x36\x31\x37\x33\x35\
-\x2c\x2d\x31\x2e\x36\x38\x39\x32\x31\x39\x20\x31\x35\x2e\x30\x38\
-\x30\x33\x33\x32\x2c\x2d\x31\x2e\x31\x31\x36\x33\x32\x20\x32\x31\
-\x2e\x38\x39\x38\x38\x39\x32\x2c\x31\x2e\x38\x39\x39\x32\x32\x20\
-\x36\x2e\x38\x31\x38\x35\x36\x31\x2c\x33\x2e\x30\x31\x35\x35\x34\
-\x20\x31\x32\x2e\x35\x36\x36\x36\x35\x36\x2c\x38\x2e\x35\x30\x37\
-\x32\x33\x39\x20\x31\x35\x2e\x36\x31\x34\x36\x33\x36\x2c\x31\x35\
-\x2e\x33\x31\x31\x33\x36\x20\x32\x2e\x31\x39\x30\x34\x39\x35\x2c\
-\x34\x2e\x38\x38\x39\x39\x32\x35\x20\x32\x2e\x39\x37\x30\x37\x36\
-\x35\x2c\x31\x30\x2e\x32\x37\x36\x33\x37\x38\x20\x33\x2e\x36\x36\
-\x38\x36\x34\x37\x2c\x31\x35\x2e\x35\x38\x38\x38\x37\x38\x20\x30\
-\x2e\x36\x39\x37\x38\x38\x32\x2c\x35\x2e\x33\x31\x32\x34\x39\x20\
-\x31\x2e\x33\x35\x32\x39\x34\x34\x2c\x31\x30\x2e\x36\x39\x39\x36\
-\x36\x20\x33\x2e\x33\x32\x32\x33\x37\x34\x2c\x31\x35\x2e\x36\x38\
-\x32\x37\x33\x20\x33\x2e\x31\x31\x39\x31\x31\x32\x2c\x37\x2e\x38\
-\x39\x32\x30\x31\x20\x39\x2e\x37\x30\x31\x32\x34\x32\x2c\x31\x34\
-\x2e\x34\x35\x34\x35\x31\x20\x31\x37\x2e\x37\x37\x36\x30\x32\x31\
-\x2c\x31\x37\x2e\x30\x36\x34\x32\x20\x34\x2e\x30\x33\x37\x34\x2c\
-\x31\x2e\x33\x30\x34\x38\x34\x20\x38\x2e\x33\x39\x35\x36\x35\x2c\
-\x31\x2e\x36\x33\x31\x37\x35\x20\x31\x32\x2e\x35\x37\x30\x36\x38\
-\x2c\x30\x2e\x38\x37\x35\x33\x20\x34\x2e\x31\x37\x35\x30\x34\x2c\
-\x2d\x30\x2e\x37\x35\x36\x34\x35\x20\x38\x2e\x31\x35\x36\x37\x36\
-\x2c\x2d\x32\x2e\x36\x30\x31\x37\x37\x20\x31\x31\x2e\x33\x38\x38\
-\x32\x33\x2c\x2d\x35\x2e\x33\x35\x31\x34\x35\x20\x34\x2e\x36\x31\
-\x32\x33\x38\x2c\x2d\x33\x2e\x39\x32\x34\x37\x31\x20\x37\x2e\x35\
-\x32\x36\x32\x34\x2c\x2d\x39\x2e\x34\x37\x30\x31\x20\x39\x2e\x38\
-\x32\x39\x33\x36\x2c\x2d\x31\x35\x2e\x30\x37\x31\x32\x36\x20\x32\
-\x2e\x33\x30\x33\x31\x31\x2c\x2d\x35\x2e\x36\x30\x31\x31\x37\x20\
-\x34\x2e\x31\x32\x33\x36\x32\x2c\x2d\x31\x31\x2e\x34\x33\x31\x33\
-\x36\x20\x37\x2e\x30\x39\x33\x33\x36\x2c\x2d\x31\x36\x2e\x37\x30\
-\x39\x34\x33\x20\x32\x2e\x37\x33\x30\x38\x32\x2c\x2d\x34\x2e\x38\
-\x35\x33\x34\x33\x39\x20\x36\x2e\x34\x35\x35\x38\x31\x2c\x2d\x39\
-\x2e\x32\x30\x36\x38\x37\x33\x20\x31\x31\x2e\x31\x31\x30\x36\x39\
-\x2c\x2d\x31\x32\x2e\x32\x36\x33\x38\x37\x37\x20\x34\x2e\x36\x35\
-\x34\x38\x39\x2c\x2d\x33\x2e\x30\x35\x37\x30\x30\x33\x20\x31\x30\
-\x2e\x32\x36\x39\x37\x36\x2c\x2d\x34\x2e\x37\x36\x32\x36\x39\x39\
-\x20\x31\x35\x2e\x38\x32\x32\x38\x37\x2c\x2d\x34\x2e\x33\x34\x32\
-\x38\x39\x35\x20\x34\x2e\x36\x30\x32\x39\x34\x2c\x30\x2e\x33\x34\
-\x37\x39\x37\x33\x20\x39\x2e\x30\x38\x33\x39\x33\x2c\x32\x2e\x31\
-\x36\x32\x33\x32\x38\x20\x31\x32\x2e\x36\x33\x32\x32\x39\x2c\x35\
-\x2e\x31\x31\x34\x38\x32\x20\x33\x2e\x35\x34\x38\x33\x37\x2c\x32\
-\x2e\x39\x35\x32\x34\x39\x32\x20\x36\x2e\x31\x34\x37\x31\x31\x2c\
-\x37\x2e\x30\x32\x38\x39\x37\x36\x20\x37\x2e\x33\x32\x36\x30\x37\
-\x2c\x31\x31\x2e\x34\x39\x31\x39\x35\x32\x20\x6c\x20\x31\x38\x2e\
-\x37\x35\x36\x37\x35\x2c\x33\x36\x2e\x32\x33\x36\x39\x36\x20\x63\
-\x20\x31\x2e\x30\x31\x31\x39\x31\x2c\x33\x2e\x39\x36\x32\x35\x36\
-\x20\x33\x2e\x35\x36\x37\x34\x2c\x37\x2e\x35\x30\x39\x34\x33\x20\
-\x37\x2e\x30\x30\x35\x38\x33\x2c\x39\x2e\x37\x32\x33\x37\x20\x33\
-\x2e\x34\x33\x38\x34\x33\x2c\x32\x2e\x32\x31\x34\x32\x38\x20\x37\
-\x2e\x37\x32\x34\x37\x37\x2c\x33\x2e\x30\x37\x33\x34\x20\x31\x31\
-\x2e\x37\x35\x30\x39\x35\x2c\x32\x2e\x33\x35\x35\x32\x36\x20\x32\
-\x2e\x38\x39\x31\x34\x37\x2c\x2d\x30\x2e\x35\x31\x35\x37\x34\x20\
-\x35\x2e\x36\x32\x30\x32\x31\x2c\x2d\x31\x2e\x38\x31\x35\x30\x33\
-\x20\x37\x2e\x39\x34\x34\x32\x32\x2c\x2d\x33\x2e\x36\x31\x31\x30\
-\x34\x20\x32\x2e\x33\x32\x34\x2c\x2d\x31\x2e\x37\x39\x36\x20\x34\
-\x2e\x32\x35\x30\x35\x32\x2c\x2d\x34\x2e\x30\x37\x39\x34\x33\x20\
-\x35\x2e\x37\x37\x30\x33\x35\x2c\x2d\x36\x2e\x35\x39\x32\x37\x34\
-\x20\x33\x2e\x30\x33\x39\x36\x36\x2c\x2d\x35\x2e\x30\x32\x36\x36\
-\x32\x20\x34\x2e\x34\x33\x33\x36\x36\x2c\x2d\x31\x30\x2e\x38\x37\
-\x35\x35\x38\x20\x35\x2e\x32\x37\x32\x32\x36\x2c\x2d\x31\x36\x2e\
-\x36\x38\x39\x36\x33\x20\x30\x2e\x38\x33\x38\x35\x39\x2c\x2d\x35\
-\x2e\x38\x31\x34\x30\x36\x20\x31\x2e\x31\x36\x36\x36\x33\x2c\x2d\
-\x31\x31\x2e\x37\x30\x33\x31\x34\x20\x32\x2e\x32\x38\x39\x38\x36\
-\x2c\x2d\x31\x37\x2e\x34\x36\x38\x39\x37\x20\x31\x2e\x31\x32\x33\
-\x32\x32\x2c\x2d\x35\x2e\x37\x36\x35\x38\x33\x20\x33\x2e\x31\x31\
-\x33\x32\x38\x2c\x2d\x31\x31\x2e\x35\x30\x37\x31\x33\x38\x20\x36\
-\x2e\x38\x35\x38\x34\x35\x2c\x2d\x31\x36\x2e\x30\x33\x32\x36\x34\
-\x31\x20\x34\x2e\x35\x35\x30\x35\x33\x2c\x2d\x35\x2e\x34\x39\x38\
-\x36\x36\x38\x20\x31\x31\x2e\x36\x31\x39\x33\x35\x2c\x2d\x38\x2e\
-\x38\x32\x34\x32\x34\x34\x20\x31\x38\x2e\x37\x35\x36\x37\x37\x2c\
-\x2d\x38\x2e\x38\x32\x34\x32\x34\x34\x20\x37\x2e\x31\x33\x37\x34\
-\x31\x2c\x30\x20\x31\x34\x2e\x32\x30\x36\x32\x33\x2c\x33\x2e\x33\
-\x32\x35\x35\x37\x36\x20\x31\x38\x2e\x37\x35\x36\x37\x36\x2c\x38\
-\x2e\x38\x32\x34\x32\x34\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\
-\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\
-\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x36\x36\x36\x36\x36\x36\
-\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x36\
-\x2e\x36\x33\x38\x35\x31\x39\x32\x39\x3b\x73\x74\x72\x6f\x6b\x65\
-\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\
-\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\
-\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\
-\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\
-\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\
-\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x20\
-\x2f\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\
-\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\
-\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\x0a\
-\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x38\x32\x37\
-\x22\x0d\x0a\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\x38\x37\
-\x2e\x38\x33\x33\x39\x35\x2c\x32\x31\x30\x2e\x33\x37\x30\x33\x39\
-\x20\x2d\x31\x34\x31\x2e\x39\x32\x38\x33\x32\x2c\x2d\x37\x37\x2e\
-\x36\x37\x32\x36\x33\x20\x36\x30\x2e\x39\x34\x33\x31\x36\x2c\x31\
-\x35\x31\x2e\x33\x36\x38\x38\x32\x20\x32\x34\x2e\x32\x36\x34\x36\
-\x33\x2c\x2d\x33\x39\x2e\x32\x39\x38\x37\x34\x20\x34\x37\x2e\x39\
-\x37\x36\x39\x35\x2c\x35\x32\x2e\x34\x35\x34\x30\x34\x20\x31\x38\
-\x2e\x31\x37\x30\x31\x36\x2c\x2d\x31\x37\x2e\x37\x30\x36\x39\x38\
-\x20\x2d\x34\x39\x2e\x30\x35\x30\x30\x36\x2c\x2d\x35\x31\x2e\x39\
-\x35\x30\x35\x33\x20\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x73\x74\
-\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x66\x66\x66\x66\x66\
-\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\
-\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\
-\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\
-\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x37\
-\x2e\x36\x33\x33\x37\x34\x39\x39\x36\x3b\x73\x74\x72\x6f\x6b\x65\
-\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\x64\x3b\x73\
-\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\
-\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\
-\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\
-\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\
-\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\
-\x20\x2f\x3e\x3c\x74\x65\x78\x74\x0d\x0a\x20\x20\x20\x20\x20\x78\
-\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\
-\x76\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\
-\x22\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\x6e\x6f\x72\x6d\
-\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x3a\
-\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\
-\x68\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x73\
-\x74\x72\x65\x74\x63\x68\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\
-\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x31\x33\x35\x2e\x34\x39\x35\x35\
-\x39\x30\x32\x31\x70\x78\x3b\x6c\x69\x6e\x65\x2d\x68\x65\x69\x67\
-\x68\x74\x3a\x31\x32\x35\x25\x3b\x66\x6f\x6e\x74\x2d\x66\x61\x6d\
-\x69\x6c\x79\x3a\x27\x41\x72\x69\x61\x6c\x20\x52\x6f\x75\x6e\x64\
-\x65\x64\x20\x4d\x54\x20\x42\x6f\x6c\x64\x27\x3b\x2d\x69\x6e\x6b\
-\x73\x63\x61\x70\x65\x2d\x66\x6f\x6e\x74\x2d\x73\x70\x65\x63\x69\
-\x66\x69\x63\x61\x74\x69\x6f\x6e\x3a\x27\x41\x72\x69\x61\x6c\x20\
-\x52\x6f\x75\x6e\x64\x65\x64\x20\x4d\x54\x20\x42\x6f\x6c\x64\x2c\
-\x20\x4e\x6f\x72\x6d\x61\x6c\x27\x3b\x66\x6f\x6e\x74\x2d\x76\x61\
-\x72\x69\x61\x6e\x74\x2d\x6c\x69\x67\x61\x74\x75\x72\x65\x73\x3a\
-\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\
-\x61\x6e\x74\x2d\x63\x61\x70\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\
-\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x6e\x75\x6d\
-\x65\x72\x69\x63\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\
-\x2d\x66\x65\x61\x74\x75\x72\x65\x2d\x73\x65\x74\x74\x69\x6e\x67\
-\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x74\x65\x78\x74\x2d\x61\x6c\
-\x69\x67\x6e\x3a\x73\x74\x61\x72\x74\x3b\x6c\x65\x74\x74\x65\x72\
-\x2d\x73\x70\x61\x63\x69\x6e\x67\x3a\x30\x70\x78\x3b\x77\x6f\x72\
-\x64\x2d\x73\x70\x61\x63\x69\x6e\x67\x3a\x30\x70\x78\x3b\x77\x72\
-\x69\x74\x69\x6e\x67\x2d\x6d\x6f\x64\x65\x3a\x6c\x72\x2d\x74\x62\
-\x3b\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x3a\x73\x74\x61\
-\x72\x74\x3b\x66\x69\x6c\x6c\x3a\x23\x36\x36\x36\x36\x36\x36\x3b\
-\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\
-\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\
-\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x2e\x35\x34\x30\x35\x32\x35\
-\x39\x31\x70\x78\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\
-\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\
-\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\x3b\x73\
-\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x78\x3d\x22\x30\x2e\x39\x30\x33\x34\
-\x38\x31\x38\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\x79\x3d\x22\x33\
-\x35\x30\x2e\x33\x36\x30\x30\x38\x22\x0d\x0a\x20\x20\x20\x20\x20\
-\x69\x64\x3d\x22\x74\x65\x78\x74\x31\x38\x38\x39\x33\x22\x0d\x0a\
-\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
-\x73\x63\x61\x6c\x65\x28\x31\x2e\x32\x31\x35\x34\x37\x39\x33\x2c\
-\x30\x2e\x38\x32\x32\x37\x32\x30\x37\x31\x29\x22\x3e\x3c\x74\x73\
-\x70\x61\x6e\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\
-\x70\x6f\x64\x69\x3a\x72\x6f\x6c\x65\x3d\x22\x6c\x69\x6e\x65\x22\
-\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x74\x73\x70\
-\x61\x6e\x31\x38\x38\x39\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
-\x20\x78\x3d\x22\x30\x2e\x39\x30\x33\x34\x38\x31\x38\x34\x22\x0d\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x3d\x22\x33\x35\x30\x2e\x33\
-\x36\x30\x30\x38\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\
-\x79\x6c\x65\x3d\x22\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\
-\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\
-\x61\x6e\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\
-\x77\x65\x69\x67\x68\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\
-\x6e\x74\x2d\x73\x74\x72\x65\x74\x63\x68\x3a\x6e\x6f\x72\x6d\x61\
-\x6c\x3b\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x31\x33\x35\x2e\
-\x34\x39\x35\x35\x39\x30\x32\x31\x70\x78\x3b\x66\x6f\x6e\x74\x2d\
-\x66\x61\x6d\x69\x6c\x79\x3a\x27\x41\x72\x69\x61\x6c\x20\x52\x6f\
-\x75\x6e\x64\x65\x64\x20\x4d\x54\x20\x42\x6f\x6c\x64\x27\x3b\x2d\
-\x69\x6e\x6b\x73\x63\x61\x70\x65\x2d\x66\x6f\x6e\x74\x2d\x73\x70\
-\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x3a\x27\x41\x72\x69\
-\x61\x6c\x20\x52\x6f\x75\x6e\x64\x65\x64\x20\x4d\x54\x20\x42\x6f\
-\x6c\x64\x2c\x20\x4e\x6f\x72\x6d\x61\x6c\x27\x3b\x66\x6f\x6e\x74\
-\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x6c\x69\x67\x61\x74\x75\x72\
-\x65\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\
-\x61\x72\x69\x61\x6e\x74\x2d\x63\x61\x70\x73\x3a\x6e\x6f\x72\x6d\
-\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\
-\x6e\x75\x6d\x65\x72\x69\x63\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\
-\x6f\x6e\x74\x2d\x66\x65\x61\x74\x75\x72\x65\x2d\x73\x65\x74\x74\
-\x69\x6e\x67\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x74\x65\x78\x74\
-\x2d\x61\x6c\x69\x67\x6e\x3a\x73\x74\x61\x72\x74\x3b\x77\x72\x69\
-\x74\x69\x6e\x67\x2d\x6d\x6f\x64\x65\x3a\x6c\x72\x2d\x74\x62\x3b\
-\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x3a\x73\x74\x61\x72\
-\x74\x3b\x66\x69\x6c\x6c\x3a\x23\x36\x36\x36\x36\x36\x36\x3b\x73\
-\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x2e\x35\x34\
-\x30\x35\x32\x35\x39\x31\x70\x78\x22\x3e\x74\x3c\x2f\x74\x73\x70\
-\x61\x6e\x3e\x3c\x2f\x74\x65\x78\x74\x3e\x0d\x0a\x3c\x2f\x73\x76\
-\x67\x3e\
+\x29\x22\x20\x2f\x3e\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\
+\x3d\x22\x67\x35\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\x74\x72\x61\
+\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\
+\x65\x28\x30\x2c\x32\x34\x37\x29\x22\x20\x2f\x3e\x3c\x70\x61\x74\
+\x68\x0d\x0a\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\
+\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x73\x61\x63\
+\x61\x73\x73\x63\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x3a\x6f\x72\x69\x67\x69\x6e\x61\x6c\x2d\x64\x3d\
+\x22\x6d\x20\x31\x33\x2e\x36\x37\x34\x34\x39\x33\x2c\x39\x32\x2e\
+\x33\x30\x31\x36\x37\x20\x63\x20\x34\x2e\x37\x37\x30\x36\x34\x2c\
+\x2d\x31\x38\x2e\x31\x35\x37\x35\x20\x31\x39\x2e\x31\x31\x36\x32\
+\x38\x2c\x2d\x32\x37\x2e\x36\x35\x34\x34\x33\x20\x32\x38\x2e\x31\
+\x33\x35\x31\x34\x37\x2c\x2d\x32\x39\x2e\x32\x38\x39\x35\x35\x20\
+\x32\x33\x2e\x35\x39\x36\x30\x32\x38\x2c\x2d\x34\x2e\x32\x37\x37\
+\x39\x36\x20\x33\x36\x2e\x38\x34\x38\x32\x34\x38\x2c\x33\x38\x2e\
+\x38\x34\x36\x33\x36\x20\x36\x30\x2e\x38\x32\x35\x31\x32\x2c\x33\
+\x38\x2e\x34\x31\x38\x33\x31\x20\x32\x33\x2e\x30\x34\x39\x30\x36\
+\x2c\x2d\x30\x2e\x34\x31\x31\x34\x38\x20\x32\x38\x2e\x36\x37\x35\
+\x38\x31\x2c\x2d\x34\x33\x2e\x34\x35\x33\x30\x36\x20\x35\x37\x2e\
+\x31\x31\x35\x39\x34\x2c\x2d\x33\x38\x2e\x39\x39\x35\x32\x20\x32\
+\x31\x2e\x34\x33\x30\x36\x38\x2c\x34\x2e\x31\x38\x38\x30\x32\x20\
+\x32\x32\x2e\x31\x30\x33\x36\x32\x2c\x34\x36\x2e\x39\x39\x38\x33\
+\x31\x20\x34\x30\x2e\x39\x32\x35\x30\x36\x2c\x36\x33\x2e\x38\x39\
+\x33\x34\x36\x20\x37\x2e\x39\x35\x33\x30\x32\x2c\x37\x2e\x31\x33\
+\x39\x30\x36\x20\x31\x39\x2e\x38\x35\x39\x35\x2c\x32\x35\x2e\x36\
+\x37\x37\x30\x35\x20\x32\x38\x2e\x37\x30\x31\x35\x33\x2c\x31\x34\
+\x2e\x32\x38\x38\x39\x20\x39\x2e\x33\x37\x38\x33\x37\x2c\x2d\x31\
+\x32\x2e\x30\x37\x38\x39\x36\x20\x31\x38\x2e\x30\x35\x38\x32\x36\
+\x2c\x2d\x32\x36\x2e\x39\x37\x38\x33\x20\x32\x37\x2e\x30\x33\x30\
+\x31\x37\x2c\x2d\x34\x30\x2e\x35\x30\x35\x35\x32\x20\x39\x2e\x36\
+\x39\x34\x39\x36\x2c\x2d\x31\x34\x2e\x36\x31\x37\x33\x37\x20\x31\
+\x33\x2e\x34\x30\x37\x37\x32\x2c\x2d\x32\x35\x2e\x31\x38\x30\x39\
+\x32\x20\x33\x38\x2e\x36\x31\x38\x35\x2c\x2d\x31\x39\x2e\x38\x38\
+\x39\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x3a\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\x3d\x22\
+\x23\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\x35\x37\x35\x36\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
+\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\
+\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\
+\x64\x3d\x22\x70\x61\x74\x68\x35\x37\x35\x34\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x64\x3d\x22\x4d\x20\x31\x33\x2e\x36\x37\x34\x34\x39\
+\x33\x2c\x39\x32\x2e\x33\x30\x31\x36\x37\x20\x43\x20\x31\x32\x2e\
+\x32\x35\x34\x30\x39\x31\x2c\x38\x34\x2e\x35\x33\x35\x31\x20\x31\
+\x34\x2e\x37\x37\x36\x34\x30\x34\x2c\x37\x36\x2e\x31\x35\x30\x31\
+\x39\x31\x20\x32\x30\x2e\x32\x34\x35\x39\x35\x2c\x37\x30\x2e\x34\
+\x35\x36\x32\x32\x37\x20\x32\x35\x2e\x37\x31\x35\x34\x39\x36\x2c\
+\x36\x34\x2e\x37\x36\x32\x32\x36\x32\x20\x33\x33\x2e\x39\x39\x32\
+\x32\x35\x39\x2c\x36\x31\x2e\x39\x30\x35\x20\x34\x31\x2e\x38\x30\
+\x39\x36\x34\x2c\x36\x33\x2e\x30\x31\x32\x31\x32\x20\x63\x20\x36\
+\x2e\x31\x31\x37\x37\x34\x39\x2c\x30\x2e\x38\x36\x36\x34\x31\x33\
+\x20\x31\x31\x2e\x37\x33\x31\x36\x39\x34\x2c\x33\x2e\x39\x38\x31\
+\x36\x30\x32\x20\x31\x36\x2e\x35\x32\x36\x39\x30\x33\x2c\x37\x2e\
+\x38\x37\x38\x32\x30\x32\x20\x34\x2e\x37\x39\x35\x32\x30\x39\x2c\
+\x33\x2e\x38\x39\x36\x36\x30\x31\x20\x38\x2e\x38\x37\x39\x39\x33\
+\x34\x2c\x38\x2e\x35\x37\x38\x31\x30\x35\x20\x31\x33\x2e\x30\x36\
+\x35\x37\x31\x38\x2c\x31\x33\x2e\x31\x32\x33\x30\x37\x33\x20\x34\
+\x2e\x31\x38\x35\x37\x38\x34\x2c\x34\x2e\x35\x34\x34\x39\x36\x39\
+\x20\x38\x2e\x35\x34\x36\x31\x32\x38\x2c\x39\x2e\x30\x31\x37\x34\
+\x35\x38\x20\x31\x33\x2e\x37\x33\x37\x37\x31\x32\x2c\x31\x32\x2e\
+\x33\x36\x37\x38\x32\x39\x20\x35\x2e\x31\x39\x31\x35\x38\x34\x2c\
+\x33\x2e\x33\x35\x30\x33\x37\x20\x31\x31\x2e\x33\x33\x34\x37\x31\
+\x37\x2c\x35\x2e\x35\x32\x39\x38\x39\x36\x20\x31\x37\x2e\x34\x39\
+\x34\x37\x38\x37\x2c\x35\x2e\x30\x34\x39\x32\x30\x36\x20\x35\x2e\
+\x39\x32\x39\x39\x31\x2c\x2d\x30\x2e\x34\x36\x32\x37\x33\x20\x31\
+\x31\x2e\x34\x35\x39\x34\x37\x2c\x2d\x33\x2e\x33\x35\x30\x30\x35\
+\x34\x20\x31\x36\x2e\x30\x35\x39\x39\x35\x2c\x2d\x37\x2e\x31\x32\
+\x30\x31\x34\x38\x20\x34\x2e\x36\x30\x30\x34\x37\x2c\x2d\x33\x2e\
+\x37\x37\x30\x30\x39\x33\x20\x38\x2e\x33\x39\x34\x35\x2c\x2d\x38\
+\x2e\x34\x31\x30\x35\x36\x33\x20\x31\x32\x2e\x32\x30\x30\x35\x2c\
+\x2d\x31\x32\x2e\x39\x38\x31\x33\x37\x36\x20\x33\x2e\x38\x30\x35\
+\x39\x39\x2c\x2d\x34\x2e\x35\x37\x30\x38\x31\x33\x20\x37\x2e\x36\
+\x39\x38\x33\x37\x2c\x2d\x39\x2e\x31\x34\x34\x38\x34\x35\x20\x31\
+\x32\x2e\x34\x34\x31\x38\x34\x2c\x2d\x31\x32\x2e\x37\x33\x33\x33\
+\x36\x35\x20\x34\x2e\x37\x34\x33\x34\x37\x2c\x2d\x33\x2e\x35\x38\
+\x38\x35\x31\x39\x20\x31\x30\x2e\x34\x36\x35\x37\x31\x2c\x2d\x36\
+\x2e\x31\x35\x39\x33\x37\x38\x20\x31\x36\x2e\x34\x31\x33\x36\x35\
+\x2c\x2d\x36\x2e\x31\x36\x30\x33\x31\x31\x20\x36\x2e\x37\x35\x38\
+\x37\x39\x2c\x2d\x30\x2e\x30\x30\x31\x31\x20\x31\x33\x2e\x32\x33\
+\x34\x31\x2c\x33\x2e\x33\x36\x30\x36\x31\x36\x20\x31\x37\x2e\x39\
+\x37\x30\x35\x34\x2c\x38\x2e\x31\x38\x32\x31\x37\x20\x34\x2e\x37\
+\x33\x36\x34\x34\x2c\x34\x2e\x38\x32\x31\x35\x35\x35\x20\x37\x2e\
+\x38\x38\x35\x37\x35\x2c\x31\x30\x2e\x39\x39\x39\x30\x36\x31\x20\
+\x31\x30\x2e\x31\x34\x32\x36\x34\x2c\x31\x37\x2e\x33\x36\x39\x39\
+\x30\x39\x20\x34\x2e\x35\x31\x33\x37\x38\x2c\x31\x32\x2e\x37\x34\
+\x31\x36\x39\x31\x20\x35\x2e\x38\x31\x39\x35\x36\x2c\x32\x36\x2e\
+\x37\x37\x32\x37\x38\x31\x20\x31\x32\x2e\x38\x31\x31\x38\x38\x2c\
+\x33\x38\x2e\x33\x34\x31\x33\x38\x31\x20\x32\x2e\x39\x37\x35\x30\
+\x34\x2c\x34\x2e\x39\x32\x32\x31\x32\x20\x36\x2e\x39\x39\x38\x37\
+\x34\x2c\x39\x2e\x33\x31\x30\x37\x33\x20\x31\x32\x2e\x30\x33\x36\
+\x36\x39\x2c\x31\x32\x2e\x30\x38\x35\x30\x39\x20\x35\x2e\x30\x33\
+\x37\x39\x36\x2c\x32\x2e\x37\x37\x34\x33\x37\x20\x31\x31\x2e\x31\
+\x34\x35\x34\x35\x2c\x33\x2e\x38\x32\x30\x37\x33\x20\x31\x36\x2e\
+\x36\x36\x34\x38\x34\x2c\x32\x2e\x32\x30\x33\x38\x31\x20\x34\x2e\
+\x30\x32\x36\x30\x37\x2c\x2d\x31\x2e\x31\x37\x39\x34\x35\x20\x37\
+\x2e\x35\x37\x36\x37\x34\x2c\x2d\x33\x2e\x37\x30\x34\x30\x37\x20\
+\x31\x30\x2e\x33\x39\x33\x30\x32\x2c\x2d\x36\x2e\x38\x31\x33\x35\
+\x35\x20\x32\x2e\x38\x31\x36\x32\x39\x2c\x2d\x33\x2e\x31\x30\x39\
+\x34\x38\x20\x34\x2e\x39\x33\x37\x36\x38\x2c\x2d\x36\x2e\x37\x39\
+\x30\x39\x32\x20\x36\x2e\x36\x38\x34\x37\x31\x2c\x2d\x31\x30\x2e\
+\x36\x30\x35\x31\x34\x20\x33\x2e\x34\x39\x34\x30\x36\x2c\x2d\x37\
+\x2e\x36\x32\x38\x34\x32\x20\x35\x2e\x35\x38\x39\x34\x35\x2c\x2d\
+\x31\x35\x2e\x39\x31\x39\x38\x35\x20\x39\x2e\x39\x35\x32\x34\x34\
+\x2c\x2d\x32\x33\x2e\x30\x38\x36\x38\x33\x20\x33\x2e\x39\x36\x30\
+\x31\x37\x2c\x2d\x36\x2e\x35\x30\x35\x32\x38\x36\x20\x39\x2e\x37\
+\x34\x31\x34\x36\x2c\x2d\x31\x31\x2e\x38\x38\x38\x37\x30\x33\x20\
+\x31\x36\x2e\x35\x31\x32\x31\x34\x2c\x2d\x31\x35\x2e\x33\x37\x35\
+\x37\x37\x32\x20\x36\x2e\x37\x37\x30\x36\x37\x2c\x2d\x33\x2e\x34\
+\x38\x37\x30\x37\x20\x31\x34\x2e\x35\x31\x30\x36\x33\x2c\x2d\x35\
+\x2e\x30\x36\x37\x34\x33\x31\x20\x32\x32\x2e\x31\x30\x36\x33\x36\
+\x2c\x2d\x34\x2e\x35\x31\x33\x37\x32\x38\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\
+\x6e\x65\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\
+\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x36\x36\x36\
+\x36\x36\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\
+\x3a\x31\x36\x2e\x36\x33\x38\x35\x31\x39\x32\x39\x3b\x73\x74\x72\
+\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\
+\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\
+\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\
+\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\
+\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\
+\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\
+\x31\x22\x20\x2f\x3e\x3c\x70\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\
+\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\
+\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\
+\x38\x32\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\
+\x32\x35\x39\x2e\x38\x33\x33\x39\x35\x2c\x31\x39\x36\x2e\x33\x37\
+\x30\x33\x39\x20\x2d\x31\x34\x31\x2e\x39\x32\x38\x33\x32\x2c\x2d\
+\x37\x37\x2e\x36\x37\x32\x36\x33\x20\x36\x30\x2e\x39\x34\x33\x31\
+\x36\x2c\x31\x35\x31\x2e\x33\x36\x38\x38\x32\x20\x32\x34\x2e\x32\
+\x36\x34\x36\x33\x2c\x2d\x33\x39\x2e\x32\x39\x38\x37\x34\x20\x34\
+\x37\x2e\x39\x37\x36\x39\x35\x2c\x35\x32\x2e\x34\x35\x34\x30\x34\
+\x20\x31\x38\x2e\x31\x37\x30\x31\x36\x2c\x2d\x31\x37\x2e\x37\x30\
+\x36\x39\x38\x20\x2d\x34\x39\x2e\x30\x35\x30\x30\x36\x2c\x2d\x35\
+\x31\x2e\x39\x35\x30\x35\x33\x20\x7a\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x66\x66\
+\x66\x66\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\
+\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\
+\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\
+\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
+\x68\x3a\x37\x2e\x36\x33\x33\x37\x34\x39\x39\x36\x3b\x73\x74\x72\
+\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x72\x6f\x75\x6e\
+\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\
+\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\
+\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\
+\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\
+\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\
+\x3a\x31\x22\x20\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
 \x00\x00\x0b\x7e\
 \x00\
 \x00\x34\x97\x78\x9c\xed\x5a\x59\x8f\xdb\x46\x12\x7e\x0f\x90\xff\
@@ -8469,6 +8433,617 @@ qt_resource_data = "\
 \xab\xdb\x7c\x51\xb9\x5d\x56\xa7\x5f\xc1\x50\x9d\xe1\x08\xd3\xdc\
 \xe8\x65\xb3\x81\x6b\x44\xc0\x87\xf4\xdc\xf9\x74\xa9\x5b\x5b\x11\
 \xa5\x3e\xe9\xfd\x00\xfc\xfd\x7f\x25\xc1\x42\x6a\
+\x00\x00\x26\x09\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
+\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\
+\x6e\x6f\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\
+\x74\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\
+\x65\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\
+\x0d\x0a\x0d\x0a\x3c\x73\x76\x67\x0d\x0a\x20\x20\x20\x78\x6d\x6c\
+\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\
+\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\
+\x74\x73\x2f\x31\x2e\x31\x2f\x22\x0d\x0a\x20\x20\x20\x78\x6d\x6c\
+\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\
+\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\
+\x67\x2f\x6e\x73\x23\x22\x0d\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\
+\x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\
+\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\
+\x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\
+\x23\x22\x0d\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0d\x0a\x20\
+\x20\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\
+\x73\x76\x67\x22\x0d\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\
+\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
+\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\x75\x72\x63\x65\x66\
+\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\x2f\x73\x6f\x64\
+\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\x0d\x0a\x20\x20\
+\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\x61\x70\x65\x3d\
+\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\x65\x73\x70\x61\
+\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x0d\x0a\x20\
+\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x35\x36\x22\x0d\x0a\x20\
+\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x35\x36\x22\x0d\x0a\
+\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\
+\x36\x37\x2e\x37\x33\x33\x33\x33\x35\x20\x36\x37\x2e\x37\x33\x33\
+\x33\x33\x35\x22\x0d\x0a\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\
+\x3d\x22\x31\x2e\x31\x22\x0d\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\
+\x76\x67\x32\x36\x36\x39\x22\x0d\x0a\x20\x20\x20\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\
+\x39\x32\x2e\x32\x20\x35\x63\x33\x65\x38\x30\x64\x2c\x20\x32\x30\
+\x31\x37\x2d\x30\x38\x2d\x30\x36\x22\x0d\x0a\x20\x20\x20\x73\x6f\
+\x64\x69\x70\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\
+\x6d\x49\x63\x6f\x6e\x54\x65\x6d\x70\x6f\x72\x61\x6c\x50\x72\x6f\
+\x66\x69\x6c\x65\x32\x44\x2e\x73\x76\x67\x22\x3e\x0d\x0a\x20\x20\
+\x3c\x64\x65\x66\x73\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\
+\x64\x65\x66\x73\x32\x36\x36\x33\x22\x3e\x0d\x0a\x20\x20\x20\x20\
+\x3c\x6d\x61\x72\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\
+\x3d\x22\x74\x72\x75\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x73\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\
+\x76\x69\x73\x69\x62\x6c\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x69\x64\x3d\x22\x6d\x61\x72\x6b\x65\x72\x31\x35\x31\x32\x32\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\
+\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\
+\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\
+\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\
+\x69\x64\x3d\x22\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4d\
+\x22\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\
+\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x30\x2e\x34\x29\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\
+\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\
+\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\
+\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\
+\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\
+\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x30\
+\x30\x30\x30\x30\x30\x33\x70\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\
+\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x35\x2e\x37\x37\x2c\x30\
+\x20\x2d\x32\x2e\x38\x38\x2c\x35\x20\x56\x20\x2d\x35\x20\x5a\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\
+\x61\x74\x68\x31\x35\x31\x32\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\
+\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\
+\x3d\x22\x30\x22\x20\x2f\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x2f\x6d\
+\x61\x72\x6b\x65\x72\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x6d\x61\x72\
+\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x54\x72\
+\x69\x61\x6e\x67\x6c\x65\x49\x6e\x4d\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\
+\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x54\
+\x72\x69\x61\x6e\x67\x6c\x65\x49\x6e\x4d\x2d\x33\x2d\x31\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\
+\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
+\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\x3d\x22\x74\x72\x75\x65\x22\
+\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
+\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\
+\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x36\x35\x30\
+\x2d\x38\x2d\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\
+\x64\x3d\x22\x4d\x20\x35\x2e\x37\x37\x2c\x30\x20\x2d\x32\x2e\x38\
+\x38\x2c\x35\x20\x56\x20\x2d\x35\x20\x5a\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\
+\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\
+\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\
+\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\
+\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\
+\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\
+\x33\x70\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\
+\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\
+\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\
+\x28\x2d\x30\x2e\x34\x29\x22\x20\x2f\x3e\x0d\x0a\x20\x20\x20\x20\
+\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0d\x0a\x20\x20\x20\x20\x3c\
+\x6d\x61\x72\x6b\x65\x72\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
+\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\
+\x22\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4d\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\x22\x61\
+\x75\x74\x6f\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\
+\x59\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\
+\x66\x58\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
+\x64\x3d\x22\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4d\x2d\
+\x33\x2d\x38\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\
+\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\
+\x69\x62\x6c\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3a\x69\x73\x73\x74\x6f\x63\x6b\x3d\x22\
+\x74\x72\x75\x65\x22\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\
+\x61\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\
+\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\
+\x68\x34\x36\x35\x39\x2d\x36\x2d\x36\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x35\x2e\x37\x37\x2c\x30\
+\x20\x2d\x32\x2e\x38\x38\x2c\x35\x20\x56\x20\x2d\x35\x20\x5a\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\
+\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\
+\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\
+\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\
+\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\
+\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x30\
+\x30\x30\x30\x30\x30\x33\x70\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\
+\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
+\x73\x63\x61\x6c\x65\x28\x30\x2e\x34\x29\x22\x20\x2f\x3e\x0d\x0a\
+\x20\x20\x20\x20\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0d\x0a\x20\
+\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x74\
+\x68\x2d\x65\x66\x66\x65\x63\x74\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x65\x66\x66\x65\x63\x74\x3d\x22\x73\x70\x69\x72\x6f\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\
+\x2d\x65\x66\x66\x65\x63\x74\x31\x36\x31\x30\x31\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x69\x73\x5f\x76\x69\x73\x69\x62\x6c\x65\
+\x3d\x22\x74\x72\x75\x65\x22\x20\x2f\x3e\x0d\x0a\x20\x20\x20\x20\
+\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x74\x68\x2d\x65\
+\x66\x66\x65\x63\x74\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x65\x66\
+\x66\x65\x63\x74\x3d\x22\x73\x70\x69\x72\x6f\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x2d\x65\x66\
+\x66\x65\x63\x74\x31\x36\x31\x30\x31\x2d\x34\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x69\x73\x5f\x76\x69\x73\x69\x62\x6c\x65\x3d\
+\x22\x74\x72\x75\x65\x22\x20\x2f\x3e\x0d\x0a\x20\x20\x3c\x2f\x64\
+\x65\x66\x73\x3e\x0d\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\
+\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0d\x0a\x20\x20\x20\
+\x20\x20\x69\x64\x3d\x22\x62\x61\x73\x65\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\
+\x66\x66\x66\x66\x22\x0d\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\
+\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\
+\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x0d\x0a\x20\x20\x20\
+\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\
+\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\
+\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\
+\x32\x2e\x31\x32\x31\x30\x39\x33\x38\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x31\x33\
+\x38\x2e\x31\x31\x32\x35\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\
+\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x31\x32\x38\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
+\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\
+\x6d\x6d\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\
+\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x74\x72\x75\x65\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
+\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x32\
+\x38\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x37\x35\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\
+\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\
+\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
+\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x30\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\
+\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\x22\
+\x31\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x3a\x67\x72\x69\x64\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x74\x79\x70\x65\x3d\x22\x78\x79\x67\x72\x69\x64\x22\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x72\x69\x64\x33\x36\
+\x36\x30\x22\x20\x2f\x3e\x0d\x0a\x20\x20\x3c\x2f\x73\x6f\x64\x69\
+\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x3e\x0d\
+\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x0d\x0a\x20\x20\
+\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\x61\x74\x61\x32\
+\x36\x36\x36\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\
+\x52\x44\x46\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x3c\x63\x63\x3a\
+\x57\x6f\x72\x6b\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\
+\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\
+\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\
+\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x79\x70\x65\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\
+\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\
+\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\
+\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\
+\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\
+\x69\x74\x6c\x65\x3e\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\x3a\x57\x6f\x72\
+\x6b\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\
+\x46\x3e\x0d\x0a\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\
+\x3e\x0d\x0a\x20\x20\x3c\x67\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\
+\x79\x65\x72\x20\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\
+\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\
+\x22\x6c\x61\x79\x65\x72\x22\x0d\x0a\x20\x20\x20\x20\x20\x69\x64\
+\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\
+\x6c\x61\x74\x65\x28\x30\x2c\x2d\x32\x32\x39\x2e\x32\x36\x36\x36\
+\x36\x29\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\
+\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x66\x69\x6c\x6c\x2d\x72\x75\
+\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\
+\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\
+\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x35\x3b\x73\x74\x72\x6f\x6b\
+\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\
+\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\
+\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\
+\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\
+\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\
+\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\
+\x6d\x61\x72\x6b\x65\x72\x2d\x73\x74\x61\x72\x74\x3a\x75\x72\x6c\
+\x28\x23\x54\x72\x69\x61\x6e\x67\x6c\x65\x49\x6e\x4d\x2d\x33\x2d\
+\x31\x29\x3b\x6d\x61\x72\x6b\x65\x72\x2d\x65\x6e\x64\x3a\x75\x72\
+\x6c\x28\x23\x54\x72\x69\x61\x6e\x67\x6c\x65\x4f\x75\x74\x4d\x2d\
+\x33\x2d\x38\x29\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\
+\x22\x6d\x20\x34\x2e\x36\x30\x36\x37\x39\x36\x35\x2c\x32\x34\x31\
+\x2e\x34\x37\x39\x39\x20\x76\x20\x34\x33\x2e\x36\x35\x36\x32\x36\
+\x20\x4c\x20\x36\x31\x2e\x31\x31\x38\x37\x35\x2c\x32\x38\x35\x2e\
+\x33\x35\x38\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\
+\x3d\x22\x70\x61\x74\x68\x33\x37\x30\x37\x2d\x30\x2d\x39\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
+\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\
+\x74\x75\x72\x65\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\
+\x70\x65\x73\x3d\x22\x63\x63\x63\x22\x20\x2f\x3e\x0d\x0a\x20\x20\
+\x20\x20\x3c\x74\x65\x78\x74\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\
+\x72\x76\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\
+\x6c\x65\x3d\x22\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\x6e\
+\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\
+\x6e\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x77\
+\x65\x69\x67\x68\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\
+\x74\x2d\x73\x74\x72\x65\x74\x63\x68\x3a\x6e\x6f\x72\x6d\x61\x6c\
+\x3b\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x36\x2e\x33\x34\x39\
+\x39\x39\x39\x39\x70\x78\x3b\x6c\x69\x6e\x65\x2d\x68\x65\x69\x67\
+\x68\x74\x3a\x31\x32\x35\x25\x3b\x66\x6f\x6e\x74\x2d\x66\x61\x6d\
+\x69\x6c\x79\x3a\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x2d\
+\x69\x6e\x6b\x73\x63\x61\x70\x65\x2d\x66\x6f\x6e\x74\x2d\x73\x70\
+\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x3a\x27\x73\x61\x6e\
+\x73\x2d\x73\x65\x72\x69\x66\x2c\x20\x4e\x6f\x72\x6d\x61\x6c\x27\
+\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x6c\x69\
+\x67\x61\x74\x75\x72\x65\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\
+\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x63\x61\x70\x73\
+\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\
+\x69\x61\x6e\x74\x2d\x6e\x75\x6d\x65\x72\x69\x63\x3a\x6e\x6f\x72\
+\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x66\x65\x61\x74\x75\x72\x65\
+\x2d\x73\x65\x74\x74\x69\x6e\x67\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\
+\x3b\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x73\x74\x61\x72\
+\x74\x3b\x6c\x65\x74\x74\x65\x72\x2d\x73\x70\x61\x63\x69\x6e\x67\
+\x3a\x30\x70\x78\x3b\x77\x6f\x72\x64\x2d\x73\x70\x61\x63\x69\x6e\
+\x67\x3a\x30\x70\x78\x3b\x77\x72\x69\x74\x69\x6e\x67\x2d\x6d\x6f\
+\x64\x65\x3a\x6c\x72\x2d\x74\x62\x3b\x74\x65\x78\x74\x2d\x61\x6e\
+\x63\x68\x6f\x72\x3a\x73\x74\x61\x72\x74\x3b\x66\x69\x6c\x6c\x3a\
+\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\
+\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\
+\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\
+\x30\x2e\x32\x36\x34\x35\x38\x33\x33\x32\x70\x78\x3b\x73\x74\x72\
+\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\
+\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\
+\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\
+\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x78\x3d\x22\x30\x2e\x37\x35\x30\x37\x35\x31\x35\x35\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x3d\x22\x32\x33\x35\x2e\x32\
+\x33\x33\x31\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\
+\x3d\x22\x74\x65\x78\x74\x31\x31\x35\x36\x37\x2d\x34\x2d\x34\x22\
+\x3e\x3c\x74\x73\x70\x61\x6e\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x20\x20\x79\x3d\x22\x32\x33\x35\x2e\x32\x33\x33\x31\x37\x22\x0d\
+\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x30\x2e\x37\
+\x35\x30\x37\x35\x31\x35\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x72\x6f\x6c\x65\
+\x3d\x22\x6c\x69\x6e\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\
+\x20\x20\x69\x64\x3d\x22\x74\x73\x70\x61\x6e\x31\x30\x31\x31\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\
+\x3d\x22\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\x6e\x6f\x72\
+\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\
+\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x77\x65\x69\
+\x67\x68\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\
+\x73\x74\x72\x65\x74\x63\x68\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\
+\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x36\x2e\x33\x34\x39\x39\x39\
+\x39\x39\x70\x78\x3b\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\
+\x3a\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x2d\x69\x6e\x6b\
+\x73\x63\x61\x70\x65\x2d\x66\x6f\x6e\x74\x2d\x73\x70\x65\x63\x69\
+\x66\x69\x63\x61\x74\x69\x6f\x6e\x3a\x27\x73\x61\x6e\x73\x2d\x73\
+\x65\x72\x69\x66\x2c\x20\x4e\x6f\x72\x6d\x61\x6c\x27\x3b\x66\x6f\
+\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x6c\x69\x67\x61\x74\
+\x75\x72\x65\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\
+\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x63\x61\x70\x73\x3a\x6e\x6f\
+\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\
+\x74\x2d\x6e\x75\x6d\x65\x72\x69\x63\x3a\x6e\x6f\x72\x6d\x61\x6c\
+\x3b\x66\x6f\x6e\x74\x2d\x66\x65\x61\x74\x75\x72\x65\x2d\x73\x65\
+\x74\x74\x69\x6e\x67\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x74\x65\
+\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x73\x74\x61\x72\x74\x3b\x77\
+\x72\x69\x74\x69\x6e\x67\x2d\x6d\x6f\x64\x65\x3a\x6c\x72\x2d\x74\
+\x62\x3b\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x3a\x73\x74\
+\x61\x72\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\
+\x3a\x30\x2e\x32\x36\x34\x35\x38\x33\x33\x32\x70\x78\x22\x3e\x44\
+\x4e\x3c\x2f\x74\x73\x70\x61\x6e\x3e\x3c\x2f\x74\x65\x78\x74\x3e\
+\x0d\x0a\x20\x20\x20\x20\x3c\x74\x65\x78\x74\x0d\x0a\x20\x20\x20\
+\x20\x20\x20\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\
+\x72\x65\x73\x65\x72\x76\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x6f\x6e\x74\x2d\x73\x74\x79\
+\x6c\x65\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x77\
+\x65\x69\x67\x68\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\
+\x74\x2d\x73\x69\x7a\x65\x3a\x31\x30\x2e\x35\x38\x33\x33\x33\x33\
+\x30\x32\x70\x78\x3b\x6c\x69\x6e\x65\x2d\x68\x65\x69\x67\x68\x74\
+\x3a\x31\x32\x35\x25\x3b\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\
+\x79\x3a\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x6c\x65\x74\
+\x74\x65\x72\x2d\x73\x70\x61\x63\x69\x6e\x67\x3a\x30\x70\x78\x3b\
+\x77\x6f\x72\x64\x2d\x73\x70\x61\x63\x69\x6e\x67\x3a\x30\x70\x78\
+\x3b\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\
+\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\
+\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\
+\x77\x69\x64\x74\x68\x3a\x30\x2e\x32\x36\x34\x35\x38\x33\x33\x32\
+\x70\x78\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
+\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
+\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\
+\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\
+\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x36\x31\x2e\x31\x39\x39\
+\x31\x34\x32\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x3d\x22\
+\x32\x39\x35\x2e\x32\x32\x34\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x69\x64\x3d\x22\x74\x65\x78\x74\x31\x32\x32\x39\x33\x2d\
+\x34\x22\x3e\x3c\x74\x73\x70\x61\x6e\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x72\x6f\x6c\
+\x65\x3d\x22\x6c\x69\x6e\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\
+\x20\x20\x20\x69\x64\x3d\x22\x74\x73\x70\x61\x6e\x31\x32\x32\x39\
+\x31\x2d\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\
+\x3d\x22\x36\x31\x2e\x31\x39\x39\x31\x34\x32\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x20\x20\x79\x3d\x22\x32\x39\x35\x2e\x32\x32\
+\x34\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\
+\x79\x6c\x65\x3d\x22\x66\x6f\x6e\x74\x2d\x73\x74\x79\x6c\x65\x3a\
+\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\
+\x61\x6e\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\
+\x77\x65\x69\x67\x68\x74\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\
+\x6e\x74\x2d\x73\x74\x72\x65\x74\x63\x68\x3a\x6e\x6f\x72\x6d\x61\
+\x6c\x3b\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x36\x2e\x33\x34\
+\x39\x39\x39\x39\x39\x70\x78\x3b\x66\x6f\x6e\x74\x2d\x66\x61\x6d\
+\x69\x6c\x79\x3a\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x3b\x2d\
+\x69\x6e\x6b\x73\x63\x61\x70\x65\x2d\x66\x6f\x6e\x74\x2d\x73\x70\
+\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x3a\x27\x73\x61\x6e\
+\x73\x2d\x73\x65\x72\x69\x66\x2c\x20\x4e\x6f\x72\x6d\x61\x6c\x27\
+\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x6c\x69\
+\x67\x61\x74\x75\x72\x65\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\
+\x6f\x6e\x74\x2d\x76\x61\x72\x69\x61\x6e\x74\x2d\x63\x61\x70\x73\
+\x3a\x6e\x6f\x72\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x76\x61\x72\
+\x69\x61\x6e\x74\x2d\x6e\x75\x6d\x65\x72\x69\x63\x3a\x6e\x6f\x72\
+\x6d\x61\x6c\x3b\x66\x6f\x6e\x74\x2d\x66\x65\x61\x74\x75\x72\x65\
+\x2d\x73\x65\x74\x74\x69\x6e\x67\x73\x3a\x6e\x6f\x72\x6d\x61\x6c\
+\x3b\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x73\x74\x61\x72\
+\x74\x3b\x77\x72\x69\x74\x69\x6e\x67\x2d\x6d\x6f\x64\x65\x3a\x6c\
+\x72\x2d\x74\x62\x3b\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\
+\x3a\x73\x74\x61\x72\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\
+\x64\x74\x68\x3a\x30\x2e\x32\x36\x34\x35\x38\x33\x33\x32\x70\x78\
+\x22\x3e\x74\x3c\x2f\x74\x73\x70\x61\x6e\x3e\x3c\x2f\x74\x65\x78\
+\x74\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0d\x0a\x20\
+\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\
+\x6c\x3a\x6e\x6f\x6e\x65\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\
+\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\
+\x23\x35\x35\x32\x32\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\
+\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
+\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\
+\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\
+\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\
+\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\
+\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\
+\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x39\x2e\x34\x33\x37\x38\
+\x39\x38\x33\x2c\x32\x36\x35\x2e\x32\x34\x39\x39\x39\x20\x63\x20\
+\x30\x2e\x34\x34\x36\x33\x33\x32\x33\x2c\x2d\x30\x2e\x38\x39\x36\
+\x34\x32\x20\x31\x2e\x31\x33\x30\x36\x39\x34\x37\x2c\x2d\x31\x2e\
+\x36\x37\x32\x39\x36\x20\x31\x2e\x39\x36\x33\x38\x39\x37\x37\x2c\
+\x2d\x32\x2e\x32\x32\x38\x34\x33\x20\x30\x2e\x38\x33\x33\x32\x30\
+\x32\x2c\x2d\x30\x2e\x35\x35\x35\x34\x37\x20\x31\x2e\x38\x31\x33\
+\x32\x32\x38\x2c\x2d\x30\x2e\x38\x38\x38\x35\x32\x20\x32\x2e\x38\
+\x31\x32\x33\x35\x35\x2c\x2d\x30\x2e\x39\x35\x35\x37\x35\x20\x31\
+\x2e\x37\x36\x37\x36\x31\x37\x2c\x2d\x30\x2e\x31\x31\x38\x39\x34\
+\x20\x33\x2e\x35\x36\x31\x30\x34\x38\x2c\x30\x2e\x36\x32\x31\x33\
+\x34\x20\x34\x2e\x37\x37\x36\x32\x35\x31\x2c\x31\x2e\x39\x31\x30\
+\x34\x39\x20\x31\x2e\x32\x38\x32\x33\x39\x2c\x31\x2e\x33\x36\x30\
+\x34\x32\x20\x31\x2e\x39\x30\x35\x35\x35\x2c\x33\x2e\x32\x32\x34\
+\x39\x36\x20\x33\x2e\x31\x31\x37\x30\x37\x33\x2c\x34\x2e\x36\x34\
+\x38\x38\x36\x20\x30\x2e\x37\x35\x34\x32\x33\x38\x2c\x30\x2e\x38\
+\x38\x36\x34\x35\x20\x31\x2e\x37\x34\x35\x36\x35\x33\x2c\x31\x2e\
+\x35\x39\x31\x30\x38\x20\x32\x2e\x38\x36\x38\x30\x36\x37\x2c\x31\
+\x2e\x38\x39\x39\x30\x37\x20\x31\x2e\x31\x32\x32\x34\x31\x33\x2c\
+\x30\x2e\x33\x30\x38\x20\x32\x2e\x33\x37\x36\x34\x37\x36\x2c\x30\
+\x2e\x31\x39\x34\x39\x35\x20\x33\x2e\x33\x37\x31\x34\x33\x35\x2c\
+\x2d\x30\x2e\x34\x30\x38\x39\x38\x20\x30\x2e\x38\x31\x35\x34\x31\
+\x37\x2c\x2d\x30\x2e\x34\x39\x34\x39\x35\x20\x31\x2e\x34\x31\x34\
+\x33\x35\x36\x2c\x2d\x31\x2e\x32\x37\x38\x32\x35\x20\x31\x2e\x39\
+\x31\x30\x38\x37\x34\x2c\x2d\x32\x2e\x30\x39\x32\x37\x32\x20\x30\
+\x2e\x34\x39\x36\x35\x31\x39\x2c\x2d\x30\x2e\x38\x31\x34\x34\x36\
+\x20\x30\x2e\x39\x31\x32\x30\x36\x34\x2c\x2d\x31\x2e\x36\x37\x39\
+\x39\x20\x31\x2e\x34\x36\x39\x32\x32\x34\x2c\x2d\x32\x2e\x34\x35\
+\x34\x31\x34\x20\x30\x2e\x35\x32\x39\x37\x33\x2c\x2d\x30\x2e\x37\
+\x33\x36\x31\x32\x20\x31\x2e\x31\x39\x30\x31\x36\x34\x2c\x2d\x31\
+\x2e\x33\x38\x36\x38\x33\x20\x31\x2e\x39\x37\x33\x34\x35\x39\x2c\
+\x2d\x31\x2e\x38\x34\x33\x39\x33\x20\x30\x2e\x37\x38\x33\x32\x39\
+\x35\x2c\x2d\x30\x2e\x34\x35\x37\x31\x20\x31\x2e\x36\x39\x33\x33\
+\x32\x39\x2c\x2d\x30\x2e\x37\x31\x34\x32\x37\x20\x32\x2e\x35\x39\
+\x38\x38\x31\x32\x2c\x2d\x30\x2e\x36\x36\x33\x33\x35\x20\x30\x2e\
+\x37\x30\x32\x31\x33\x35\x2c\x30\x2e\x30\x33\x39\x35\x20\x31\x2e\
+\x33\x39\x33\x30\x30\x34\x2c\x30\x2e\x32\x36\x34\x35\x32\x20\x31\
+\x2e\x39\x38\x33\x37\x30\x31\x2c\x30\x2e\x36\x34\x36\x31\x33\x20\
+\x30\x2e\x35\x39\x30\x36\x39\x38\x2c\x30\x2e\x33\x38\x31\x36\x32\
+\x20\x31\x2e\x30\x37\x39\x38\x33\x2c\x30\x2e\x39\x31\x38\x39\x31\
+\x20\x31\x2e\x34\x30\x34\x34\x35\x33\x2c\x31\x2e\x35\x34\x32\x37\
+\x35\x20\x76\x20\x36\x2e\x33\x36\x38\x33\x33\x20\x63\x20\x32\x2e\
+\x30\x38\x36\x33\x39\x38\x2c\x30\x2e\x34\x38\x30\x35\x32\x20\x34\
+\x2e\x32\x38\x31\x39\x33\x39\x2c\x30\x2e\x34\x38\x30\x35\x32\x20\
+\x36\x2e\x33\x36\x38\x33\x33\x37\x2c\x30\x20\x31\x2e\x36\x33\x36\
+\x34\x37\x32\x2c\x2d\x30\x2e\x33\x37\x36\x38\x39\x20\x33\x2e\x31\
+\x39\x30\x32\x36\x36\x2c\x2d\x31\x2e\x30\x34\x30\x30\x35\x20\x34\
+\x2e\x37\x37\x36\x32\x35\x33\x2c\x2d\x31\x2e\x35\x39\x32\x30\x38\
+\x20\x32\x2e\x30\x36\x39\x33\x2c\x2d\x30\x2e\x37\x32\x30\x32\x35\
+\x20\x34\x2e\x32\x30\x33\x35\x34\x31\x2c\x2d\x31\x2e\x32\x35\x33\
+\x38\x31\x20\x36\x2e\x33\x36\x38\x33\x33\x37\x2c\x2d\x31\x2e\x35\
+\x39\x32\x30\x38\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\
+\x3d\x22\x70\x61\x74\x68\x31\x36\x30\x39\x39\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\
+\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\
+\x65\x3d\x22\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x74\x68\x2d\x65\x66\x66\x65\
+\x63\x74\x3d\x22\x23\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\
+\x31\x36\x31\x30\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
+\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6f\x72\x69\x67\x69\x6e\x61\x6c\
+\x2d\x64\x3d\x22\x6d\x20\x39\x2e\x34\x33\x37\x38\x39\x38\x33\x2c\
+\x32\x36\x35\x2e\x32\x34\x39\x39\x39\x20\x63\x20\x32\x2e\x31\x32\
+\x32\x39\x33\x37\x37\x2c\x2d\x31\x2e\x35\x39\x32\x32\x34\x20\x32\
+\x2e\x36\x35\x33\x36\x33\x32\x37\x2c\x2d\x31\x2e\x35\x39\x32\x32\
+\x35\x20\x34\x2e\x37\x37\x36\x32\x35\x32\x37\x2c\x2d\x33\x2e\x31\
+\x38\x34\x31\x38\x20\x32\x2e\x31\x32\x32\x36\x31\x38\x2c\x2d\x31\
+\x2e\x35\x39\x31\x39\x32\x20\x32\x2e\x36\x35\x33\x36\x33\x33\x2c\
+\x31\x2e\x33\x37\x39\x36\x33\x20\x34\x2e\x37\x37\x36\x32\x35\x31\
+\x2c\x31\x2e\x39\x31\x30\x34\x39\x20\x32\x2e\x31\x32\x32\x36\x31\
+\x38\x2c\x30\x2e\x35\x33\x30\x38\x35\x20\x32\x2e\x35\x38\x36\x35\
+\x33\x38\x2c\x32\x2e\x35\x32\x35\x39\x33\x20\x33\x2e\x31\x31\x37\
+\x30\x37\x33\x2c\x34\x2e\x36\x34\x38\x38\x36\x20\x30\x2e\x35\x33\
+\x30\x35\x33\x35\x2c\x32\x2e\x31\x32\x32\x39\x34\x20\x34\x2e\x31\
+\x31\x36\x38\x38\x31\x2c\x30\x2e\x39\x35\x39\x32\x33\x20\x36\x2e\
+\x32\x33\x39\x35\x30\x32\x2c\x31\x2e\x34\x39\x30\x30\x39\x20\x32\
+\x2e\x31\x32\x32\x36\x31\x37\x2c\x30\x2e\x35\x33\x30\x38\x35\x20\
+\x31\x2e\x37\x38\x38\x31\x37\x33\x2c\x2d\x31\x2e\x38\x39\x33\x35\
+\x35\x20\x33\x2e\x33\x38\x30\x30\x39\x38\x2c\x2d\x34\x2e\x35\x34\
+\x36\x38\x36\x20\x30\x2e\x37\x39\x35\x32\x33\x35\x2c\x2d\x31\x2e\
+\x33\x32\x35\x34\x35\x20\x32\x2e\x37\x38\x32\x34\x33\x32\x2c\x2d\
+\x32\x2e\x34\x33\x39\x36\x35\x20\x34\x2e\x35\x37\x32\x32\x37\x31\
+\x2c\x2d\x32\x2e\x35\x30\x37\x32\x38\x20\x31\x2e\x37\x39\x33\x31\
+\x31\x36\x2c\x2d\x30\x2e\x30\x36\x37\x37\x20\x31\x2e\x37\x39\x36\
+\x30\x36\x38\x2c\x30\x2e\x35\x39\x36\x37\x39\x20\x33\x2e\x33\x38\
+\x38\x31\x35\x34\x2c\x32\x2e\x31\x38\x38\x38\x38\x20\x30\x2c\x34\
+\x2e\x37\x37\x36\x32\x35\x20\x2d\x32\x2e\x36\x38\x31\x38\x31\x2c\
+\x34\x2e\x34\x32\x39\x35\x36\x20\x30\x2c\x36\x2e\x33\x36\x38\x33\
+\x33\x20\x30\x2e\x35\x30\x32\x33\x36\x31\x2c\x32\x2e\x38\x33\x37\
+\x34\x38\x20\x34\x2e\x38\x36\x37\x33\x30\x36\x2c\x31\x2e\x35\x30\
+\x31\x30\x33\x20\x36\x2e\x33\x36\x38\x33\x33\x37\x2c\x30\x20\x31\
+\x2e\x35\x39\x32\x30\x38\x34\x2c\x2d\x31\x2e\x35\x39\x32\x30\x38\
+\x20\x32\x2e\x31\x32\x32\x39\x34\x2c\x2d\x30\x2e\x35\x33\x30\x38\
+\x35\x20\x34\x2e\x37\x37\x36\x32\x35\x33\x2c\x2d\x31\x2e\x35\x39\
+\x32\x30\x38\x20\x32\x2e\x36\x35\x33\x33\x31\x37\x2c\x2d\x31\x2e\
+\x30\x36\x31\x32\x33\x20\x34\x2e\x32\x34\x35\x37\x31\x33\x2c\x2d\
+\x32\x2e\x36\x35\x33\x36\x33\x20\x36\x2e\x33\x36\x38\x33\x33\x37\
+\x2c\x2d\x31\x2e\x35\x39\x32\x30\x38\x22\x0d\x0a\x20\x20\x20\x20\
+\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\
+\x74\x79\x70\x65\x73\x3d\x22\x63\x73\x63\x73\x73\x63\x73\x63\x63\
+\x73\x63\x63\x22\x20\x2f\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\
+\x74\x68\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\
+\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x66\x69\x6c\x6c\
+\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\
+\x72\x6f\x6b\x65\x3a\x23\x61\x61\x34\x34\x30\x30\x3b\x73\x74\x72\
+\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\x6f\
+\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\
+\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\
+\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\
+\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\
+\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\
+\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\
+\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x39\
+\x2e\x34\x33\x37\x38\x39\x39\x2c\x32\x35\x36\x2e\x35\x31\x38\x36\
+\x37\x20\x63\x20\x31\x2e\x35\x32\x33\x32\x30\x35\x2c\x2d\x30\x2e\
+\x35\x39\x37\x38\x35\x20\x33\x2e\x30\x37\x36\x32\x38\x38\x2c\x2d\
+\x31\x2e\x31\x31\x39\x35\x37\x20\x34\x2e\x36\x35\x31\x35\x31\x33\
+\x2c\x2d\x31\x2e\x35\x36\x32\x35\x37\x20\x30\x2e\x38\x31\x39\x39\
+\x36\x35\x2c\x2d\x30\x2e\x32\x33\x30\x36\x20\x31\x2e\x36\x35\x35\
+\x38\x35\x36\x2c\x2d\x30\x2e\x34\x34\x31\x32\x35\x20\x32\x2e\x35\
+\x30\x37\x35\x38\x39\x2c\x2d\x30\x2e\x34\x34\x39\x35\x32\x20\x30\
+\x2e\x38\x35\x31\x37\x33\x33\x2c\x2d\x30\x2e\x30\x30\x38\x20\x31\
+\x2e\x37\x33\x30\x38\x37\x32\x2c\x30\x2e\x32\x30\x33\x30\x38\x20\
+\x32\x2e\x33\x39\x33\x34\x30\x32\x2c\x30\x2e\x37\x33\x38\x34\x20\
+\x30\x2e\x33\x36\x37\x34\x33\x33\x2c\x30\x2e\x32\x39\x36\x38\x39\
+\x20\x30\x2e\x36\x35\x35\x36\x33\x31\x2c\x30\x2e\x36\x38\x31\x39\
+\x35\x20\x30\x2e\x38\x39\x31\x33\x32\x2c\x31\x2e\x30\x39\x31\x33\
+\x34\x20\x30\x2e\x32\x33\x35\x36\x38\x38\x2c\x30\x2e\x34\x30\x39\
+\x33\x39\x20\x30\x2e\x34\x32\x31\x37\x37\x33\x2c\x30\x2e\x38\x34\
+\x34\x39\x37\x20\x30\x2e\x36\x31\x32\x37\x30\x34\x2c\x31\x2e\x32\
+\x37\x37\x30\x35\x20\x30\x2e\x31\x39\x30\x39\x33\x32\x2c\x30\x2e\
+\x34\x33\x32\x30\x38\x20\x30\x2e\x33\x38\x38\x32\x32\x32\x2c\x30\
+\x2e\x38\x36\x33\x35\x34\x20\x30\x2e\x36\x34\x34\x30\x37\x36\x2c\
+\x31\x2e\x32\x36\x30\x36\x34\x20\x30\x2e\x32\x35\x35\x38\x35\x33\
+\x2c\x30\x2e\x33\x39\x37\x31\x20\x30\x2e\x35\x37\x33\x37\x33\x38\
+\x2c\x30\x2e\x37\x36\x31\x31\x31\x20\x30\x2e\x39\x36\x38\x39\x37\
+\x33\x2c\x31\x2e\x30\x31\x39\x38\x33\x20\x30\x2e\x35\x35\x37\x33\
+\x36\x39\x2c\x30\x2e\x33\x36\x34\x38\x36\x20\x31\x2e\x32\x34\x37\
+\x33\x31\x34\x2c\x30\x2e\x35\x30\x31\x32\x32\x20\x31\x2e\x39\x31\
+\x30\x39\x32\x2c\x30\x2e\x34\x34\x32\x38\x35\x20\x30\x2e\x36\x36\
+\x33\x36\x30\x36\x2c\x2d\x30\x2e\x30\x35\x38\x34\x20\x31\x2e\x33\
+\x30\x31\x39\x36\x31\x2c\x2d\x30\x2e\x33\x30\x32\x37\x33\x20\x31\
+\x2e\x38\x37\x33\x39\x34\x31\x2c\x2d\x30\x2e\x36\x34\x34\x32\x32\
+\x20\x31\x2e\x31\x34\x33\x39\x36\x31\x2c\x2d\x30\x2e\x36\x38\x32\
+\x39\x39\x20\x32\x2e\x30\x31\x34\x36\x30\x38\x2c\x2d\x31\x2e\x37\
+\x32\x39\x32\x20\x32\x2e\x39\x35\x33\x35\x39\x37\x2c\x2d\x32\x2e\
+\x36\x37\x34\x34\x31\x20\x30\x2e\x39\x38\x34\x39\x37\x38\x2c\x2d\
+\x30\x2e\x39\x39\x31\x35\x20\x32\x2e\x30\x38\x34\x38\x35\x34\x2c\
+\x2d\x31\x2e\x39\x30\x30\x30\x38\x20\x33\x2e\x33\x36\x38\x35\x30\
+\x39\x2c\x2d\x32\x2e\x34\x35\x32\x37\x39\x20\x31\x2e\x32\x38\x33\
+\x36\x35\x36\x2c\x2d\x30\x2e\x35\x35\x32\x37\x31\x20\x32\x2e\x37\
+\x37\x34\x36\x32\x35\x2c\x2d\x30\x2e\x37\x32\x31\x37\x32\x20\x34\
+\x2e\x30\x38\x34\x39\x30\x34\x2c\x2d\x30\x2e\x32\x33\x35\x34\x38\
+\x20\x30\x2e\x38\x36\x37\x38\x36\x36\x2c\x30\x2e\x33\x32\x32\x30\
+\x36\x20\x31\x2e\x36\x31\x34\x32\x31\x35\x2c\x30\x2e\x39\x31\x30\
+\x36\x35\x20\x32\x2e\x32\x36\x30\x38\x34\x35\x2c\x31\x2e\x35\x37\
+\x33\x30\x36\x20\x30\x2e\x36\x34\x36\x36\x33\x2c\x30\x2e\x36\x36\
+\x32\x34\x31\x20\x31\x2e\x32\x30\x36\x31\x36\x32\x2c\x31\x2e\x34\
+\x30\x33\x35\x37\x20\x31\x2e\x38\x30\x38\x31\x30\x36\x2c\x32\x2e\
+\x31\x30\x36\x38\x33\x20\x30\x2e\x36\x30\x31\x39\x34\x34\x2c\x30\
+\x2e\x37\x30\x33\x32\x36\x20\x31\x2e\x32\x35\x36\x33\x38\x38\x2c\
+\x31\x2e\x33\x37\x37\x30\x31\x20\x32\x2e\x30\x34\x34\x37\x39\x33\
+\x2c\x31\x2e\x38\x36\x32\x31\x32\x20\x30\x2e\x37\x38\x38\x34\x30\
+\x35\x2c\x30\x2e\x34\x38\x35\x31\x31\x20\x31\x2e\x37\x32\x37\x37\
+\x33\x2c\x30\x2e\x37\x37\x31\x20\x32\x2e\x36\x34\x34\x38\x33\x34\
+\x2c\x30\x2e\x36\x34\x35\x31\x36\x20\x30\x2e\x35\x35\x31\x39\x33\
+\x34\x2c\x2d\x30\x2e\x30\x37\x35\x37\x20\x31\x2e\x30\x37\x37\x33\
+\x32\x38\x2c\x2d\x30\x2e\x32\x39\x37\x30\x36\x20\x31\x2e\x35\x34\
+\x38\x34\x39\x35\x2c\x2d\x30\x2e\x35\x39\x34\x33\x32\x20\x30\x2e\
+\x34\x37\x31\x31\x36\x37\x2c\x2d\x30\x2e\x32\x39\x37\x32\x37\x20\
+\x30\x2e\x38\x39\x31\x30\x31\x33\x2c\x2d\x30\x2e\x36\x36\x39\x34\
+\x31\x20\x31\x2e\x32\x38\x34\x31\x30\x36\x2c\x2d\x31\x2e\x30\x36\
+\x34\x31\x38\x20\x30\x2e\x37\x38\x36\x31\x38\x36\x2c\x2d\x30\x2e\
+\x37\x38\x39\x35\x35\x20\x31\x2e\x34\x38\x30\x39\x38\x35\x2c\x2d\
+\x31\x2e\x36\x38\x32\x20\x32\x2e\x33\x38\x30\x33\x30\x37\x2c\x2d\
+\x32\x2e\x33\x33\x39\x37\x39\x20\x31\x2e\x31\x37\x35\x30\x34\x33\
+\x2c\x2d\x30\x2e\x38\x35\x39\x34\x36\x20\x32\x2e\x36\x37\x32\x31\
+\x30\x31\x2c\x2d\x31\x2e\x32\x36\x37\x32\x20\x34\x2e\x31\x32\x30\
+\x36\x38\x38\x2c\x2d\x31\x2e\x31\x32\x32\x33\x33\x20\x31\x2e\x34\
+\x34\x38\x35\x38\x36\x2c\x30\x2e\x31\x34\x34\x38\x37\x20\x32\x2e\
+\x38\x33\x35\x32\x34\x36\x2c\x30\x2e\x38\x34\x31\x30\x31\x20\x33\
+\x2e\x38\x31\x36\x38\x31\x32\x2c\x31\x2e\x39\x31\x36\x31\x35\x22\
+\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\
+\x68\x31\x36\x30\x39\x39\x2d\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\
+\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\
+\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\
+\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\
+\x61\x70\x65\x3a\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\x3d\
+\x22\x23\x70\x61\x74\x68\x2d\x65\x66\x66\x65\x63\x74\x31\x36\x31\
+\x30\x31\x2d\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3a\x6f\x72\x69\x67\x69\x6e\x61\x6c\x2d\
+\x64\x3d\x22\x6d\x20\x39\x2e\x34\x33\x37\x38\x39\x39\x2c\x32\x35\
+\x36\x2e\x35\x31\x38\x36\x37\x20\x63\x20\x32\x2e\x31\x32\x32\x39\
+\x33\x37\x2c\x2d\x31\x2e\x35\x39\x32\x32\x34\x20\x34\x2e\x35\x32\
+\x32\x31\x32\x33\x2c\x2d\x34\x2e\x32\x31\x32\x36\x37\x20\x34\x2e\
+\x36\x35\x31\x35\x31\x33\x2c\x2d\x31\x2e\x35\x36\x32\x35\x37\x20\
+\x30\x2e\x32\x32\x39\x32\x34\x31\x2c\x34\x2e\x36\x39\x35\x32\x31\
+\x20\x32\x2e\x37\x37\x37\x36\x33\x32\x2c\x2d\x30\x2e\x32\x33\x39\
+\x35\x32\x20\x34\x2e\x39\x30\x30\x39\x39\x31\x2c\x30\x2e\x32\x38\
+\x38\x38\x38\x20\x32\x2e\x31\x32\x32\x36\x31\x38\x2c\x30\x2e\x35\
+\x33\x30\x38\x35\x20\x32\x2e\x35\x38\x36\x35\x33\x38\x2c\x32\x2e\
+\x35\x32\x35\x39\x33\x20\x33\x2e\x31\x31\x37\x30\x37\x33\x2c\x34\
+\x2e\x36\x34\x38\x38\x36\x20\x30\x2e\x35\x33\x30\x35\x33\x35\x2c\
+\x32\x2e\x31\x32\x32\x39\x34\x20\x34\x2e\x34\x36\x35\x38\x30\x35\
+\x2c\x2d\x31\x2e\x39\x38\x31\x38\x33\x20\x36\x2e\x37\x33\x38\x34\
+\x35\x38\x2c\x2d\x32\x2e\x38\x37\x35\x37\x38\x20\x32\x2e\x34\x35\
+\x37\x38\x32\x33\x2c\x2d\x30\x2e\x39\x36\x36\x37\x39\x20\x34\x2e\
+\x38\x33\x36\x31\x31\x31\x2c\x2d\x33\x2e\x30\x34\x32\x32\x35\x20\
+\x37\x2e\x34\x35\x33\x34\x31\x33\x2c\x2d\x32\x2e\x36\x38\x38\x32\
+\x37\x20\x33\x2e\x35\x34\x32\x32\x35\x34\x2c\x30\x2e\x34\x37\x39\
+\x30\x38\x20\x35\x2e\x31\x38\x34\x37\x36\x33\x2c\x36\x2e\x32\x35\
+\x37\x33\x36\x20\x38\x2e\x37\x35\x38\x35\x37\x38\x2c\x36\x2e\x31\
+\x38\x37\x31\x37\x20\x32\x2e\x31\x38\x39\x34\x37\x32\x2c\x2d\x30\
+\x2e\x30\x34\x33\x20\x32\x2e\x35\x35\x39\x35\x39\x34\x2c\x2d\x32\
+\x2e\x39\x33\x37\x30\x36\x20\x35\x2e\x32\x31\x32\x39\x30\x38\x2c\
+\x2d\x33\x2e\x39\x39\x38\x32\x39\x20\x32\x2e\x36\x35\x33\x33\x31\
+\x35\x2c\x2d\x31\x2e\x30\x36\x31\x32\x33\x20\x35\x2e\x38\x31\x34\
+\x38\x37\x38\x2c\x2d\x30\x2e\x32\x36\x37\x37\x33\x20\x37\x2e\x39\
+\x33\x37\x35\x2c\x30\x2e\x37\x39\x33\x38\x32\x22\x0d\x0a\x20\x20\
+\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\
+\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x73\x63\x73\x61\x61\x61\
+\x63\x63\x22\x20\x2f\x3e\x0d\x0a\x20\x20\x3c\x2f\x67\x3e\x0d\x0a\
+\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
 \x00\x00\x10\x66\
 \x00\
 \x00\xbb\xd8\x78\x9c\xed\x5d\x59\x8f\xe3\x38\x92\x7e\x1f\x60\xfe\
@@ -16864,6 +17439,182 @@ qt_resource_data = "\
 \x80\xb0\xf9\xd7\x31\x6a\x4a\x1d\x80\x24\x5a\x6d\x4a\x3e\x15\x7e\
 \x52\xb2\x4c\x1a\xbe\xbf\x9d\xfc\x13\x7e\x67\xee\xd2\xfc\x2f\xc5\
 \xfc\x7c\x0d\xdf\xff\x00\xa2\xbf\x0b\xd2\
+\x00\x00\x0a\xd9\
+\x00\
+\x00\x26\xeb\x78\x9c\xed\x5a\xeb\x6e\xdb\xd8\x11\xfe\xbf\xc0\xbe\
+\x03\xab\xa0\xd8\x04\x15\xa9\x73\xbf\xc8\x76\x16\xd8\x06\x0b\x04\
+\xd8\x6c\x8b\x36\xbd\xfe\xa3\x29\xca\x66\x23\x91\x02\x49\x59\xf6\
+\xbe\x5a\xdf\xa1\xcf\xd4\x6f\x0e\x25\x8a\xb2\xe4\xc4\x41\x1c\x24\
+\x0b\x2c\x81\xc0\xd4\x9c\x39\x73\xe6\xf6\xcd\xcc\x91\x72\xfe\xfd\
+\xed\x72\x11\xdd\xe4\x75\x53\x54\xe5\xc5\x88\x27\x6c\x14\xe5\x65\
+\x56\xcd\x8a\xf2\xea\x62\xf4\xb7\xb7\x3f\xc6\x6e\x14\x35\x6d\x5a\
+\xce\xd2\x45\x55\xe6\x17\xa3\xb2\x1a\x7d\xff\xf2\xdb\x6f\xce\x7f\
+\x17\xc7\xd1\x1f\xeb\x3c\x6d\xf3\x59\xb4\x29\xda\xeb\xe8\x75\xf9\
+\xae\xc9\xd2\x55\x1e\x3d\xbf\x6e\xdb\xd5\x74\x32\xd9\x6c\x36\x49\
+\xb1\x25\x26\x55\x7d\x35\x79\x11\xc5\x31\xb6\x62\x73\x73\x73\xf5\
+\xed\x37\x51\x14\xe1\xec\xb2\x99\xce\xb2\x8b\xd1\x76\xcf\x6a\x5d\
+\x2f\x02\xef\x2c\x9b\xe4\x8b\x7c\x99\x97\x6d\x33\xe1\x09\x9f\x8c\
+\x06\xfc\xd9\x9e\x3f\x23\x0d\x8a\x9b\x3c\xab\x96\xcb\xaa\x6c\xc2\
+\xd6\xb2\x79\x36\xe4\xae\x67\xf3\x9e\x9d\x54\xda\xc8\xc0\xc5\xbd\
+\xf7\x13\x26\x26\x42\xc4\xe0\x88\x9b\xbb\xb2\x4d\x6f\xe3\x7b\x7b\
+\xa1\xe7\xa9\xbd\x82\x31\x36\xc1\xda\x80\xf5\x91\x6c\xd3\x06\x9e\
+\x5d\xe1\x5f\xcf\xbf\x23\x24\x4d\xb5\xae\xb3\x7c\x8e\x8d\x79\x52\
+\xe6\xed\xe4\xd5\xdb\x57\xfd\x62\xcc\x92\x59\x3b\x1b\xca\xd9\x39\
+\xf6\xe0\xdc\x03\x6f\x97\xe9\x32\x6f\x56\x69\x96\x37\x93\x1d\xbd\
+\x13\xb0\x29\x66\xed\xf5\xc5\x48\x68\xd3\x7d\xbe\xce\x8b\xab\xeb\
+\x76\x40\xb8\x29\xf2\xcd\x0f\xd5\xed\xc5\x88\x45\x2c\x32\x36\xb1\
+\x12\x8f\xde\xbf\x6d\xb9\xf6\x39\xc3\x3b\x4a\x31\xbb\x18\xc1\x5c\
+\x61\x8c\xdf\x12\xb6\xe7\x4e\x7b\x5e\x96\x78\x91\x88\x48\x67\x32\
+\x77\x6c\x36\x8e\x04\xe3\x36\x66\x2e\x66\xdb\xa3\x77\x06\x4f\x67\
+\x55\x46\x06\x5c\x8c\x96\xaf\xb3\xaa\x7c\x9b\x2f\x57\x55\x9d\x2e\
+\xfe\x5c\x57\xf3\x62\x91\xcb\x57\x09\xb9\xf5\x25\x6d\x39\x9f\xe5\
+\xf3\x26\xec\xed\x14\xa0\x8f\xd0\x40\x76\xab\x58\x5f\xa6\xf5\xbb\
+\xbc\xde\x72\x0c\x74\x2a\x9a\xa6\xad\xb2\x77\x17\xa3\xb6\x5e\x6f\
+\x3d\x43\x4f\xd3\xde\x2d\x70\x6c\x05\x95\xe7\x8b\x6a\x33\xbd\x29\
+\x9a\xe2\x72\x31\x60\xa0\x43\x3a\x99\x5c\x73\x21\xf6\x0b\x75\x3e\
+\xff\x27\x2c\x3c\x20\xfc\xeb\x80\x50\xd5\x05\x12\xfa\x62\x94\xae\
+\xdb\x6a\x74\xac\x51\xd0\x87\xc4\xbf\xad\x8b\xb4\xbc\x5a\xe4\x7f\
+\x5a\xb7\x6f\x76\x76\xc0\x92\x55\xda\x5e\xf7\xbb\xa2\xa8\xad\xd3\
+\xb2\x41\xbe\x2c\xe1\xf5\x2c\x5d\xe4\xcf\x59\xa2\x5e\x8c\x06\x0c\
+\x5b\x53\xe0\xb1\xc5\xf4\x19\x0b\xcf\x19\x7d\x88\x2b\xa4\x45\xd1\
+\xde\x4d\x79\xf7\xb1\x5e\x2f\xf2\x69\x7e\x93\x97\xd5\x6c\x76\xd6\
+\xb4\x75\xf5\x2e\xef\xf9\xbb\x8f\x71\xc8\x99\x29\xaa\x43\xf7\xc8\
+\x55\xbb\x5b\xe9\x65\x0d\x4f\x86\x0d\x6f\x22\x9d\x58\x3b\x66\x51\
+\x2c\x12\xe7\xc6\x3a\xfa\x7b\x14\xeb\xe8\xdf\x43\x2e\x32\x95\x6c\
+\x22\x3f\xb2\x83\x85\x9d\x47\x10\xfa\x32\xcf\xda\xaa\x8e\xb3\x75\
+\x7d\x93\xb6\xeb\x3a\x27\x87\x46\x93\x5d\x70\x27\x5d\x24\x3e\x14\
+\xeb\x23\xcf\xbe\x2e\xdf\x7c\x28\x2c\x47\xd1\x3b\x8a\xef\x3d\x81\
+\xb1\x8c\xf9\xc7\xe4\xd1\xe9\x44\x7c\x30\xdc\x1f\x72\xca\x09\xc7\
+\x2a\xa3\x59\xec\x62\xff\xf1\xa1\xf9\x72\xa9\x73\x94\xd5\x71\x48\
+\xeb\x4f\x0f\x79\x00\xd3\x93\xc6\x9c\x24\x22\xe8\xee\xab\x0b\xba\
+\x8f\x4d\x6c\x7e\xd5\x41\x7f\x4f\xcc\xcf\x27\x54\xe2\xbb\xd7\xbe\
+\x5d\x50\xaf\x98\x51\xdf\x1a\x74\x82\xcb\xb4\xe9\x3d\xbf\x4a\xaf\
+\x30\x23\x2c\xaa\xfa\x62\xf4\x6c\x1e\x9e\xdd\xca\x65\x55\xcf\xf2\
+\x7a\xb7\x66\xc2\x73\xb8\xb6\xd5\xb8\x1b\x8e\x76\xf2\x77\x71\x21\
+\xc1\x3d\x03\x7b\x80\xa1\xb9\x4e\x67\xd5\x06\x1d\xf6\x68\xf5\x97\
+\xaa\x82\xcd\x22\xe1\x82\x33\x2f\xdd\xd1\x7a\x86\x2e\xcc\xa5\x4b\
+\x38\x17\x9a\x1f\xaf\x92\x52\xe2\x78\x17\x9a\xe7\x9a\x46\xa7\x78\
+\x5d\x16\x2d\x46\x93\xe5\xf2\x78\xeb\xba\xae\x89\x63\x91\xde\xe5\
+\x30\x3c\xfc\xe9\x0f\x68\xae\xab\xcd\x55\x4d\x3e\x1c\xf6\xc6\xad\
+\xb0\xd5\xed\x91\xb0\x4d\x51\xc2\xbe\x78\x3b\x58\x40\xa3\x63\x37\
+\x6c\x59\x76\xb3\x86\xd5\xe6\x21\x96\xdb\x41\x5e\xdf\x5f\xbb\x7b\
+\xcf\xda\x32\xbd\x2d\x96\xc5\x2f\x39\xb4\xe6\x7d\xf3\xef\x99\xc8\
+\x9c\x3e\xe1\xda\x3b\x1a\x9c\x6e\xef\x88\x78\x08\x6d\xa2\x48\x63\
+\xfa\x16\x73\x3e\x39\x4e\xb1\x6e\x61\x99\xb7\xe9\x2c\x6d\xd3\x41\
+\xc2\xed\x48\x82\x52\x68\xa7\x01\x86\xcb\xe9\x5f\x5e\xfd\xb8\x47\
+\x78\x96\x4d\xff\x51\xd5\xef\x06\xd9\x4f\x2c\xe9\x65\xb5\x86\x5f\
+\xf6\x95\x80\x26\x9b\x6c\x4a\x98\x48\xdb\x97\xc5\x12\x59\x44\xa3\
+\xe4\x1f\x30\xfd\x01\x00\xfd\xc2\x21\x37\xd9\x35\x90\xdb\x49\xae\
+\xf3\x6e\xb2\x3c\x39\x63\xcf\xb2\x65\x41\xbb\x26\x7f\x6d\x81\xec\
+\xd7\x74\xcc\x1e\x76\xbd\xd8\xa2\x5d\xe4\x2f\xc3\xb1\xdd\x6b\x6f\
+\xcb\x64\x6b\x4c\x8f\xd3\xa1\xb5\x40\xed\xd6\x21\xdd\xc7\xab\xfb\
+\x81\x5b\xa4\x97\xf9\xe2\x62\xf4\x13\xe5\x5e\x74\x9c\xdd\x57\x75\
+\xb5\x5e\x2d\xab\x59\xbe\x4d\xcf\xd1\xc0\xd5\x87\xf9\x3a\x28\x1f\
+\xe1\x75\x81\x5b\xc9\x73\x36\x8e\x85\xf0\x09\x05\xc3\xbc\xe8\xc3\
+\x71\x50\x5f\x87\x05\xaf\xc4\xed\xe6\xa3\xcb\x9b\xde\x11\x16\x05\
+\xaa\x73\xba\x9a\x5e\xae\xdb\x76\x48\xfb\x4f\x55\x94\x53\xb8\x38\
+\xaf\x77\xd4\xf0\x61\x81\x4c\x6d\xa7\x6a\x47\x9b\xa5\xa8\x10\x75\
+\x9d\xde\x75\x5a\xdc\xaf\x94\x67\x5d\xf5\x8b\x71\x0d\xab\xdb\x29\
+\xa2\xf7\xfc\xd9\xbd\xb1\xe3\xc5\x8e\x25\x2f\x67\x87\x0c\xbb\x1e\
+\x35\x18\x0c\x29\x53\x23\x95\x18\x66\xac\x37\x7a\x2c\x14\x4f\x94\
+\xf5\x3e\xba\x89\x94\x4c\x8c\x36\xc2\x44\x3f\x45\x06\x53\x3d\x77\
+\x16\xcb\x4e\x27\x52\x3b\x79\x88\x13\x72\xa3\xb4\x0c\xb3\xfb\x70\
+\xba\x78\x74\xb7\xda\x83\x0a\xe1\xa5\xfc\x43\x5d\xc9\xb2\x6c\x50\
+\xf1\x9f\x36\x4e\xa6\x23\x8b\xcf\x19\x2e\xa2\x56\xf3\x79\x93\xb7\
+\x53\xf6\x60\x08\xfb\xf8\x0c\x6e\x10\x87\xa1\x79\x33\x0c\x8d\x0b\
+\xef\x88\x8d\xe6\x89\xd7\x02\x9d\x60\x2c\xb4\x4e\x94\x34\x8c\x1f\
+\x07\x04\xd2\x18\x7b\xb2\x68\x0c\x82\xd1\xe6\xb7\x6d\xcf\x8d\x0a\
+\x34\x0d\xf7\x4a\x1c\x8a\xda\x92\xd7\x37\xc7\xb7\xa7\x79\x85\xd6\
+\x12\xde\x21\x13\x85\x6a\x71\x16\x28\x9b\x50\xfd\x0f\x48\x0d\x2a\
+\xf6\x94\xb3\x04\x19\x86\x87\x89\xd5\xed\x19\x05\x62\xdb\x28\xa6\
+\x68\x7b\xbf\xef\x18\xe7\xe9\xb2\x58\xdc\x4d\x1b\xc0\x3b\xc6\xa1\
+\xc5\xfc\x6c\x91\xb7\x2d\xa1\x82\x7c\x5c\x5e\x4d\x19\xb6\x6e\xd0\
+\xb0\x0f\x08\xef\x9b\x65\xb6\x29\x33\x8c\x61\x97\x2f\x0c\x45\x43\
+\x91\x42\xa4\xcd\x47\x67\xcc\x89\x01\x07\x2d\x4d\xdb\x44\x1b\xe7\
+\x77\x97\x67\x7a\xee\xe8\xca\x2d\x12\xab\x85\x50\x87\xc1\x24\x7f\
+\x73\xae\x8d\x8d\x45\xac\x62\x36\x7a\x79\xde\xc2\xa8\x72\x38\xaa\
+\xed\x42\x56\x57\xe4\x6f\xd2\xe4\xfe\x2c\x18\xb6\x90\x14\x1d\xfb\
+\xd8\x8b\xf8\x60\xe0\x3a\xad\xd1\x43\x3a\x7d\x28\xae\x37\x29\x55\
+\x9b\xf6\x83\xb1\x6e\xeb\xbc\xcd\xae\x8f\xe3\x6f\x12\xa9\x3c\x3d\
+\x14\xb1\x41\xb0\x31\x46\xcf\xd2\x32\x3d\x8b\x77\xa9\x1c\x77\x7b\
+\x56\x79\x56\xcc\x8b\x2c\x6d\x8b\xaa\x9c\x7e\xb7\xe5\x1a\x47\x3f\
+\x07\xb9\xdf\x1d\xe8\x84\x20\x5d\x85\x8c\x6f\x4e\x69\x1c\x43\xe8\
+\xe9\x85\x12\x03\x54\x5d\x64\x07\x6b\xf3\x3c\x48\x42\xfa\xb5\x2d\
+\x12\xac\xdf\x48\xe1\x8a\x53\x1c\x54\x4e\x43\x89\x3e\xdb\xd4\x05\
+\x31\xc4\xd4\xbc\xa6\x8b\x3a\x6e\x2f\xb7\x3c\x65\x76\x5d\xd5\x5b\
+\xa6\x07\x53\x6e\xf4\xb2\x3d\x9f\x84\xe8\xa1\xe7\xd2\xbe\xa7\x86\
+\xe1\x53\x86\xeb\xb1\x60\x7d\x7f\x08\xf7\x8c\x5f\x51\x14\x1f\x53\
+\x5f\x1e\x15\xe9\xaf\xa6\x08\x31\x00\x9b\x59\xcd\xf5\xbd\x2a\x24\
+\x75\x22\xa4\xe4\xf6\xa1\x2a\xa4\x62\x75\xa2\x06\x9d\xde\xf9\xe0\
+\x41\x1f\x51\xb4\x18\xe7\x5f\xbe\xf8\xfc\xba\x93\xf7\x53\x4b\xd0\
+\xab\x9f\x4f\xd7\xa0\x47\xcc\x65\x8f\xf9\xb6\x60\x26\xdd\x4c\xcf\
+\xbf\xcc\x38\x7d\x6f\x12\x16\x98\x6f\x99\x16\xc6\x8e\x85\xc5\x94\
+\xc5\xa4\x77\x51\x16\xe1\xae\xef\xb5\x57\x62\x1c\x23\x97\x2d\xde\
+\x41\x91\xdc\x58\x3e\x8e\x65\x22\xa5\xe3\x36\x12\x89\x72\x9c\x19\
+\x22\x58\x9a\xd7\xc0\xc1\x15\xc6\x36\x4e\x7b\x98\x57\x96\xb6\x58\
+\x6b\xe5\x18\x0c\xb8\xdc\x63\x03\x12\x5b\x58\x33\x16\x38\x46\x49\
+\x8f\x75\xa1\xb4\xe7\xe1\x10\xe3\x30\xd5\x45\xf4\x65\x17\xb7\xc2\
+\xe1\xee\x02\x0d\x30\xff\x29\x8c\x83\x1c\xc2\xb9\x02\x49\x25\xcc\
+\xe2\xc4\x88\x25\xce\x08\xaf\x2d\xed\x93\x46\x7a\x11\xd4\x65\xc6\
+\xa8\xa0\xae\x60\x12\x04\x63\x15\xdb\x8a\xc6\xa0\xee\x23\x99\x08\
+\x6e\x31\xd2\x43\x1b\x28\x27\x55\x67\x90\x83\x89\xe0\xd0\xc2\x3a\
+\x9c\x24\xad\x14\x38\x9c\x27\x8e\x2b\x43\x06\x29\xa5\x84\x77\xe0\
+\x90\x9e\x2b\x87\x83\xa5\x96\x58\x1a\x63\x2e\xe5\x56\xd2\x31\x56\
+\x09\xe2\x50\x90\xae\x8c\x20\x6d\x85\x15\x66\x8c\xba\xe0\x39\x44\
+\x88\x04\x03\xab\xe4\x90\x49\x35\x01\x66\x44\x3a\xd1\xde\x33\x17\
+\x28\x4a\x19\x1d\xfc\x82\x49\x24\xa8\x2a\x10\x09\xf2\xac\xd5\x9a\
+\x7b\x8d\x73\x9d\x33\x5c\x42\xaa\xe5\xb0\x4f\x82\xc0\xa5\xb1\x1a\
+\x1c\x5a\x59\x81\x73\xb0\x87\xe3\x7c\x58\x67\xb9\x50\x8a\x43\x11\
+\xe4\xb0\xd2\x91\x49\xb0\xc3\x79\xb5\xd5\x84\x82\x81\x92\x24\x83\
+\x31\xc2\x4a\x4b\xaa\x69\x26\x98\xa1\x53\x84\xd0\x88\x70\xa7\xbb\
+\xf6\x63\x46\xbe\x91\x8e\xe1\x95\xe4\x93\x97\xc0\x8d\x00\x31\x4e\
+\xce\xf2\xc2\x90\x4a\x5a\xc2\x6d\x0a\xc1\x74\xd2\x6a\x7b\x62\x1c\
+\xf7\x8c\x3b\xd4\x4e\xfd\x74\x17\xa4\xfe\xf9\xb8\x9b\xd2\x63\x10\
+\x99\x39\xcb\xa5\x3d\x44\xe4\x67\xbd\x2f\x3d\x84\x47\x6e\x81\x47\
+\x66\x15\xe1\xd1\xd0\x2f\x4e\xc2\x07\x3c\x02\x9d\x40\xdd\x10\x8f\
+\x5a\x38\x26\xc4\x10\x90\xce\x7a\xca\xdf\x01\x22\xa5\x54\x5c\xcb\
+\x01\x22\xb5\x77\x4e\xf8\x3d\x24\xc1\x80\x9c\x1b\x40\x52\xa1\x08\
+\x6a\x7d\x08\x49\xa0\x44\xf9\x03\x4c\x3a\xcd\xa4\x1d\x62\x92\xbe\
+\xeb\xe4\xd8\x7b\x88\x49\xa7\x58\x50\x50\x6b\xeb\x39\x55\x0c\x0e\
+\x1a\xb2\x16\xd9\xa3\x39\xb2\x34\x5c\x7c\x70\x0c\xed\x42\xf6\x7a\
+\x42\x94\x02\x92\x98\x0b\x0a\xa0\x13\x0a\x82\x87\x37\xac\xe3\x01\
+\x40\x1d\x49\x16\xdc\x23\x0d\x91\x8c\x0a\x19\x4b\x04\x87\x76\x8b\
+\x4d\xe0\x65\x42\x06\x04\x29\xe5\x3a\xbb\x8c\x32\x9c\x0c\xc7\x4e\
+\x1c\x8d\x17\xa8\x22\x01\x18\x8e\xdb\xa2\x03\x3c\x18\xf3\x82\x13\
+\xc4\x84\xe0\x46\x8c\xc3\x95\x53\x63\xdd\x03\xda\xe1\x50\xa8\x23\
+\x1c\xf9\x01\x8d\x1e\x98\x1e\x73\x99\x28\xe3\x42\x49\xd1\x46\x82\
+\x07\x04\xae\xbd\x90\xe4\x4e\x67\x50\x42\xf7\x50\x46\x04\x60\x8f\
+\x56\x64\x32\x10\x2b\x49\xb0\x11\x9c\x03\x98\x31\x90\x89\x92\x44\
+\xbb\xbc\xc6\x85\xb6\xc7\x32\xa0\x6b\x10\x36\x3b\xf6\x89\x0f\x3e\
+\xf1\x09\xaa\xb2\xa1\x83\xa8\x54\x31\xae\x43\xdd\xf1\xa8\x44\x03\
+\x30\xa3\x2c\x18\xe6\xc9\xd9\x1c\x27\x93\x41\x28\x37\x86\xfb\x2e\
+\x3f\x00\x62\xf2\x01\xa5\x8c\xdc\x83\x1a\x06\x84\x6a\x85\x20\xc2\
+\x6b\xb8\x66\x27\xca\xa3\x5e\x99\x31\xa9\xe0\xec\x89\x2f\x3d\x7a\
+\x50\xc7\xea\x09\x61\x9d\xa6\xe9\xe7\xc2\x35\x4c\x16\xf7\xbf\x10\
+\x91\x5f\x02\xd7\x08\xa6\x91\x0e\xd0\x18\x0b\xc7\x29\x3b\xb6\x7d\
+\x16\x5d\x4a\xa3\x41\x0d\x81\xcd\x2d\x4a\x38\x91\x10\x1f\x80\x9e\
+\x80\x63\xa8\x9d\x75\x24\xe0\x38\xe0\xd4\xb2\xae\xfe\x07\x60\xa3\
+\xcf\x20\x01\xc6\x94\xb5\xc0\x25\x02\xcb\xb6\x9d\x97\x01\x5d\x32\
+\xe0\x5e\x4a\x73\x80\x6a\x01\x5d\x90\x74\xe8\xff\x4e\x18\x4d\xc1\
+\x37\x4a\x50\xa6\x0a\x87\xfe\x4a\x98\x80\x26\x4c\x1a\x31\x84\xb4\
+\x91\x8c\x3a\x88\xe1\xe8\xd2\x94\xee\x1a\xad\x99\x92\x50\xa1\xc3\
+\xb0\x04\xd8\x16\x32\x24\x32\xb2\x13\x89\x4b\x14\x25\xc2\x88\xc0\
+\x76\x58\x86\x45\xc8\x40\xc2\x25\x0b\x70\x47\x87\xf3\x9c\x64\x30\
+\xbc\x10\x5e\x3c\xca\x0f\x07\x2e\x51\x97\x02\x0e\x05\xea\x95\x24\
+\x02\xc8\x36\x80\x1f\xd5\x44\x90\x16\xcc\x5b\x2a\x21\x16\x15\x4d\
+\xfa\x20\x93\x78\xa9\xb1\x19\x65\xdd\x2e\xf3\x43\x5f\xf7\xc6\x8a\
+\x3d\x96\xe1\x2d\x87\xf1\x66\x2c\xc8\xfd\x18\x25\x00\x39\x9c\x85\
+\xea\x40\x15\x0e\xac\x84\x49\x58\xaa\x38\x1f\x22\x59\x61\x0f\x84\
+\x58\x52\xd9\x52\xab\x47\xc5\x63\x24\xd6\x81\x19\x35\x06\xaa\x6a\
+\x80\xd0\x0d\x80\x6c\x51\x97\x51\x39\x51\x20\x24\x4a\x05\xe5\x80\
+\x46\x97\x41\xef\xc7\x66\x4c\x9b\x64\x8d\x17\x16\x5c\x03\x20\x7b\
+\x14\x2e\xbb\xc7\x31\x0a\x94\x30\xde\xf3\x21\x8e\x2d\xe6\x28\xee\
+\x87\x38\x76\x68\x5f\x3d\x8c\x0d\xbc\x0c\x03\xfd\x07\x61\xfc\x99\
+\x21\xfc\xdb\xf7\x66\x9f\x7c\x65\xa5\xef\xa1\x11\x7c\x25\x0e\x6f\
+\xac\x9e\x7a\x87\x92\x27\x2e\xac\x98\x46\xe5\xc9\xeb\xea\xa3\x6f\
+\x9f\x90\xc0\x0f\x7f\x33\x3f\xad\xc7\x03\x9a\xfc\x76\x5f\xfd\x12\
+\xf7\xd5\xff\xfd\xf7\xc4\x7d\xf5\x7c\x72\x45\xff\x55\x8d\x7e\x38\
+\xc3\xdf\xff\x03\x20\xb6\x27\x00\
 \x00\x00\x07\x19\
 \x3c\
 \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -18420,6 +19171,11 @@ qt_resource_name = "\
 \x00\x70\
 \x00\x69\x00\x63\x00\x6b\x00\x72\x00\x61\x00\x73\x00\x74\x00\x65\x00\x72\x00\x73\x00\x70\x00\x65\x00\x63\x00\x74\x00\x72\x00\x75\
 \x00\x6d\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x1a\
+\x0b\xa7\x07\x07\
+\x00\x6d\
+\x00\x49\x00\x63\x00\x6f\x00\x6e\x00\x54\x00\x65\x00\x6d\x00\x70\x00\x6f\x00\x72\x00\x61\x00\x6c\x00\x50\x00\x72\x00\x6f\x00\x66\
+\x00\x69\x00\x6c\x00\x65\x00\x32\x00\x44\x00\x2e\x00\x73\x00\x76\x00\x67\
 \x00\x12\
 \x0e\x9b\x32\xa7\
 \x00\x6d\
@@ -18562,6 +19318,11 @@ qt_resource_name = "\
 \x00\x49\
 \x00\x63\x00\x6f\x00\x6e\x00\x54\x00\x69\x00\x6d\x00\x65\x00\x53\x00\x65\x00\x72\x00\x69\x00\x65\x00\x73\x00\x2e\x00\x73\x00\x76\
 \x00\x67\
+\x00\x1a\
+\x0b\xb7\x07\x07\
+\x00\x6d\
+\x00\x49\x00\x63\x00\x6f\x00\x6e\x00\x54\x00\x65\x00\x6d\x00\x70\x00\x6f\x00\x72\x00\x61\x00\x6c\x00\x50\x00\x72\x00\x6f\x00\x66\
+\x00\x69\x00\x6c\x00\x65\x00\x33\x00\x44\x00\x2e\x00\x73\x00\x76\x00\x67\
 \x00\x0c\
 \x06\xdd\x15\x87\
 \x00\x6d\
@@ -18609,81 +19370,83 @@ qt_resource_name = "\
 qt_resource_struct = "\
 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
-\x00\x00\x00\x26\x00\x02\x00\x00\x00\x4c\x00\x00\x00\x03\
-\x00\x00\x08\x1e\x00\x01\x00\x00\x00\x01\x00\x02\xde\x33\
-\x00\x00\x08\xcc\x00\x01\x00\x00\x00\x01\x00\x03\x34\xf6\
+\x00\x00\x00\x26\x00\x02\x00\x00\x00\x4e\x00\x00\x00\x03\
+\x00\x00\x08\x58\x00\x01\x00\x00\x00\x01\x00\x03\x02\x0a\
+\x00\x00\x09\x06\x00\x01\x00\x00\x00\x01\x00\x03\x58\xcd\
 \x00\x00\x01\xac\x00\x01\x00\x00\x00\x01\x00\x00\x68\xc0\
-\x00\x00\x06\x42\x00\x01\x00\x00\x00\x01\x00\x01\xe9\xbe\
-\x00\x00\x0c\x7e\x00\x01\x00\x00\x00\x01\x00\x04\x59\x3b\
-\x00\x00\x07\x66\x00\x01\x00\x00\x00\x01\x00\x02\x3f\x12\
-\x00\x00\x07\x84\x00\x01\x00\x00\x00\x01\x00\x02\xb3\x06\
+\x00\x00\x06\x42\x00\x01\x00\x00\x00\x01\x00\x01\xe7\x88\
+\x00\x00\x0c\xf2\x00\x01\x00\x00\x00\x01\x00\x04\x87\xef\
+\x00\x00\x07\xa0\x00\x01\x00\x00\x00\x01\x00\x02\x62\xe9\
+\x00\x00\x07\xbe\x00\x01\x00\x00\x00\x01\x00\x02\xd6\xdd\
 \x00\x00\x00\x36\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x0c\x10\x00\x01\x00\x00\x00\x01\x00\x04\x49\x32\
-\x00\x00\x07\x24\x00\x00\x00\x00\x00\x01\x00\x02\x36\xb1\
-\x00\x00\x0b\x90\x00\x01\x00\x00\x00\x01\x00\x04\x23\x6c\
-\x00\x00\x05\x6e\x00\x01\x00\x00\x00\x01\x00\x01\xc4\x20\
+\x00\x00\x0c\x84\x00\x01\x00\x00\x00\x01\x00\x04\x77\xe6\
+\x00\x00\x07\x5e\x00\x00\x00\x00\x00\x01\x00\x02\x5a\x88\
+\x00\x00\x0c\x04\x00\x01\x00\x00\x00\x01\x00\x04\x52\x20\
+\x00\x00\x05\x6e\x00\x01\x00\x00\x00\x01\x00\x01\xc1\xea\
 \x00\x00\x03\x9a\x00\x01\x00\x00\x00\x01\x00\x01\x2d\x57\
-\x00\x00\x09\xc0\x00\x01\x00\x00\x00\x01\x00\x03\x9f\x52\
-\x00\x00\x0a\xee\x00\x01\x00\x00\x00\x01\x00\x04\x05\xf6\
-\x00\x00\x0a\xce\x00\x01\x00\x00\x00\x01\x00\x03\xfd\x37\
-\x00\x00\x07\xf0\x00\x01\x00\x00\x00\x01\x00\x02\xd3\x2b\
+\x00\x00\x09\xfa\x00\x01\x00\x00\x00\x01\x00\x03\xc3\x29\
+\x00\x00\x0b\x28\x00\x01\x00\x00\x00\x01\x00\x04\x29\xcd\
+\x00\x00\x0b\x08\x00\x01\x00\x00\x00\x01\x00\x04\x21\x0e\
+\x00\x00\x08\x2a\x00\x01\x00\x00\x00\x01\x00\x02\xf7\x02\
 \x00\x00\x00\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x0d\
-\x00\x00\x05\xf8\x00\x00\x00\x00\x00\x01\x00\x01\xe2\x4f\
-\x00\x00\x0a\x1c\x00\x00\x00\x00\x00\x01\x00\x03\xb7\xb5\
-\x00\x00\x0b\xee\x00\x00\x00\x00\x00\x01\x00\x04\x44\xb9\
-\x00\x00\x07\xa0\x00\x01\x00\x00\x00\x01\x00\x02\xb8\x93\
-\x00\x00\x08\x6c\x00\x01\x00\x00\x00\x01\x00\x02\xf7\xfe\
+\x00\x00\x05\xf8\x00\x00\x00\x00\x00\x01\x00\x01\xe0\x19\
+\x00\x00\x0a\x56\x00\x00\x00\x00\x00\x01\x00\x03\xdb\x8c\
+\x00\x00\x0c\x62\x00\x00\x00\x00\x00\x01\x00\x04\x73\x6d\
+\x00\x00\x07\xda\x00\x01\x00\x00\x00\x01\x00\x02\xdc\x6a\
+\x00\x00\x08\xa6\x00\x01\x00\x00\x00\x01\x00\x03\x1b\xd5\
 \x00\x00\x03\x22\x00\x00\x00\x00\x00\x01\x00\x00\xfe\x33\
-\x00\x00\x0c\x4e\x00\x01\x00\x00\x00\x01\x00\x04\x50\x88\
-\x00\x00\x0a\x98\x00\x01\x00\x00\x00\x01\x00\x03\xee\xce\
-\x00\x00\x0b\x3a\x00\x00\x00\x00\x00\x01\x00\x04\x14\x32\
-\x00\x00\x08\xa0\x00\x01\x00\x00\x00\x01\x00\x03\x19\x5c\
+\x00\x00\x0c\xc2\x00\x01\x00\x00\x00\x01\x00\x04\x7f\x3c\
+\x00\x00\x0a\xd2\x00\x01\x00\x00\x00\x01\x00\x04\x12\xa5\
+\x00\x00\x0b\xae\x00\x00\x00\x00\x00\x01\x00\x04\x42\xe6\
+\x00\x00\x08\xda\x00\x01\x00\x00\x00\x01\x00\x03\x3d\x33\
 \x00\x00\x02\xa0\x00\x01\x00\x00\x00\x01\x00\x00\xcf\xab\
-\x00\x00\x05\x36\x00\x01\x00\x00\x00\x01\x00\x01\xb5\x58\
-\x00\x00\x0c\x98\x00\x01\x00\x00\x00\x01\x00\x04\x62\x19\
-\x00\x00\x06\xd4\x00\x01\x00\x00\x00\x01\x00\x02\x26\xaf\
+\x00\x00\x05\x36\x00\x01\x00\x00\x00\x01\x00\x01\xb3\x22\
+\x00\x00\x0d\x0c\x00\x01\x00\x00\x00\x01\x00\x04\x90\xcd\
+\x00\x00\x07\x0e\x00\x01\x00\x00\x00\x01\x00\x02\x4a\x86\
 \x00\x00\x03\xf4\x00\x01\x00\x00\x00\x01\x00\x01\x53\x52\
 \x00\x00\x01\x62\x00\x00\x00\x00\x00\x01\x00\x00\x41\xf1\
 \x00\x00\x00\xf6\x00\x01\x00\x00\x00\x01\x00\x00\x31\xf1\
-\x00\x00\x08\x8c\x00\x00\x00\x00\x00\x01\x00\x03\x02\x40\
-\x00\x00\x0b\x58\x00\x01\x00\x00\x00\x01\x00\x04\x1b\x4f\
-\x00\x00\x09\xa4\x00\x01\x00\x00\x00\x01\x00\x03\x7b\x68\
-\x00\x00\x09\x42\x00\x01\x00\x00\x00\x01\x00\x03\x56\xc5\
-\x00\x00\x05\xcc\x00\x01\x00\x00\x00\x01\x00\x01\xd1\x2c\
-\x00\x00\x07\x02\x00\x01\x00\x00\x00\x01\x00\x02\x2f\x4d\
-\x00\x00\x0a\x46\x00\x01\x00\x00\x00\x01\x00\x03\xbc\xa9\
-\x00\x00\x09\x76\x00\x01\x00\x00\x00\x01\x00\x03\x73\x7f\
+\x00\x00\x08\xc6\x00\x00\x00\x00\x00\x01\x00\x03\x26\x17\
+\x00\x00\x0b\xcc\x00\x01\x00\x00\x00\x01\x00\x04\x4a\x03\
+\x00\x00\x09\xde\x00\x01\x00\x00\x00\x01\x00\x03\x9f\x3f\
+\x00\x00\x09\x7c\x00\x01\x00\x00\x00\x01\x00\x03\x7a\x9c\
+\x00\x00\x05\xcc\x00\x01\x00\x00\x00\x01\x00\x01\xce\xf6\
+\x00\x00\x07\x3c\x00\x01\x00\x00\x00\x01\x00\x02\x53\x24\
+\x00\x00\x0a\x80\x00\x01\x00\x00\x00\x01\x00\x03\xe0\x80\
+\x00\x00\x09\xb0\x00\x01\x00\x00\x00\x01\x00\x03\x97\x56\
 \x00\x00\x02\xce\x00\x01\x00\x00\x00\x01\x00\x00\xd8\x0f\
-\x00\x00\x09\x16\x00\x01\x00\x00\x00\x01\x00\x03\x4f\xf4\
+\x00\x00\x09\x50\x00\x01\x00\x00\x00\x01\x00\x03\x73\xcb\
 \x00\x00\x02\xfe\x00\x01\x00\x00\x00\x01\x00\x00\xf3\xf3\
-\x00\x00\x09\xfc\x00\x00\x00\x00\x00\x01\x00\x03\xa8\xac\
-\x00\x00\x08\xf4\x00\x00\x00\x00\x00\x01\x00\x03\x45\x8f\
+\x00\x00\x0a\x36\x00\x00\x00\x00\x00\x01\x00\x03\xcc\x83\
+\x00\x00\x09\x2e\x00\x00\x00\x00\x00\x01\x00\x03\x69\x66\
 \x00\x00\x02\x1e\x00\x01\x00\x00\x00\x01\x00\x00\x9d\x3e\
-\x00\x00\x06\x2c\x00\x01\x00\x00\x00\x01\x00\x01\xe4\x61\
+\x00\x00\x06\x2c\x00\x01\x00\x00\x00\x01\x00\x01\xe2\x2b\
 \x00\x00\x00\xdc\x00\x01\x00\x00\x00\x01\x00\x00\x10\x62\
-\x00\x00\x07\x4c\x00\x01\x00\x00\x00\x01\x00\x02\x37\xd4\
-\x00\x00\x05\x0a\x00\x00\x00\x00\x00\x01\x00\x01\xa4\xfe\
-\x00\x00\x07\xc8\x00\x01\x00\x00\x00\x01\x00\x02\xc4\x70\
+\x00\x00\x07\x86\x00\x01\x00\x00\x00\x01\x00\x02\x5b\xab\
+\x00\x00\x05\x0a\x00\x00\x00\x00\x00\x01\x00\x01\xa2\xc8\
+\x00\x00\x08\x02\x00\x01\x00\x00\x00\x01\x00\x02\xe8\x47\
 \x00\x00\x04\x26\x00\x00\x00\x00\x00\x01\x00\x01\x5e\x91\
+\x00\x00\x06\x74\x00\x00\x00\x00\x00\x01\x00\x02\x09\x99\
+\x00\x00\x0b\x74\x00\x01\x00\x00\x00\x01\x00\x04\x38\x09\
 \x00\x00\x04\x54\x00\x01\x00\x00\x00\x01\x00\x01\x61\x7a\
-\x00\x00\x08\x4e\x00\x01\x00\x00\x00\x01\x00\x02\xec\x95\
-\x00\x00\x0b\xc0\x00\x01\x00\x00\x00\x01\x00\x04\x35\xf6\
-\x00\x00\x0b\x10\x00\x01\x00\x00\x00\x01\x00\x04\x0e\xe3\
+\x00\x00\x08\x88\x00\x01\x00\x00\x00\x01\x00\x03\x10\x6c\
+\x00\x00\x0c\x34\x00\x01\x00\x00\x00\x01\x00\x04\x64\xaa\
+\x00\x00\x0b\x4a\x00\x01\x00\x00\x00\x01\x00\x04\x32\xba\
 \x00\x00\x03\x74\x00\x01\x00\x00\x00\x01\x00\x01\x25\x3b\
-\x00\x00\x05\x9c\x00\x00\x00\x00\x00\x01\x00\x01\xcc\x87\
-\x00\x00\x06\x9e\x00\x01\x00\x00\x00\x01\x00\x02\x1c\x39\
+\x00\x00\x05\x9c\x00\x00\x00\x00\x00\x01\x00\x01\xca\x51\
+\x00\x00\x06\xd8\x00\x01\x00\x00\x00\x01\x00\x02\x40\x10\
 \x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x90\x2d\
-\x00\x00\x04\xde\x00\x01\x00\x00\x00\x01\x00\x01\x9b\xfb\
+\x00\x00\x04\xde\x00\x01\x00\x00\x00\x01\x00\x01\x99\xc5\
 \x00\x00\x01\x82\x00\x00\x00\x00\x00\x01\x00\x00\x5a\x0e\
 \x00\x00\x02\x70\x00\x01\x00\x00\x00\x01\x00\x00\xc3\x95\
 \x00\x00\x01\xd0\x00\x01\x00\x00\x00\x01\x00\x00\x70\x7c\
 \x00\x00\x03\x48\x00\x01\x00\x00\x00\x01\x00\x01\x16\x85\
 \x00\x00\x00\x76\x00\x01\x00\x00\x00\x01\x00\x00\x06\x03\
-\x00\x00\x0a\x68\x00\x01\x00\x00\x00\x01\x00\x03\xe3\x81\
-\x00\x00\x06\x74\x00\x01\x00\x00\x00\x01\x00\x02\x0b\xcf\
+\x00\x00\x0a\xa2\x00\x01\x00\x00\x00\x01\x00\x04\x07\x58\
+\x00\x00\x06\xae\x00\x01\x00\x00\x00\x01\x00\x02\x2f\xa6\
 \x00\x00\x01\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x3d\x2d\
 \x00\x00\x04\x8c\x00\x00\x00\x00\x00\x01\x00\x01\x6c\xe2\
-\x00\x00\x04\xc2\x00\x01\x00\x00\x00\x01\x00\x01\x90\x79\
+\x00\x00\x04\xc2\x00\x01\x00\x00\x00\x01\x00\x01\x8e\x43\
 \x00\x00\x02\x4a\x00\x01\x00\x00\x00\x01\x00\x00\xbc\xde\
 \x00\x00\x03\xc8\x00\x01\x00\x00\x00\x01\x00\x01\x49\xae\
 "
diff --git a/timeseriesviewer/ui/resources.qrc b/timeseriesviewer/ui/resources.qrc
index 4fe13fb7..2321a1df 100644
--- a/timeseriesviewer/ui/resources.qrc
+++ b/timeseriesviewer/ui/resources.qrc
@@ -1,5 +1,7 @@
 <RCC>
   <qresource prefix="timeseriesviewer">
+    <file>icons/mIconTemporalProfile2D.svg</file>
+    <file>icons/mIconTemporalProfile3D.svg</file>
     <file>icons/add_class.svg</file>
     <file>icons/mIconTemporalProfile.svg</file>
     <file>icons/ActionIdentifyTimeSeries.svg</file>
-- 
GitLab