diff --git a/Cyberpipe.csproj b/Cyberpipe.csproj
index d9a70bc..ea462be 100644
--- a/Cyberpipe.csproj
+++ b/Cyberpipe.csproj
@@ -1143,6 +1143,7 @@
SysRescInfoManager.cs
+
True
True
diff --git a/Cyberpipe.csproj b/Cyberpipe.csproj
index d9a70bc..ea462be 100644
--- a/Cyberpipe.csproj
+++ b/Cyberpipe.csproj
@@ -1143,6 +1143,7 @@
SysRescInfoManager.cs
+
True
True
diff --git a/Cyberpipe.suo b/Cyberpipe.suo
index c1d31ce..6c59fcf 100644
--- a/Cyberpipe.suo
+++ b/Cyberpipe.suo
Binary files differ
diff --git a/Cyberpipe.csproj b/Cyberpipe.csproj
index d9a70bc..ea462be 100644
--- a/Cyberpipe.csproj
+++ b/Cyberpipe.csproj
@@ -1143,6 +1143,7 @@
SysRescInfoManager.cs
+
True
True
diff --git a/Cyberpipe.suo b/Cyberpipe.suo
index c1d31ce..6c59fcf 100644
--- a/Cyberpipe.suo
+++ b/Cyberpipe.suo
Binary files differ
diff --git a/FrmLayerControl.cs b/FrmLayerControl.cs
index 8586041..81346fe 100644
--- a/FrmLayerControl.cs
+++ b/FrmLayerControl.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using GeoScene.Data;
@@ -13,10 +14,10 @@
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- TreeNode terrainManagerNode = null;
- TreeNode layerManagerNode = null;
- TreeNode terrainManagerNode1 = null;
- TreeNode layerManagerNode1 = null;
+// TreeNode terrainManagerNode = null;
+// TreeNode layerManagerNode = null;
+// TreeNode terrainManagerNode1 = null;
+// TreeNode layerManagerNode1 = null;
public FrmLayerControl(GSOGlobeControl ctl1,GSOGlobeControl ctl2)
{
@@ -25,14 +26,14 @@
globeControl2 = ctl2;
}
- private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
- {
- treeNode=new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- }
+// private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
+// {
+// treeNode=new TreeNode();
+// treeNode.ImageIndex = 0;
+// treeNode.SelectedImageIndex = 0;
+// treeNode.Checked = false;
+// treeNode.Text = strTreeNodeText;
+// }
// private void initTreeView()
// {
@@ -51,234 +52,258 @@
// layerTree2.Nodes.Add(terrainManagerNode);
// }
- #region wxl重构树形结构代码
+
+
- private TreeNode treeNode(string strTreeNodeText)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- return treeNode;
- }
-// private void appendToParent(TreeNodeCollection treeNodeCollection, )
- #endregion
- private void initTreeView()
+// private void initNode(string nodeName)
+// {
+// TreeNode nodeGroupElse1 = new TreeNode();
+// nodeGroupElse1.Text = nodeName;
+// layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+//
+// TreeNode nodeGroupElse = new TreeNode();
+// nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
+// layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
+// }
+
+// private void initTreeNode(XmlNodeList Params)
+// {
+// foreach (XmlNode paramsNode in Params) //layers
+// {
+// foreach (XmlNode layerNode in paramsNode) //layer
+// {
+// initNode(layerNode.Attributes["label"].Value);
+// }
+// }
+//
+// initNode("基础图层");
+// initNode("其他");
+// }
+
+// private void FrmLayerControl_Load(object sender, EventArgs e)
+// {
+//
+// initTreeView();
+// try
+// {
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Application.StartupPath + "\\双屏设置.xml");
+// XmlNodeList Params = doc.SelectNodes("/Params/layers");
+//
+// initTreeNode(Params);
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+//
+// RefreshLayerAndTerrainTree();
+// }
+ private void FrmLayerControl_Load(object sender, EventArgs e)
{
layerTree1.Nodes.Clear();
layerTree2.Nodes.Clear();
-
- //加载layertree2
- initLayerTree(out layerManagerNode1, "图层管理");
- layerTree1.Nodes.Add(layerManagerNode1);
- initLayerTree(out terrainManagerNode1, "地形管理");
- layerTree1.Nodes.Add(terrainManagerNode1);
-
- initLayerTree(out layerManagerNode, "图层管理");
- layerTree2.Nodes.Add(layerManagerNode);
- initLayerTree(out terrainManagerNode, "地形管理");
- layerTree2.Nodes.Add(terrainManagerNode);
+ TreeUtils.initTree(globeControl1, layerTree1, "实测数据");
+ TreeUtils.initTree(globeControl2, layerTree2, "施工数据");
}
- private void initNode(string nodeName)
- {
- TreeNode nodeGroupElse1 = new TreeNode();
- nodeGroupElse1.Text = nodeName;
- layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+ #region wxl重构树形结构代码
- TreeNode nodeGroupElse = new TreeNode();
- nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
- layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
- }
+ ///
+ /// 构造tree,最多解析三层,可放在工具类中
- private void initTreeNode(XmlNodeList Params)
- {
- foreach (XmlNode paramsNode in Params) //layers
- {
- foreach (XmlNode layerNode in paramsNode) //layer
- {
- initNode(layerNode.Attributes["label"].Value);
- }
- }
+ /// 所属地球
+ /// 要加载的树
+ /// 数据来源,实测数据/施工数据/规划数据/红线数据,为空则展示全部
+// private void initTree(GSOGlobeControl gsoGlobeControl,TreeView treeView, string viewDatasrc)
+// {
+// treeView.Nodes.Clear();
+// LayerConfig layerConfig = Utility.layerConfig;
+// List datasrcs = layerConfig.datasrcs;
+// foreach (DataSrc datasrc in datasrcs)
+// {
+// if (viewDatasrc != null && !viewDatasrc.Trim().Equals("") && !datasrc.label.Equals(viewDatasrc)) continue;
+// TreeNode rootNode = treeView.Nodes.Add(datasrc.label);
+// List layerTypes = datasrc.layertypes;
+// foreach (LayerType layerType in layerTypes)
+// {
+// TreeNode secNode = rootNode.Nodes.Add(layerType.label);
+// List layers = layerType.layers;
+// foreach (Layer layer in layers)
+// {
+// GSOLayer gsoLayer = gsoGlobeControl.Globe.Layers.GetLayerByCaption(layer.layer);
+// if (gsoLayer == null) continue;//将不存在的去除
+// TreeNode node = new TreeNode();
+// node.Tag = gsoLayer;
+// node.Text = layer.label;
+// node.Checked = gsoLayer.Visible;
+// if (gsoLayer.Visible)
+// {
+// secNode.Checked = true;
+// rootNode.Checked = true;
+// }
+// secNode.Nodes.Add(node);
+// }
+// }
+// }
+// }
- initNode("基础图层");
- initNode("其他");
- }
+ #endregion
- private void FrmLayerControl_Load(object sender, EventArgs e)
- {
- initTreeView();
- try
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(Application.StartupPath + "\\双屏设置.xml");
- XmlNodeList Params = doc.SelectNodes("/Params/layers");
+// private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
+// TreeView layerTree)
+// {
+// try
+// {
+// for (int i = 0; i < nLayerCount; i++)
+// {
+// GSOLayer layer = globcontrol.Globe.Layers[i];
+// if (layer == null) continue;
+// string layerName = layer.Name;
+// TreeNode node = new TreeNode();
+// node.Tag = layer;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = layer.Caption;
+// node.Checked = layer.Visible;
+//
+// bool isContains = false;
+// for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
+// {
+// if (!layerName.Contains("fttp:"))
+// {
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
+// layerName.Contains("施工") ||
+// layerName.Contains("规划")) continue;
+// break;
+// case "layerTree2":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// else
+// {
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// }
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
+// layerName.Contains("标注") ||
+// isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
+// layerName.Contains("景观") || layerName.Contains("红线"))
+// continue;
+// break;
+// case "layerTree2":
+// if (isContains != false || layerName.Contains("tempLgdData2"))
+// continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
+// }
+//
+// for (int i = 0; i < nTerrainCount; i++)
+// {
+// GSOTerrain terrain = globcontrol.Globe.Terrains[i];
+// if (terrain == null) continue;
+// TreeNode node = new TreeNode();
+// node.Tag = terrain;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = terrain.Caption;
+// node.Checked = terrain.Visible;
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// terrainManagerNode1.Nodes.Add(node);
+// break;
+// case "layerTree2":
+// terrainManagerNode.Nodes.Add(node);
+// break;
+// default:
+// break;
+// }
+// }
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+// }
- initTreeNode(Params);
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
+// private void initTreeNodeCheckedStatus(TreeView layerTreeView)
+// {
+// //节点选中状态控制
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// if (node.Checked != true) continue;
+// layerTreeView.Nodes[0].Checked = true;
+// break;
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOTerrain layer = childNode.Tag as GSOTerrain;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+// }
- RefreshLayerAndTerrainTree();
- }
-
- private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
- TreeView layerTree)
- {
- try
- {
- for (int i = 0; i < nLayerCount; i++)
- {
- GSOLayer layer = globcontrol.Globe.Layers[i];
- if (layer == null) continue;
- string layerName = layer.Name;
- TreeNode node = new TreeNode();
- node.Tag = layer;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = layer.Caption;
- node.Checked = layer.Visible;
-
- bool isContains = false;
- for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
- {
- if (!layerName.Contains("fttp:"))
- {
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
- layerName.Contains("施工") ||
- layerName.Contains("规划")) continue;
- break;
- case "layerTree2":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
- isContains = true;
- break;
- }
- else
- {
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
- isContains = true;
- break;
- }
- }
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
- layerName.Contains("标注") ||
- isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
- layerName.Contains("景观") || layerName.Contains("红线"))
- continue;
- break;
- case "layerTree2":
- if (isContains != false || layerName.Contains("tempLgdData2"))
- continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
- }
-
- for (int i = 0; i < nTerrainCount; i++)
- {
- GSOTerrain terrain = globcontrol.Globe.Terrains[i];
- if (terrain == null) continue;
- TreeNode node = new TreeNode();
- node.Tag = terrain;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = terrain.Caption;
- node.Checked = terrain.Visible;
- switch (layerTree.Name)
- {
- case "layerTree1":
- terrainManagerNode1.Nodes.Add(node);
- break;
- case "layerTree2":
- terrainManagerNode.Nodes.Add(node);
- break;
- default:
- break;
- }
- }
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
- }
-
- private void initTreeNodeCheckedStatus(TreeView layerTreeView)
- {
- //节点选中状态控制
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- if (node.Checked != true) continue;
- layerTreeView.Nodes[0].Checked = true;
- break;
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOTerrain layer = childNode.Tag as GSOTerrain;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
- }
-
- void exPandTreeNode()
- {
- layerManagerNode1.Expand();
- terrainManagerNode1.Expand();
- layerManagerNode.Expand();
- terrainManagerNode.Expand();
- }
+// void exPandTreeNode()
+// {
+// layerManagerNode1.Expand();
+// terrainManagerNode1.Expand();
+// layerManagerNode.Expand();
+// terrainManagerNode.Expand();
+// }
///
/// 刷新节点树
///
- private void RefreshLayerAndTerrainTree()
- {
- int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
- int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
- addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
- initTreeNodeCheckedStatus(layerTree1);
-
- int nLayerCount = globeControl2.Globe.Layers.Count;
- int nTerrainCount = globeControl2.Globe.Terrains.Count;
- addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
- initTreeNodeCheckedStatus(layerTree2);
-
- // 展开
- exPandTreeNode();
- }
+// private void RefreshLayerAndTerrainTree()
+// {
+// int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
+// int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
+// addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
+// initTreeNodeCheckedStatus(layerTree1);
+//
+// int nLayerCount = globeControl2.Globe.Layers.Count;
+// int nTerrainCount = globeControl2.Globe.Terrains.Count;
+// addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
+// initTreeNodeCheckedStatus(layerTree2);
+//
+// // 展开
+// exPandTreeNode();
+// }
///
/// 节点树复选框选中状态改变事件处理
@@ -289,144 +314,132 @@
{
if (e.Action != TreeViewAction.Unknown)
{
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
+ TreeUtils.treeNodeCheckedChange(globeControl2,e.Node);
+ }
+ }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+ private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
}
}
+
+
+// private void layerTree2_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree1(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(childNode, isChecked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree2(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(childNode, isChecked);
+// }
+// }
///
/// 节点树选中状态改变事件
///
///
///
- private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Action != TreeViewAction.Unknown)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
+// private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
+// }
+// }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
- }
- }
- ///
- /// 改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- ///
- ///
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent != null)
- {
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
- }
}
}
diff --git a/Cyberpipe.csproj b/Cyberpipe.csproj
index d9a70bc..ea462be 100644
--- a/Cyberpipe.csproj
+++ b/Cyberpipe.csproj
@@ -1143,6 +1143,7 @@
SysRescInfoManager.cs
+
True
True
diff --git a/Cyberpipe.suo b/Cyberpipe.suo
index c1d31ce..6c59fcf 100644
--- a/Cyberpipe.suo
+++ b/Cyberpipe.suo
Binary files differ
diff --git a/FrmLayerControl.cs b/FrmLayerControl.cs
index 8586041..81346fe 100644
--- a/FrmLayerControl.cs
+++ b/FrmLayerControl.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using GeoScene.Data;
@@ -13,10 +14,10 @@
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- TreeNode terrainManagerNode = null;
- TreeNode layerManagerNode = null;
- TreeNode terrainManagerNode1 = null;
- TreeNode layerManagerNode1 = null;
+// TreeNode terrainManagerNode = null;
+// TreeNode layerManagerNode = null;
+// TreeNode terrainManagerNode1 = null;
+// TreeNode layerManagerNode1 = null;
public FrmLayerControl(GSOGlobeControl ctl1,GSOGlobeControl ctl2)
{
@@ -25,14 +26,14 @@
globeControl2 = ctl2;
}
- private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
- {
- treeNode=new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- }
+// private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
+// {
+// treeNode=new TreeNode();
+// treeNode.ImageIndex = 0;
+// treeNode.SelectedImageIndex = 0;
+// treeNode.Checked = false;
+// treeNode.Text = strTreeNodeText;
+// }
// private void initTreeView()
// {
@@ -51,234 +52,258 @@
// layerTree2.Nodes.Add(terrainManagerNode);
// }
- #region wxl重构树形结构代码
+
+
- private TreeNode treeNode(string strTreeNodeText)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- return treeNode;
- }
-// private void appendToParent(TreeNodeCollection treeNodeCollection, )
- #endregion
- private void initTreeView()
+// private void initNode(string nodeName)
+// {
+// TreeNode nodeGroupElse1 = new TreeNode();
+// nodeGroupElse1.Text = nodeName;
+// layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+//
+// TreeNode nodeGroupElse = new TreeNode();
+// nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
+// layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
+// }
+
+// private void initTreeNode(XmlNodeList Params)
+// {
+// foreach (XmlNode paramsNode in Params) //layers
+// {
+// foreach (XmlNode layerNode in paramsNode) //layer
+// {
+// initNode(layerNode.Attributes["label"].Value);
+// }
+// }
+//
+// initNode("基础图层");
+// initNode("其他");
+// }
+
+// private void FrmLayerControl_Load(object sender, EventArgs e)
+// {
+//
+// initTreeView();
+// try
+// {
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Application.StartupPath + "\\双屏设置.xml");
+// XmlNodeList Params = doc.SelectNodes("/Params/layers");
+//
+// initTreeNode(Params);
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+//
+// RefreshLayerAndTerrainTree();
+// }
+ private void FrmLayerControl_Load(object sender, EventArgs e)
{
layerTree1.Nodes.Clear();
layerTree2.Nodes.Clear();
-
- //加载layertree2
- initLayerTree(out layerManagerNode1, "图层管理");
- layerTree1.Nodes.Add(layerManagerNode1);
- initLayerTree(out terrainManagerNode1, "地形管理");
- layerTree1.Nodes.Add(terrainManagerNode1);
-
- initLayerTree(out layerManagerNode, "图层管理");
- layerTree2.Nodes.Add(layerManagerNode);
- initLayerTree(out terrainManagerNode, "地形管理");
- layerTree2.Nodes.Add(terrainManagerNode);
+ TreeUtils.initTree(globeControl1, layerTree1, "实测数据");
+ TreeUtils.initTree(globeControl2, layerTree2, "施工数据");
}
- private void initNode(string nodeName)
- {
- TreeNode nodeGroupElse1 = new TreeNode();
- nodeGroupElse1.Text = nodeName;
- layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+ #region wxl重构树形结构代码
- TreeNode nodeGroupElse = new TreeNode();
- nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
- layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
- }
+ ///
+ /// 构造tree,最多解析三层,可放在工具类中
- private void initTreeNode(XmlNodeList Params)
- {
- foreach (XmlNode paramsNode in Params) //layers
- {
- foreach (XmlNode layerNode in paramsNode) //layer
- {
- initNode(layerNode.Attributes["label"].Value);
- }
- }
+ /// 所属地球
+ /// 要加载的树
+ /// 数据来源,实测数据/施工数据/规划数据/红线数据,为空则展示全部
+// private void initTree(GSOGlobeControl gsoGlobeControl,TreeView treeView, string viewDatasrc)
+// {
+// treeView.Nodes.Clear();
+// LayerConfig layerConfig = Utility.layerConfig;
+// List datasrcs = layerConfig.datasrcs;
+// foreach (DataSrc datasrc in datasrcs)
+// {
+// if (viewDatasrc != null && !viewDatasrc.Trim().Equals("") && !datasrc.label.Equals(viewDatasrc)) continue;
+// TreeNode rootNode = treeView.Nodes.Add(datasrc.label);
+// List layerTypes = datasrc.layertypes;
+// foreach (LayerType layerType in layerTypes)
+// {
+// TreeNode secNode = rootNode.Nodes.Add(layerType.label);
+// List layers = layerType.layers;
+// foreach (Layer layer in layers)
+// {
+// GSOLayer gsoLayer = gsoGlobeControl.Globe.Layers.GetLayerByCaption(layer.layer);
+// if (gsoLayer == null) continue;//将不存在的去除
+// TreeNode node = new TreeNode();
+// node.Tag = gsoLayer;
+// node.Text = layer.label;
+// node.Checked = gsoLayer.Visible;
+// if (gsoLayer.Visible)
+// {
+// secNode.Checked = true;
+// rootNode.Checked = true;
+// }
+// secNode.Nodes.Add(node);
+// }
+// }
+// }
+// }
- initNode("基础图层");
- initNode("其他");
- }
+ #endregion
- private void FrmLayerControl_Load(object sender, EventArgs e)
- {
- initTreeView();
- try
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(Application.StartupPath + "\\双屏设置.xml");
- XmlNodeList Params = doc.SelectNodes("/Params/layers");
+// private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
+// TreeView layerTree)
+// {
+// try
+// {
+// for (int i = 0; i < nLayerCount; i++)
+// {
+// GSOLayer layer = globcontrol.Globe.Layers[i];
+// if (layer == null) continue;
+// string layerName = layer.Name;
+// TreeNode node = new TreeNode();
+// node.Tag = layer;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = layer.Caption;
+// node.Checked = layer.Visible;
+//
+// bool isContains = false;
+// for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
+// {
+// if (!layerName.Contains("fttp:"))
+// {
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
+// layerName.Contains("施工") ||
+// layerName.Contains("规划")) continue;
+// break;
+// case "layerTree2":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// else
+// {
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// }
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
+// layerName.Contains("标注") ||
+// isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
+// layerName.Contains("景观") || layerName.Contains("红线"))
+// continue;
+// break;
+// case "layerTree2":
+// if (isContains != false || layerName.Contains("tempLgdData2"))
+// continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
+// }
+//
+// for (int i = 0; i < nTerrainCount; i++)
+// {
+// GSOTerrain terrain = globcontrol.Globe.Terrains[i];
+// if (terrain == null) continue;
+// TreeNode node = new TreeNode();
+// node.Tag = terrain;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = terrain.Caption;
+// node.Checked = terrain.Visible;
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// terrainManagerNode1.Nodes.Add(node);
+// break;
+// case "layerTree2":
+// terrainManagerNode.Nodes.Add(node);
+// break;
+// default:
+// break;
+// }
+// }
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+// }
- initTreeNode(Params);
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
+// private void initTreeNodeCheckedStatus(TreeView layerTreeView)
+// {
+// //节点选中状态控制
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// if (node.Checked != true) continue;
+// layerTreeView.Nodes[0].Checked = true;
+// break;
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOTerrain layer = childNode.Tag as GSOTerrain;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+// }
- RefreshLayerAndTerrainTree();
- }
-
- private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
- TreeView layerTree)
- {
- try
- {
- for (int i = 0; i < nLayerCount; i++)
- {
- GSOLayer layer = globcontrol.Globe.Layers[i];
- if (layer == null) continue;
- string layerName = layer.Name;
- TreeNode node = new TreeNode();
- node.Tag = layer;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = layer.Caption;
- node.Checked = layer.Visible;
-
- bool isContains = false;
- for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
- {
- if (!layerName.Contains("fttp:"))
- {
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
- layerName.Contains("施工") ||
- layerName.Contains("规划")) continue;
- break;
- case "layerTree2":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
- isContains = true;
- break;
- }
- else
- {
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
- isContains = true;
- break;
- }
- }
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
- layerName.Contains("标注") ||
- isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
- layerName.Contains("景观") || layerName.Contains("红线"))
- continue;
- break;
- case "layerTree2":
- if (isContains != false || layerName.Contains("tempLgdData2"))
- continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
- }
-
- for (int i = 0; i < nTerrainCount; i++)
- {
- GSOTerrain terrain = globcontrol.Globe.Terrains[i];
- if (terrain == null) continue;
- TreeNode node = new TreeNode();
- node.Tag = terrain;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = terrain.Caption;
- node.Checked = terrain.Visible;
- switch (layerTree.Name)
- {
- case "layerTree1":
- terrainManagerNode1.Nodes.Add(node);
- break;
- case "layerTree2":
- terrainManagerNode.Nodes.Add(node);
- break;
- default:
- break;
- }
- }
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
- }
-
- private void initTreeNodeCheckedStatus(TreeView layerTreeView)
- {
- //节点选中状态控制
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- if (node.Checked != true) continue;
- layerTreeView.Nodes[0].Checked = true;
- break;
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOTerrain layer = childNode.Tag as GSOTerrain;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
- }
-
- void exPandTreeNode()
- {
- layerManagerNode1.Expand();
- terrainManagerNode1.Expand();
- layerManagerNode.Expand();
- terrainManagerNode.Expand();
- }
+// void exPandTreeNode()
+// {
+// layerManagerNode1.Expand();
+// terrainManagerNode1.Expand();
+// layerManagerNode.Expand();
+// terrainManagerNode.Expand();
+// }
///
/// 刷新节点树
///
- private void RefreshLayerAndTerrainTree()
- {
- int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
- int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
- addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
- initTreeNodeCheckedStatus(layerTree1);
-
- int nLayerCount = globeControl2.Globe.Layers.Count;
- int nTerrainCount = globeControl2.Globe.Terrains.Count;
- addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
- initTreeNodeCheckedStatus(layerTree2);
-
- // 展开
- exPandTreeNode();
- }
+// private void RefreshLayerAndTerrainTree()
+// {
+// int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
+// int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
+// addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
+// initTreeNodeCheckedStatus(layerTree1);
+//
+// int nLayerCount = globeControl2.Globe.Layers.Count;
+// int nTerrainCount = globeControl2.Globe.Terrains.Count;
+// addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
+// initTreeNodeCheckedStatus(layerTree2);
+//
+// // 展开
+// exPandTreeNode();
+// }
///
/// 节点树复选框选中状态改变事件处理
@@ -289,144 +314,132 @@
{
if (e.Action != TreeViewAction.Unknown)
{
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
+ TreeUtils.treeNodeCheckedChange(globeControl2,e.Node);
+ }
+ }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+ private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
}
}
+
+
+// private void layerTree2_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree1(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(childNode, isChecked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree2(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(childNode, isChecked);
+// }
+// }
///
/// 节点树选中状态改变事件
///
///
///
- private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Action != TreeViewAction.Unknown)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
+// private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
+// }
+// }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
- }
- }
- ///
- /// 改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- ///
- ///
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent != null)
- {
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
- }
}
}
diff --git a/MainFrm.cs b/MainFrm.cs
index d22b2c9..ba3bf31 100644
--- a/MainFrm.cs
+++ b/MainFrm.cs
@@ -28,10 +28,10 @@
{
TreeNode layerManagerNode;
bool m_bFullScreen;
-
+
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- private GSOHudButton legend;//定义图例
+ private GSOHudButton legend; //定义图例
private GSOHudButton btnToolNone;
private GSOHudButton btnToolSelect;
ToolTip tooltip1;
@@ -50,12 +50,12 @@
public bool boolfrmShResult;
public bool boolfrmModify;
- public static string m_CurrentQueryLayer;//定义当前查询的图层
+ public static string m_CurrentQueryLayer; //定义当前查询的图层
//定位和闪烁初始化定义
private EnumDesignMode enumDesignMode; //模拟规划设计模式
- private string trackflag;//定义阀门查询个数
+ private string trackflag; //定义阀门查询个数
//记录沿线飞行设置
//int m_nFlyMode = 2;
@@ -67,7 +67,7 @@
Double m_dDigPitWidthAlongLine = 6;
Boolean m_bDigPitByDepth = true;
//选择管线
- int selectState;//wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
+ int selectState; //wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
//private OracleConnection connBackup = null;
//数据集合
@@ -89,8 +89,8 @@
//双屏对比
//bool zhanshi=false;
Thread t = null;
- private GSOHudButton legendSC;//定义图例
- private GSOHudButton legendSG;//定义图例
+ private GSOHudButton legendSC; //定义图例
+ private GSOHudButton legendSG; //定义图例
//管纵图
private GSOHudButton lendendGZ50;
private GSOHudButton lendendGZ36;
@@ -102,12 +102,13 @@
GSOGeoPoint3D bsqPT;
- FrmYJSHTC frmSh;//一键审核窗口全局变量wxl
- FrmWait frmWait;//一键审核等待窗口
+ FrmYJSHTC frmSh; //一键审核窗口全局变量wxl
+ FrmWait frmWait; //一键审核等待窗口
//FrmWait frmWait2 = null;//文档操作等待窗口
float mouseDownX1, mouseDownY1;
float mouseDownX2, mouseDownY2;
+
///
///
///
@@ -164,8 +165,9 @@
RigthMenuSet();
MenuSet();
-
+
}
+
///
/// 右屏中添加管纵图片
///
@@ -259,6 +261,7 @@
}
#region 区域分析
+
if (Utility.userRole.IndexOf("区域分析") < 0)
{
toolRightMenu.Items.Remove(区域分析ToolStripMenuItem);
@@ -278,9 +281,11 @@
区域分析ToolStripMenuItem.DropDownItems.Remove(无源淹没分析ToolStripMenuItem);
}
}
+
#endregion
#region 视域分析
+
if (Utility.userRole.IndexOf("视域分析") < 0)
{
toolRightMenu.Items.Remove(视域分析ToolStripMenuItem);
@@ -300,9 +305,11 @@
视域分析ToolStripMenuItem.DropDownItems.Remove(可视包络分析ToolStripMenuItem);
}
}
+
#endregion
#region 开发分析
+
if (Utility.userRole.IndexOf("开挖分析") < 0)
{
toolRightMenu.Items.Remove(开挖分析ToolStripMenuItem);
@@ -334,9 +341,11 @@
开挖分析ToolStripMenuItem.DropDownItems.Remove(删除隧道ToolStripMenuItem);
}
}
+
#endregion
#region 拓扑分析
+
if (Utility.userRole.IndexOf("拓扑分析") < 0)
{
toolRightMenu.Items.Remove(拓扑分析ToolStripMenuItem);
@@ -372,9 +381,11 @@
拓扑分析ToolStripMenuItem.DropDownItems.Remove(爆管分析ToolStripMenuItem);
}
}
+
#endregion
#region 断面分析
+
if (Utility.userRole.IndexOf("断面分析") < 0)
{
toolRightMenu.Items.Remove(断面分析ToolStripMenuItem);
@@ -398,9 +409,11 @@
断面分析ToolStripMenuItem.DropDownItems.Remove(基线剖面分析ToolStripMenuItem);
}
}
+
#endregion
#region 绘制区域统计
+
if (Utility.userRole.IndexOf("绘制区域统计") < 0)
{
toolRightMenu.Items.Remove(绘制区域统计ToolStripMenuItem);
@@ -445,9 +458,11 @@
}
}
+
#endregion
#region 全区域统计
+
if (Utility.userRole.IndexOf("全区域统计") < 0)
{
toolRightMenu.Items.Remove(全区域统计ToolStripMenuItem);
@@ -492,9 +507,11 @@
}
}
+
#endregion
#region 查询
+
if (Utility.userRole.IndexOf("查询") < 0)
{
toolRightMenu.Items.Remove(查询ToolStripMenuItem);
@@ -542,9 +559,11 @@
查询ToolStripMenuItem.DropDownItems.Remove(附属物查询ToolStripMenuItem);
}
}
+
#endregion
#region 标注
+
if (Utility.userRole.IndexOf("标注") < 0)
{
toolRightMenu.Items.Remove(标注ToolStripMenuItem);
@@ -592,9 +611,11 @@
标注ToolStripMenuItem.DropDownItems.Remove(标注管理ToolStripMenuItem);
}
}
+
#endregion
#region 飞行
+
if (Utility.userRole.IndexOf("飞行") < 0)
{
toolRightMenu.Items.Remove(飞行ToolStripMenuItem);
@@ -618,9 +639,11 @@
飞行ToolStripMenuItem.DropDownItems.Remove(绕眼睛飞行ToolStripMenuItem);
}
}
+
#endregion
#region 编辑
+
if (Utility.userRole.IndexOf("编辑") < 0)
{
toolRightMenu.Items.Remove(编辑ToolStripMenuItem);
@@ -656,9 +679,11 @@
编辑ToolStripMenuItem.DropDownItems.Remove(删除模型ToolStripMenuItem);
}
}
+
#endregion
#region 量算
+
if (Utility.userRole.IndexOf("量算") < 0)
{
toolRightMenu.Items.Remove(量算ToolStripMenuItem);
@@ -694,6 +719,7 @@
量算ToolStripMenuItem.DropDownItems.Remove(地表面积ToolStripMenuItem1);
}
}
+
#endregion
}
@@ -701,6 +727,7 @@
{
#region 权限管理
+
if (Utility.userRole.IndexOf("权限管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem2);
@@ -734,9 +761,11 @@
}
}
+
#endregion
#region 基础工具
+
if (Utility.userRole.IndexOf("基础工具") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem1);
@@ -781,37 +810,47 @@
}
}
+
#endregion
#region 一键审核
+
if (Utility.userRole.IndexOf("一键审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem11);
}
+
#endregion
#region 红线审核
+
if (Utility.userRole.IndexOf("红线审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem6);
}
+
#endregion
#region 双屏对比
+
if (Utility.userRole.IndexOf("双屏对比") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem9);
}
+
#endregion
#region 文档管理
+
if (Utility.userRole.IndexOf("文档管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem4);
}
+
#endregion
#region 基础管理
+
if (Utility.userRole.IndexOf("基础管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem14);
@@ -841,6 +880,7 @@
}
#region Fan Zhang 重构现有代码
+
//初始化控件布局
private void initLayout()
{
@@ -848,37 +888,37 @@
double dsw = SW;
if (SW > 1440)
{
- double myScreen = dsw / 1440;
- buttonX1.Width = (int)(buttonX1.Width * myScreen);
- buttonX2.Width = (int)(buttonX2.Width * myScreen);
- buttonX4.Width = (int)(buttonX4.Width * myScreen);
- buttonX5.Width = (int)(buttonX5.Width * myScreen);
- buttonX6.Width = (int)(buttonX6.Width * myScreen);
- buttonX7.Width = (int)(buttonX8.Width * myScreen);
- buttonX8.Width = (int)(buttonX8.Width * myScreen);
- buttonX9.Width = (int)(buttonX9.Width * myScreen);
- buttonX12.Width = (int)(buttonX12.Width * myScreen);
- buttonX14.Width = (int)(buttonX14.Width * myScreen);
- buttonX15.Width = (int)(buttonX15.Width * myScreen);
- buttonX16.Width = (int)(buttonX16.Width * myScreen);
- buttonX17.Width = (int)(buttonX17.Width * myScreen);
+ double myScreen = dsw/1440;
+ buttonX1.Width = (int) (buttonX1.Width*myScreen);
+ buttonX2.Width = (int) (buttonX2.Width*myScreen);
+ buttonX4.Width = (int) (buttonX4.Width*myScreen);
+ buttonX5.Width = (int) (buttonX5.Width*myScreen);
+ buttonX6.Width = (int) (buttonX6.Width*myScreen);
+ buttonX7.Width = (int) (buttonX8.Width*myScreen);
+ buttonX8.Width = (int) (buttonX8.Width*myScreen);
+ buttonX9.Width = (int) (buttonX9.Width*myScreen);
+ buttonX12.Width = (int) (buttonX12.Width*myScreen);
+ buttonX14.Width = (int) (buttonX14.Width*myScreen);
+ buttonX15.Width = (int) (buttonX15.Width*myScreen);
+ buttonX16.Width = (int) (buttonX16.Width*myScreen);
+ buttonX17.Width = (int) (buttonX17.Width*myScreen);
- labelX1.Width = (int)(labelX1.Width * myScreen);
- labelX2.Width = (int)(labelX2.Width * myScreen);
- labelX3.Width = (int)(labelX3.Width * myScreen);
- labelX6.Width = (int)(labelX6.Width * myScreen);
- labelX8.Width = (int)(labelX8.Width * myScreen);
- labelX9.Width = (int)(labelX9.Width * myScreen);
- labelX12.Width = (int)(labelX12.Width * myScreen);
- labelX13.Width = (int)(labelX13.Width * myScreen);
- labelX14.Width = (int)(labelX14.Width * myScreen);
- labelX16.Width = (int)(labelX16.Width * myScreen);
- labelX17.Width = (int)(labelX17.Width * myScreen);
- labelX11.Width = (int)(labelX11.Width * myScreen);
- labelX19.Width = (int)(labelX19.Width * myScreen);
- labelX21.Width = (int)(labelX21.Width * myScreen);
- labelX22.Width = (int)(labelX22.Width * myScreen);
- labelX24.Width = (int)(labelX24.Width * myScreen);
+ labelX1.Width = (int) (labelX1.Width*myScreen);
+ labelX2.Width = (int) (labelX2.Width*myScreen);
+ labelX3.Width = (int) (labelX3.Width*myScreen);
+ labelX6.Width = (int) (labelX6.Width*myScreen);
+ labelX8.Width = (int) (labelX8.Width*myScreen);
+ labelX9.Width = (int) (labelX9.Width*myScreen);
+ labelX12.Width = (int) (labelX12.Width*myScreen);
+ labelX13.Width = (int) (labelX13.Width*myScreen);
+ labelX14.Width = (int) (labelX14.Width*myScreen);
+ labelX16.Width = (int) (labelX16.Width*myScreen);
+ labelX17.Width = (int) (labelX17.Width*myScreen);
+ labelX11.Width = (int) (labelX11.Width*myScreen);
+ labelX19.Width = (int) (labelX19.Width*myScreen);
+ labelX21.Width = (int) (labelX21.Width*myScreen);
+ labelX22.Width = (int) (labelX22.Width*myScreen);
+ labelX24.Width = (int) (labelX24.Width*myScreen);
}
sideBar1.Visible = false;
sideBar1.ExpandedPanel = sideBarPanelItem3;
@@ -899,7 +939,7 @@
splitContainer1.Panel2Collapsed = true;
- buttonItem87.Checked = true;//默认地上模式
+ buttonItem87.Checked = true; //默认地上模式
ribbonTabItem1.Select(); //初始化状态为浏览
sideBarPanelItem3.Visible = false;
@@ -951,7 +991,7 @@
//图例
legend = new GSOHudButton();
- legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg");//图例P
+ legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg"); //图例P
legend.SetOffset(0, 15);
legend.MinOpaque = 1;
legend.MaxOpaque = 1;
@@ -1002,7 +1042,7 @@
globeControl1.Globe.UserBackgroundColor = Color.White;
globeControl1.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl1.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed * 3;
+ globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed*3;
globeControl1.Globe.EditSnapObject = true;
globeControl1.Globe.IsReleaseMemOutOfView = true;
globeControl1.Globe.ControlPanel.Visible = true;
@@ -1021,18 +1061,22 @@
globeControl2.Globe.UserBackgroundColor = Color.White;
globeControl2.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl2.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed * 3;
+ globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed*3;
globeControl2.Globe.EditSnapObject = true;
globeControl2.Globe.IsReleaseMemOutOfView = true;
globeControl2.Globe.ControlPanel.Visible = false;
- GSOSimplePolygonStyle3D trackingRectStyle = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackingRectStyle =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
trackingRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimplePolygonStyle3D trackRectStyle = globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackRectStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
trackRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimpleLineStyle3D trackRectLineStyle = globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle.LineType = EnumLineType.Solid;
- GSOSimpleLineStyle3D trackRectLineStyle1 = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle1 =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle1.LineType = EnumLineType.Solid;
trackRectLineStyle1.LineColor = Color.FromArgb(0, 174, 255);
trackRectLineStyle1.LineWidth = 1;
@@ -1119,21 +1163,28 @@
globeControl1.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
globeControl2.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
//初始化TreeView
+
+ #region wxl
+
+ initLayerTree();
+
+ #endregion
+
// 勾选实测图层
- foreach (TreeNode tn in layerTree.Nodes)
- {
- if (tn.Nodes.Count <= 0) continue;
- if (tn.Text != "实测数据") continue;
- tn.Checked = true;
- foreach (TreeNode tnChild in tn.Nodes)
- {
- tnChild.Checked = true;
- foreach (TreeNode tnGrandChild in tnChild.Nodes)
- {
- tnGrandChild.Checked = true;
- }
- }
- }
+// foreach (TreeNode tn in layerTree.Nodes)
+// {
+// if (tn.Nodes.Count <= 0) continue;
+// if (tn.Text != "实测数据") continue;
+// tn.Checked = true;
+// foreach (TreeNode tnChild in tn.Nodes)
+// {
+// tnChild.Checked = true;
+// foreach (TreeNode tnGrandChild in tnChild.Nodes)
+// {
+// tnGrandChild.Checked = true;
+// }
+// }
+// }
}
private void doLoadDataForGlobalControl1()
@@ -1142,7 +1193,10 @@
{
globeControl1.Globe.Layers.MoveDown(10000);
//加载实测管线数据
- Utility.dataSource = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID, Utility.DBPassword);
+ Utility.dataSource =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(
+ Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID,
+ Utility.DBPassword);
if (Utility.dataSource != null)
{
@@ -1160,7 +1214,9 @@
globeControl1.Globe.Layers.GetLayerByCaption("红线").Visible = false;
//globleControl1中加载规划数据
- GSODataSource ghDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "", Utility.ghdbuser, Utility.ghdbpwd);
+ GSODataSource ghDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "",
+ Utility.ghdbuser, Utility.ghdbpwd);
if (ghDS != null)
{
for (int j = 0; j < ghDS.DatasetCount; j++)
@@ -1176,13 +1232,16 @@
}
//globeControl1,globeControl2中加载施工数据
- GSODataSource sgDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "", Utility.sgdbuser, Utility.sgdbpwd);
+ GSODataSource sgDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "",
+ Utility.sgdbuser, Utility.sgdbpwd);
if (sgDS != null)
{
for (int m = 0; m < sgDS.DatasetCount; m++)
{
GSODataset dataset = sgDS.GetDatasetAt(m);
- if (dataset != null && !dataset.Caption.Contains("SH") && Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
+ if (dataset != null && !dataset.Caption.Contains("SH") &&
+ Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
{
dataset.Caption = dataset.Name;
globeControl1.Globe.Layers.Add(dataset);
@@ -1196,12 +1255,12 @@
// LoadDataForGlobalControl ss = connectServer;
// ss();
-
+
this.Invoke((EventHandler) delegate
{
connectServer();
});
-
+
}
catch (Exception ex)
@@ -1212,6 +1271,7 @@
private void initLayerTree()
{
+ layerTree.Nodes.Clear();
//加载临时图层节点
layerManagerNode = new TreeNode();
layerManagerNode.ImageIndex = 0;
@@ -1220,59 +1280,60 @@
layerManagerNode.Text = "临时图层";
layerTree.Nodes.Add(layerManagerNode);
- XmlDocument doc = new XmlDocument();
- doc.Load(Utility.filename);
- XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
-
- foreach (XmlNode xmlLayerNode in xmlLayerNodes)
- {
-
- //TODO LIST:创建一级TreeNode(实测、规划、施工)
- TreeNode nodelayer = new TreeNode();
- string layerName = xmlLayerNode.Attributes["label"].Value;
- nodelayer.Text = layerName;
- nodelayer.Checked = false;
- layerTree.Nodes.Add(nodelayer);
-
- XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
- foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
- {
- //TODO LIST:创建二级TreeNode节点
- TreeNode secondLevelNode = new TreeNode();
- string layerType = xmlChildLayerNode.Attributes["label"].Value;
- secondLevelNode.Text = layerType;
-
- if (xmlChildLayerNode.Attributes["type"] != null)
- { //道路图层特殊处理
- string type = xmlChildLayerNode.Attributes["type"].Value;
- secondLevelNode.Tag = type + "|" + layerType;
- }
- else
- {
- secondLevelNode.Tag = layerType;
- }
- secondLevelNode.Checked = false;
- nodelayer.Nodes.Add(secondLevelNode);
-
- XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
-
- foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
- {
- //TODO LIST:创建三级图层节点
- TreeNode layerNode = new TreeNode();
- string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
- string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
- string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
-
- layerNode.Text = actutallyLabelName;
- layerNode.Tag = layerType + "|" + actutallyLabelName;
- layerNode.Checked = false;
- secondLevelNode.Nodes.Add(layerNode);
- }
-
- }
-
- }
+ TreeUtils.initTree(globeControl1, layerTree, null);
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Utility.filename);
+// XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
+//
+// foreach (XmlNode xmlLayerNode in xmlLayerNodes)
+// {
+//
+// //TODO LIST:创建一级TreeNode(实测、规划、施工)
+// TreeNode nodelayer = new TreeNode();
+// string layerName = xmlLayerNode.Attributes["label"].Value;
+// nodelayer.Text = layerName;
+// nodelayer.Checked = false;
+// layerTree.Nodes.Add(nodelayer);
+//
+// XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
+// foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
+// {
+// //TODO LIST:创建二级TreeNode节点
+// TreeNode secondLevelNode = new TreeNode();
+// string layerType = xmlChildLayerNode.Attributes["label"].Value;
+// secondLevelNode.Text = layerType;
+//
+// if (xmlChildLayerNode.Attributes["type"] != null)
+// { //道路图层特殊处理
+// string type = xmlChildLayerNode.Attributes["type"].Value;
+// secondLevelNode.Tag = type + "|" + layerType;
+// }
+// else
+// {
+// secondLevelNode.Tag = layerType;
+// }
+// secondLevelNode.Checked = false;
+// nodelayer.Nodes.Add(secondLevelNode);
+//
+// XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
+//
+// foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
+// {
+// //TODO LIST:创建三级图层节点
+// TreeNode layerNode = new TreeNode();
+// string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
+// string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
+// string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
+//
+// layerNode.Text = actutallyLabelName;
+// layerNode.Tag = layerType + "|" + actutallyLabelName;
+// layerNode.Checked = false;
+// secondLevelNode.Nodes.Add(layerNode);
+// }
+//
+// }
+//
+// }
}
@@ -1298,7 +1359,8 @@
for (int i = 0; i < markerStrs.Length; i++)
{
if (!File.Exists(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd")) continue;
- GSOLayer markerLayer = globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
+ GSOLayer markerLayer =
+ globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
if (markerLayer == null) continue;
TreeNode node1 = new TreeNode();
node1.Text = markerLayer.Caption;
@@ -1314,7 +1376,7 @@
{
initGlobalControl();
//initGlobalMap();
- initLayerTree();
+// initLayerTree();
initMarkerTree();
initLayout();
loadData();
@@ -1383,7 +1445,7 @@
tempnode.Checked = node.Checked ? feature.Visible : false;
tempnode.Tag = feature;
node.Nodes.Add(tempnode);
- GSOFeatureFolder featureFolder = (GSOFeatureFolder)feature;
+ GSOFeatureFolder featureFolder = (GSOFeatureFolder) feature;
VisitFeature3Ds(featureFolder.Features, tempnode);
}
else
@@ -1444,7 +1506,7 @@
///
Boolean CheckDatasetGeoReference(GSODataset dataset, string strDataPath)
{
-
+
if (dataset.GeoReferenceType != EnumGeoReferenceType.Flat) return true;
Boolean bSuccess = false;
if (MessageBox.Show("数据没有空间参考信息,请设置空间参考信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) !=
@@ -1498,7 +1560,7 @@
dlg.Filter = "输出JPEG(*.jpg)|*.jpg|输出PNG(*.png)|*.png|输出BMP(*.bmp)|*.bmp|输出BMP(*.gif)|*.gif";
if (dlg.ShowDialog() == DialogResult.OK)
{
- string extension = Path.GetExtension(dlg.FileName);//扩展名
+ string extension = Path.GetExtension(dlg.FileName); //扩展名
switch (extension)
{
case ".jpg":
@@ -1520,6 +1582,7 @@
globeControl1.Globe.Action = EnumAction3D.ActionNull;
globeControl1.Globe.MouseRoamingEnable = true;
}
+
///
/// 定位正北正90度俯视
///
@@ -1573,100 +1636,112 @@
break;
}
}
+
+ #region wxl 重构树形结构代码
+
+ private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
+ }
+ }
+
+ #endregion
///
- /// layerTree选中后事件处理
+ /// layerTree选中后事件处理
///
///
///
- private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag.ToString().Contains("|"))
- {
- string nodeTag = e.Node.Tag.ToString().Split('|')[1];
- GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- if (e.Node.Tag is GSOFeature)
- {
- if (e.Node.Nodes.Count == 0)
- {
- GSOFeature feat = e.Node.Tag as GSOFeature;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- }
- CheckControl(e);
- }
+// private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag.ToString().Contains("|"))
+// {
+// string nodeTag = e.Node.Tag.ToString().Split('|')[1];
+// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// if (e.Node.Tag is GSOFeature)
+// {
+// if (e.Node.Nodes.Count == 0)
+// {
+// GSOFeature feat = e.Node.Tag as GSOFeature;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// }
+// CheckControl(e);
+// }
///
/// 树节点选中方法
///
///
- private void CheckControl(TreeViewEventArgs e)
- {
- if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- {
- CheckAllChildNodes(e.Node, e.Node.Checked);
- }
- }
+// private void CheckControl(TreeViewEventArgs e)
+// {
+// if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变所有子节点的状态
///
///
///
- private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
- {
- foreach (TreeNode tn in pn.Nodes)
- {
- tn.Checked = IsChecked;
-
- if (tn.Nodes.Count > 0)
- {
- CheckAllChildNodes(tn, IsChecked);
- }
- }
- }
+// private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
+// {
+// foreach (TreeNode tn in pn.Nodes)
+// {
+// tn.Checked = IsChecked;
+//
+// if (tn.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(tn, IsChecked);
+// }
+// }
+// }
//改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent == null) return;
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
-
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
+// private void CheckParentNode(TreeNode curNode)
+// {
+// bool bChecked = false;
+//
+// if (curNode.Parent == null) return;
+// foreach (TreeNode node in curNode.Parent.Nodes)
+// {
+// if (node.Checked)
+// {
+// bChecked = true;
+// break;
+// }
+// }
+//
+// if (bChecked)
+// {
+// curNode.Parent.Checked = true;
+// CheckParentNode(curNode.Parent);
+// }
+// else
+// {
+// curNode.Parent.Checked = false;
+// CheckParentNode(curNode.Parent);
+// }
+// }
private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
diff --git a/Cyberpipe.csproj b/Cyberpipe.csproj
index d9a70bc..ea462be 100644
--- a/Cyberpipe.csproj
+++ b/Cyberpipe.csproj
@@ -1143,6 +1143,7 @@
SysRescInfoManager.cs
+
True
True
diff --git a/Cyberpipe.suo b/Cyberpipe.suo
index c1d31ce..6c59fcf 100644
--- a/Cyberpipe.suo
+++ b/Cyberpipe.suo
Binary files differ
diff --git a/FrmLayerControl.cs b/FrmLayerControl.cs
index 8586041..81346fe 100644
--- a/FrmLayerControl.cs
+++ b/FrmLayerControl.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using GeoScene.Data;
@@ -13,10 +14,10 @@
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- TreeNode terrainManagerNode = null;
- TreeNode layerManagerNode = null;
- TreeNode terrainManagerNode1 = null;
- TreeNode layerManagerNode1 = null;
+// TreeNode terrainManagerNode = null;
+// TreeNode layerManagerNode = null;
+// TreeNode terrainManagerNode1 = null;
+// TreeNode layerManagerNode1 = null;
public FrmLayerControl(GSOGlobeControl ctl1,GSOGlobeControl ctl2)
{
@@ -25,14 +26,14 @@
globeControl2 = ctl2;
}
- private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
- {
- treeNode=new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- }
+// private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
+// {
+// treeNode=new TreeNode();
+// treeNode.ImageIndex = 0;
+// treeNode.SelectedImageIndex = 0;
+// treeNode.Checked = false;
+// treeNode.Text = strTreeNodeText;
+// }
// private void initTreeView()
// {
@@ -51,234 +52,258 @@
// layerTree2.Nodes.Add(terrainManagerNode);
// }
- #region wxl重构树形结构代码
+
+
- private TreeNode treeNode(string strTreeNodeText)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- return treeNode;
- }
-// private void appendToParent(TreeNodeCollection treeNodeCollection, )
- #endregion
- private void initTreeView()
+// private void initNode(string nodeName)
+// {
+// TreeNode nodeGroupElse1 = new TreeNode();
+// nodeGroupElse1.Text = nodeName;
+// layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+//
+// TreeNode nodeGroupElse = new TreeNode();
+// nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
+// layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
+// }
+
+// private void initTreeNode(XmlNodeList Params)
+// {
+// foreach (XmlNode paramsNode in Params) //layers
+// {
+// foreach (XmlNode layerNode in paramsNode) //layer
+// {
+// initNode(layerNode.Attributes["label"].Value);
+// }
+// }
+//
+// initNode("基础图层");
+// initNode("其他");
+// }
+
+// private void FrmLayerControl_Load(object sender, EventArgs e)
+// {
+//
+// initTreeView();
+// try
+// {
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Application.StartupPath + "\\双屏设置.xml");
+// XmlNodeList Params = doc.SelectNodes("/Params/layers");
+//
+// initTreeNode(Params);
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+//
+// RefreshLayerAndTerrainTree();
+// }
+ private void FrmLayerControl_Load(object sender, EventArgs e)
{
layerTree1.Nodes.Clear();
layerTree2.Nodes.Clear();
-
- //加载layertree2
- initLayerTree(out layerManagerNode1, "图层管理");
- layerTree1.Nodes.Add(layerManagerNode1);
- initLayerTree(out terrainManagerNode1, "地形管理");
- layerTree1.Nodes.Add(terrainManagerNode1);
-
- initLayerTree(out layerManagerNode, "图层管理");
- layerTree2.Nodes.Add(layerManagerNode);
- initLayerTree(out terrainManagerNode, "地形管理");
- layerTree2.Nodes.Add(terrainManagerNode);
+ TreeUtils.initTree(globeControl1, layerTree1, "实测数据");
+ TreeUtils.initTree(globeControl2, layerTree2, "施工数据");
}
- private void initNode(string nodeName)
- {
- TreeNode nodeGroupElse1 = new TreeNode();
- nodeGroupElse1.Text = nodeName;
- layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+ #region wxl重构树形结构代码
- TreeNode nodeGroupElse = new TreeNode();
- nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
- layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
- }
+ ///
+ /// 构造tree,最多解析三层,可放在工具类中
- private void initTreeNode(XmlNodeList Params)
- {
- foreach (XmlNode paramsNode in Params) //layers
- {
- foreach (XmlNode layerNode in paramsNode) //layer
- {
- initNode(layerNode.Attributes["label"].Value);
- }
- }
+ /// 所属地球
+ /// 要加载的树
+ /// 数据来源,实测数据/施工数据/规划数据/红线数据,为空则展示全部
+// private void initTree(GSOGlobeControl gsoGlobeControl,TreeView treeView, string viewDatasrc)
+// {
+// treeView.Nodes.Clear();
+// LayerConfig layerConfig = Utility.layerConfig;
+// List datasrcs = layerConfig.datasrcs;
+// foreach (DataSrc datasrc in datasrcs)
+// {
+// if (viewDatasrc != null && !viewDatasrc.Trim().Equals("") && !datasrc.label.Equals(viewDatasrc)) continue;
+// TreeNode rootNode = treeView.Nodes.Add(datasrc.label);
+// List layerTypes = datasrc.layertypes;
+// foreach (LayerType layerType in layerTypes)
+// {
+// TreeNode secNode = rootNode.Nodes.Add(layerType.label);
+// List layers = layerType.layers;
+// foreach (Layer layer in layers)
+// {
+// GSOLayer gsoLayer = gsoGlobeControl.Globe.Layers.GetLayerByCaption(layer.layer);
+// if (gsoLayer == null) continue;//将不存在的去除
+// TreeNode node = new TreeNode();
+// node.Tag = gsoLayer;
+// node.Text = layer.label;
+// node.Checked = gsoLayer.Visible;
+// if (gsoLayer.Visible)
+// {
+// secNode.Checked = true;
+// rootNode.Checked = true;
+// }
+// secNode.Nodes.Add(node);
+// }
+// }
+// }
+// }
- initNode("基础图层");
- initNode("其他");
- }
+ #endregion
- private void FrmLayerControl_Load(object sender, EventArgs e)
- {
- initTreeView();
- try
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(Application.StartupPath + "\\双屏设置.xml");
- XmlNodeList Params = doc.SelectNodes("/Params/layers");
+// private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
+// TreeView layerTree)
+// {
+// try
+// {
+// for (int i = 0; i < nLayerCount; i++)
+// {
+// GSOLayer layer = globcontrol.Globe.Layers[i];
+// if (layer == null) continue;
+// string layerName = layer.Name;
+// TreeNode node = new TreeNode();
+// node.Tag = layer;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = layer.Caption;
+// node.Checked = layer.Visible;
+//
+// bool isContains = false;
+// for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
+// {
+// if (!layerName.Contains("fttp:"))
+// {
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
+// layerName.Contains("施工") ||
+// layerName.Contains("规划")) continue;
+// break;
+// case "layerTree2":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// else
+// {
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// }
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
+// layerName.Contains("标注") ||
+// isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
+// layerName.Contains("景观") || layerName.Contains("红线"))
+// continue;
+// break;
+// case "layerTree2":
+// if (isContains != false || layerName.Contains("tempLgdData2"))
+// continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
+// }
+//
+// for (int i = 0; i < nTerrainCount; i++)
+// {
+// GSOTerrain terrain = globcontrol.Globe.Terrains[i];
+// if (terrain == null) continue;
+// TreeNode node = new TreeNode();
+// node.Tag = terrain;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = terrain.Caption;
+// node.Checked = terrain.Visible;
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// terrainManagerNode1.Nodes.Add(node);
+// break;
+// case "layerTree2":
+// terrainManagerNode.Nodes.Add(node);
+// break;
+// default:
+// break;
+// }
+// }
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+// }
- initTreeNode(Params);
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
+// private void initTreeNodeCheckedStatus(TreeView layerTreeView)
+// {
+// //节点选中状态控制
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// if (node.Checked != true) continue;
+// layerTreeView.Nodes[0].Checked = true;
+// break;
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOTerrain layer = childNode.Tag as GSOTerrain;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+// }
- RefreshLayerAndTerrainTree();
- }
-
- private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
- TreeView layerTree)
- {
- try
- {
- for (int i = 0; i < nLayerCount; i++)
- {
- GSOLayer layer = globcontrol.Globe.Layers[i];
- if (layer == null) continue;
- string layerName = layer.Name;
- TreeNode node = new TreeNode();
- node.Tag = layer;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = layer.Caption;
- node.Checked = layer.Visible;
-
- bool isContains = false;
- for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
- {
- if (!layerName.Contains("fttp:"))
- {
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
- layerName.Contains("施工") ||
- layerName.Contains("规划")) continue;
- break;
- case "layerTree2":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
- isContains = true;
- break;
- }
- else
- {
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
- isContains = true;
- break;
- }
- }
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
- layerName.Contains("标注") ||
- isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
- layerName.Contains("景观") || layerName.Contains("红线"))
- continue;
- break;
- case "layerTree2":
- if (isContains != false || layerName.Contains("tempLgdData2"))
- continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
- }
-
- for (int i = 0; i < nTerrainCount; i++)
- {
- GSOTerrain terrain = globcontrol.Globe.Terrains[i];
- if (terrain == null) continue;
- TreeNode node = new TreeNode();
- node.Tag = terrain;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = terrain.Caption;
- node.Checked = terrain.Visible;
- switch (layerTree.Name)
- {
- case "layerTree1":
- terrainManagerNode1.Nodes.Add(node);
- break;
- case "layerTree2":
- terrainManagerNode.Nodes.Add(node);
- break;
- default:
- break;
- }
- }
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
- }
-
- private void initTreeNodeCheckedStatus(TreeView layerTreeView)
- {
- //节点选中状态控制
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- if (node.Checked != true) continue;
- layerTreeView.Nodes[0].Checked = true;
- break;
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOTerrain layer = childNode.Tag as GSOTerrain;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
- }
-
- void exPandTreeNode()
- {
- layerManagerNode1.Expand();
- terrainManagerNode1.Expand();
- layerManagerNode.Expand();
- terrainManagerNode.Expand();
- }
+// void exPandTreeNode()
+// {
+// layerManagerNode1.Expand();
+// terrainManagerNode1.Expand();
+// layerManagerNode.Expand();
+// terrainManagerNode.Expand();
+// }
///
/// 刷新节点树
///
- private void RefreshLayerAndTerrainTree()
- {
- int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
- int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
- addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
- initTreeNodeCheckedStatus(layerTree1);
-
- int nLayerCount = globeControl2.Globe.Layers.Count;
- int nTerrainCount = globeControl2.Globe.Terrains.Count;
- addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
- initTreeNodeCheckedStatus(layerTree2);
-
- // 展开
- exPandTreeNode();
- }
+// private void RefreshLayerAndTerrainTree()
+// {
+// int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
+// int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
+// addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
+// initTreeNodeCheckedStatus(layerTree1);
+//
+// int nLayerCount = globeControl2.Globe.Layers.Count;
+// int nTerrainCount = globeControl2.Globe.Terrains.Count;
+// addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
+// initTreeNodeCheckedStatus(layerTree2);
+//
+// // 展开
+// exPandTreeNode();
+// }
///
/// 节点树复选框选中状态改变事件处理
@@ -289,144 +314,132 @@
{
if (e.Action != TreeViewAction.Unknown)
{
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
+ TreeUtils.treeNodeCheckedChange(globeControl2,e.Node);
+ }
+ }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+ private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
}
}
+
+
+// private void layerTree2_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree1(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(childNode, isChecked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree2(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(childNode, isChecked);
+// }
+// }
///
/// 节点树选中状态改变事件
///
///
///
- private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Action != TreeViewAction.Unknown)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
+// private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
+// }
+// }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
- }
- }
- ///
- /// 改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- ///
- ///
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent != null)
- {
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
- }
}
}
diff --git a/MainFrm.cs b/MainFrm.cs
index d22b2c9..ba3bf31 100644
--- a/MainFrm.cs
+++ b/MainFrm.cs
@@ -28,10 +28,10 @@
{
TreeNode layerManagerNode;
bool m_bFullScreen;
-
+
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- private GSOHudButton legend;//定义图例
+ private GSOHudButton legend; //定义图例
private GSOHudButton btnToolNone;
private GSOHudButton btnToolSelect;
ToolTip tooltip1;
@@ -50,12 +50,12 @@
public bool boolfrmShResult;
public bool boolfrmModify;
- public static string m_CurrentQueryLayer;//定义当前查询的图层
+ public static string m_CurrentQueryLayer; //定义当前查询的图层
//定位和闪烁初始化定义
private EnumDesignMode enumDesignMode; //模拟规划设计模式
- private string trackflag;//定义阀门查询个数
+ private string trackflag; //定义阀门查询个数
//记录沿线飞行设置
//int m_nFlyMode = 2;
@@ -67,7 +67,7 @@
Double m_dDigPitWidthAlongLine = 6;
Boolean m_bDigPitByDepth = true;
//选择管线
- int selectState;//wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
+ int selectState; //wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
//private OracleConnection connBackup = null;
//数据集合
@@ -89,8 +89,8 @@
//双屏对比
//bool zhanshi=false;
Thread t = null;
- private GSOHudButton legendSC;//定义图例
- private GSOHudButton legendSG;//定义图例
+ private GSOHudButton legendSC; //定义图例
+ private GSOHudButton legendSG; //定义图例
//管纵图
private GSOHudButton lendendGZ50;
private GSOHudButton lendendGZ36;
@@ -102,12 +102,13 @@
GSOGeoPoint3D bsqPT;
- FrmYJSHTC frmSh;//一键审核窗口全局变量wxl
- FrmWait frmWait;//一键审核等待窗口
+ FrmYJSHTC frmSh; //一键审核窗口全局变量wxl
+ FrmWait frmWait; //一键审核等待窗口
//FrmWait frmWait2 = null;//文档操作等待窗口
float mouseDownX1, mouseDownY1;
float mouseDownX2, mouseDownY2;
+
///
///
///
@@ -164,8 +165,9 @@
RigthMenuSet();
MenuSet();
-
+
}
+
///
/// 右屏中添加管纵图片
///
@@ -259,6 +261,7 @@
}
#region 区域分析
+
if (Utility.userRole.IndexOf("区域分析") < 0)
{
toolRightMenu.Items.Remove(区域分析ToolStripMenuItem);
@@ -278,9 +281,11 @@
区域分析ToolStripMenuItem.DropDownItems.Remove(无源淹没分析ToolStripMenuItem);
}
}
+
#endregion
#region 视域分析
+
if (Utility.userRole.IndexOf("视域分析") < 0)
{
toolRightMenu.Items.Remove(视域分析ToolStripMenuItem);
@@ -300,9 +305,11 @@
视域分析ToolStripMenuItem.DropDownItems.Remove(可视包络分析ToolStripMenuItem);
}
}
+
#endregion
#region 开发分析
+
if (Utility.userRole.IndexOf("开挖分析") < 0)
{
toolRightMenu.Items.Remove(开挖分析ToolStripMenuItem);
@@ -334,9 +341,11 @@
开挖分析ToolStripMenuItem.DropDownItems.Remove(删除隧道ToolStripMenuItem);
}
}
+
#endregion
#region 拓扑分析
+
if (Utility.userRole.IndexOf("拓扑分析") < 0)
{
toolRightMenu.Items.Remove(拓扑分析ToolStripMenuItem);
@@ -372,9 +381,11 @@
拓扑分析ToolStripMenuItem.DropDownItems.Remove(爆管分析ToolStripMenuItem);
}
}
+
#endregion
#region 断面分析
+
if (Utility.userRole.IndexOf("断面分析") < 0)
{
toolRightMenu.Items.Remove(断面分析ToolStripMenuItem);
@@ -398,9 +409,11 @@
断面分析ToolStripMenuItem.DropDownItems.Remove(基线剖面分析ToolStripMenuItem);
}
}
+
#endregion
#region 绘制区域统计
+
if (Utility.userRole.IndexOf("绘制区域统计") < 0)
{
toolRightMenu.Items.Remove(绘制区域统计ToolStripMenuItem);
@@ -445,9 +458,11 @@
}
}
+
#endregion
#region 全区域统计
+
if (Utility.userRole.IndexOf("全区域统计") < 0)
{
toolRightMenu.Items.Remove(全区域统计ToolStripMenuItem);
@@ -492,9 +507,11 @@
}
}
+
#endregion
#region 查询
+
if (Utility.userRole.IndexOf("查询") < 0)
{
toolRightMenu.Items.Remove(查询ToolStripMenuItem);
@@ -542,9 +559,11 @@
查询ToolStripMenuItem.DropDownItems.Remove(附属物查询ToolStripMenuItem);
}
}
+
#endregion
#region 标注
+
if (Utility.userRole.IndexOf("标注") < 0)
{
toolRightMenu.Items.Remove(标注ToolStripMenuItem);
@@ -592,9 +611,11 @@
标注ToolStripMenuItem.DropDownItems.Remove(标注管理ToolStripMenuItem);
}
}
+
#endregion
#region 飞行
+
if (Utility.userRole.IndexOf("飞行") < 0)
{
toolRightMenu.Items.Remove(飞行ToolStripMenuItem);
@@ -618,9 +639,11 @@
飞行ToolStripMenuItem.DropDownItems.Remove(绕眼睛飞行ToolStripMenuItem);
}
}
+
#endregion
#region 编辑
+
if (Utility.userRole.IndexOf("编辑") < 0)
{
toolRightMenu.Items.Remove(编辑ToolStripMenuItem);
@@ -656,9 +679,11 @@
编辑ToolStripMenuItem.DropDownItems.Remove(删除模型ToolStripMenuItem);
}
}
+
#endregion
#region 量算
+
if (Utility.userRole.IndexOf("量算") < 0)
{
toolRightMenu.Items.Remove(量算ToolStripMenuItem);
@@ -694,6 +719,7 @@
量算ToolStripMenuItem.DropDownItems.Remove(地表面积ToolStripMenuItem1);
}
}
+
#endregion
}
@@ -701,6 +727,7 @@
{
#region 权限管理
+
if (Utility.userRole.IndexOf("权限管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem2);
@@ -734,9 +761,11 @@
}
}
+
#endregion
#region 基础工具
+
if (Utility.userRole.IndexOf("基础工具") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem1);
@@ -781,37 +810,47 @@
}
}
+
#endregion
#region 一键审核
+
if (Utility.userRole.IndexOf("一键审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem11);
}
+
#endregion
#region 红线审核
+
if (Utility.userRole.IndexOf("红线审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem6);
}
+
#endregion
#region 双屏对比
+
if (Utility.userRole.IndexOf("双屏对比") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem9);
}
+
#endregion
#region 文档管理
+
if (Utility.userRole.IndexOf("文档管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem4);
}
+
#endregion
#region 基础管理
+
if (Utility.userRole.IndexOf("基础管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem14);
@@ -841,6 +880,7 @@
}
#region Fan Zhang 重构现有代码
+
//初始化控件布局
private void initLayout()
{
@@ -848,37 +888,37 @@
double dsw = SW;
if (SW > 1440)
{
- double myScreen = dsw / 1440;
- buttonX1.Width = (int)(buttonX1.Width * myScreen);
- buttonX2.Width = (int)(buttonX2.Width * myScreen);
- buttonX4.Width = (int)(buttonX4.Width * myScreen);
- buttonX5.Width = (int)(buttonX5.Width * myScreen);
- buttonX6.Width = (int)(buttonX6.Width * myScreen);
- buttonX7.Width = (int)(buttonX8.Width * myScreen);
- buttonX8.Width = (int)(buttonX8.Width * myScreen);
- buttonX9.Width = (int)(buttonX9.Width * myScreen);
- buttonX12.Width = (int)(buttonX12.Width * myScreen);
- buttonX14.Width = (int)(buttonX14.Width * myScreen);
- buttonX15.Width = (int)(buttonX15.Width * myScreen);
- buttonX16.Width = (int)(buttonX16.Width * myScreen);
- buttonX17.Width = (int)(buttonX17.Width * myScreen);
+ double myScreen = dsw/1440;
+ buttonX1.Width = (int) (buttonX1.Width*myScreen);
+ buttonX2.Width = (int) (buttonX2.Width*myScreen);
+ buttonX4.Width = (int) (buttonX4.Width*myScreen);
+ buttonX5.Width = (int) (buttonX5.Width*myScreen);
+ buttonX6.Width = (int) (buttonX6.Width*myScreen);
+ buttonX7.Width = (int) (buttonX8.Width*myScreen);
+ buttonX8.Width = (int) (buttonX8.Width*myScreen);
+ buttonX9.Width = (int) (buttonX9.Width*myScreen);
+ buttonX12.Width = (int) (buttonX12.Width*myScreen);
+ buttonX14.Width = (int) (buttonX14.Width*myScreen);
+ buttonX15.Width = (int) (buttonX15.Width*myScreen);
+ buttonX16.Width = (int) (buttonX16.Width*myScreen);
+ buttonX17.Width = (int) (buttonX17.Width*myScreen);
- labelX1.Width = (int)(labelX1.Width * myScreen);
- labelX2.Width = (int)(labelX2.Width * myScreen);
- labelX3.Width = (int)(labelX3.Width * myScreen);
- labelX6.Width = (int)(labelX6.Width * myScreen);
- labelX8.Width = (int)(labelX8.Width * myScreen);
- labelX9.Width = (int)(labelX9.Width * myScreen);
- labelX12.Width = (int)(labelX12.Width * myScreen);
- labelX13.Width = (int)(labelX13.Width * myScreen);
- labelX14.Width = (int)(labelX14.Width * myScreen);
- labelX16.Width = (int)(labelX16.Width * myScreen);
- labelX17.Width = (int)(labelX17.Width * myScreen);
- labelX11.Width = (int)(labelX11.Width * myScreen);
- labelX19.Width = (int)(labelX19.Width * myScreen);
- labelX21.Width = (int)(labelX21.Width * myScreen);
- labelX22.Width = (int)(labelX22.Width * myScreen);
- labelX24.Width = (int)(labelX24.Width * myScreen);
+ labelX1.Width = (int) (labelX1.Width*myScreen);
+ labelX2.Width = (int) (labelX2.Width*myScreen);
+ labelX3.Width = (int) (labelX3.Width*myScreen);
+ labelX6.Width = (int) (labelX6.Width*myScreen);
+ labelX8.Width = (int) (labelX8.Width*myScreen);
+ labelX9.Width = (int) (labelX9.Width*myScreen);
+ labelX12.Width = (int) (labelX12.Width*myScreen);
+ labelX13.Width = (int) (labelX13.Width*myScreen);
+ labelX14.Width = (int) (labelX14.Width*myScreen);
+ labelX16.Width = (int) (labelX16.Width*myScreen);
+ labelX17.Width = (int) (labelX17.Width*myScreen);
+ labelX11.Width = (int) (labelX11.Width*myScreen);
+ labelX19.Width = (int) (labelX19.Width*myScreen);
+ labelX21.Width = (int) (labelX21.Width*myScreen);
+ labelX22.Width = (int) (labelX22.Width*myScreen);
+ labelX24.Width = (int) (labelX24.Width*myScreen);
}
sideBar1.Visible = false;
sideBar1.ExpandedPanel = sideBarPanelItem3;
@@ -899,7 +939,7 @@
splitContainer1.Panel2Collapsed = true;
- buttonItem87.Checked = true;//默认地上模式
+ buttonItem87.Checked = true; //默认地上模式
ribbonTabItem1.Select(); //初始化状态为浏览
sideBarPanelItem3.Visible = false;
@@ -951,7 +991,7 @@
//图例
legend = new GSOHudButton();
- legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg");//图例P
+ legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg"); //图例P
legend.SetOffset(0, 15);
legend.MinOpaque = 1;
legend.MaxOpaque = 1;
@@ -1002,7 +1042,7 @@
globeControl1.Globe.UserBackgroundColor = Color.White;
globeControl1.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl1.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed * 3;
+ globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed*3;
globeControl1.Globe.EditSnapObject = true;
globeControl1.Globe.IsReleaseMemOutOfView = true;
globeControl1.Globe.ControlPanel.Visible = true;
@@ -1021,18 +1061,22 @@
globeControl2.Globe.UserBackgroundColor = Color.White;
globeControl2.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl2.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed * 3;
+ globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed*3;
globeControl2.Globe.EditSnapObject = true;
globeControl2.Globe.IsReleaseMemOutOfView = true;
globeControl2.Globe.ControlPanel.Visible = false;
- GSOSimplePolygonStyle3D trackingRectStyle = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackingRectStyle =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
trackingRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimplePolygonStyle3D trackRectStyle = globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackRectStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
trackRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimpleLineStyle3D trackRectLineStyle = globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle.LineType = EnumLineType.Solid;
- GSOSimpleLineStyle3D trackRectLineStyle1 = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle1 =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle1.LineType = EnumLineType.Solid;
trackRectLineStyle1.LineColor = Color.FromArgb(0, 174, 255);
trackRectLineStyle1.LineWidth = 1;
@@ -1119,21 +1163,28 @@
globeControl1.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
globeControl2.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
//初始化TreeView
+
+ #region wxl
+
+ initLayerTree();
+
+ #endregion
+
// 勾选实测图层
- foreach (TreeNode tn in layerTree.Nodes)
- {
- if (tn.Nodes.Count <= 0) continue;
- if (tn.Text != "实测数据") continue;
- tn.Checked = true;
- foreach (TreeNode tnChild in tn.Nodes)
- {
- tnChild.Checked = true;
- foreach (TreeNode tnGrandChild in tnChild.Nodes)
- {
- tnGrandChild.Checked = true;
- }
- }
- }
+// foreach (TreeNode tn in layerTree.Nodes)
+// {
+// if (tn.Nodes.Count <= 0) continue;
+// if (tn.Text != "实测数据") continue;
+// tn.Checked = true;
+// foreach (TreeNode tnChild in tn.Nodes)
+// {
+// tnChild.Checked = true;
+// foreach (TreeNode tnGrandChild in tnChild.Nodes)
+// {
+// tnGrandChild.Checked = true;
+// }
+// }
+// }
}
private void doLoadDataForGlobalControl1()
@@ -1142,7 +1193,10 @@
{
globeControl1.Globe.Layers.MoveDown(10000);
//加载实测管线数据
- Utility.dataSource = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID, Utility.DBPassword);
+ Utility.dataSource =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(
+ Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID,
+ Utility.DBPassword);
if (Utility.dataSource != null)
{
@@ -1160,7 +1214,9 @@
globeControl1.Globe.Layers.GetLayerByCaption("红线").Visible = false;
//globleControl1中加载规划数据
- GSODataSource ghDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "", Utility.ghdbuser, Utility.ghdbpwd);
+ GSODataSource ghDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "",
+ Utility.ghdbuser, Utility.ghdbpwd);
if (ghDS != null)
{
for (int j = 0; j < ghDS.DatasetCount; j++)
@@ -1176,13 +1232,16 @@
}
//globeControl1,globeControl2中加载施工数据
- GSODataSource sgDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "", Utility.sgdbuser, Utility.sgdbpwd);
+ GSODataSource sgDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "",
+ Utility.sgdbuser, Utility.sgdbpwd);
if (sgDS != null)
{
for (int m = 0; m < sgDS.DatasetCount; m++)
{
GSODataset dataset = sgDS.GetDatasetAt(m);
- if (dataset != null && !dataset.Caption.Contains("SH") && Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
+ if (dataset != null && !dataset.Caption.Contains("SH") &&
+ Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
{
dataset.Caption = dataset.Name;
globeControl1.Globe.Layers.Add(dataset);
@@ -1196,12 +1255,12 @@
// LoadDataForGlobalControl ss = connectServer;
// ss();
-
+
this.Invoke((EventHandler) delegate
{
connectServer();
});
-
+
}
catch (Exception ex)
@@ -1212,6 +1271,7 @@
private void initLayerTree()
{
+ layerTree.Nodes.Clear();
//加载临时图层节点
layerManagerNode = new TreeNode();
layerManagerNode.ImageIndex = 0;
@@ -1220,59 +1280,60 @@
layerManagerNode.Text = "临时图层";
layerTree.Nodes.Add(layerManagerNode);
- XmlDocument doc = new XmlDocument();
- doc.Load(Utility.filename);
- XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
-
- foreach (XmlNode xmlLayerNode in xmlLayerNodes)
- {
-
- //TODO LIST:创建一级TreeNode(实测、规划、施工)
- TreeNode nodelayer = new TreeNode();
- string layerName = xmlLayerNode.Attributes["label"].Value;
- nodelayer.Text = layerName;
- nodelayer.Checked = false;
- layerTree.Nodes.Add(nodelayer);
-
- XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
- foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
- {
- //TODO LIST:创建二级TreeNode节点
- TreeNode secondLevelNode = new TreeNode();
- string layerType = xmlChildLayerNode.Attributes["label"].Value;
- secondLevelNode.Text = layerType;
-
- if (xmlChildLayerNode.Attributes["type"] != null)
- { //道路图层特殊处理
- string type = xmlChildLayerNode.Attributes["type"].Value;
- secondLevelNode.Tag = type + "|" + layerType;
- }
- else
- {
- secondLevelNode.Tag = layerType;
- }
- secondLevelNode.Checked = false;
- nodelayer.Nodes.Add(secondLevelNode);
-
- XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
-
- foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
- {
- //TODO LIST:创建三级图层节点
- TreeNode layerNode = new TreeNode();
- string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
- string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
- string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
-
- layerNode.Text = actutallyLabelName;
- layerNode.Tag = layerType + "|" + actutallyLabelName;
- layerNode.Checked = false;
- secondLevelNode.Nodes.Add(layerNode);
- }
-
- }
-
- }
+ TreeUtils.initTree(globeControl1, layerTree, null);
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Utility.filename);
+// XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
+//
+// foreach (XmlNode xmlLayerNode in xmlLayerNodes)
+// {
+//
+// //TODO LIST:创建一级TreeNode(实测、规划、施工)
+// TreeNode nodelayer = new TreeNode();
+// string layerName = xmlLayerNode.Attributes["label"].Value;
+// nodelayer.Text = layerName;
+// nodelayer.Checked = false;
+// layerTree.Nodes.Add(nodelayer);
+//
+// XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
+// foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
+// {
+// //TODO LIST:创建二级TreeNode节点
+// TreeNode secondLevelNode = new TreeNode();
+// string layerType = xmlChildLayerNode.Attributes["label"].Value;
+// secondLevelNode.Text = layerType;
+//
+// if (xmlChildLayerNode.Attributes["type"] != null)
+// { //道路图层特殊处理
+// string type = xmlChildLayerNode.Attributes["type"].Value;
+// secondLevelNode.Tag = type + "|" + layerType;
+// }
+// else
+// {
+// secondLevelNode.Tag = layerType;
+// }
+// secondLevelNode.Checked = false;
+// nodelayer.Nodes.Add(secondLevelNode);
+//
+// XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
+//
+// foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
+// {
+// //TODO LIST:创建三级图层节点
+// TreeNode layerNode = new TreeNode();
+// string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
+// string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
+// string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
+//
+// layerNode.Text = actutallyLabelName;
+// layerNode.Tag = layerType + "|" + actutallyLabelName;
+// layerNode.Checked = false;
+// secondLevelNode.Nodes.Add(layerNode);
+// }
+//
+// }
+//
+// }
}
@@ -1298,7 +1359,8 @@
for (int i = 0; i < markerStrs.Length; i++)
{
if (!File.Exists(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd")) continue;
- GSOLayer markerLayer = globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
+ GSOLayer markerLayer =
+ globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
if (markerLayer == null) continue;
TreeNode node1 = new TreeNode();
node1.Text = markerLayer.Caption;
@@ -1314,7 +1376,7 @@
{
initGlobalControl();
//initGlobalMap();
- initLayerTree();
+// initLayerTree();
initMarkerTree();
initLayout();
loadData();
@@ -1383,7 +1445,7 @@
tempnode.Checked = node.Checked ? feature.Visible : false;
tempnode.Tag = feature;
node.Nodes.Add(tempnode);
- GSOFeatureFolder featureFolder = (GSOFeatureFolder)feature;
+ GSOFeatureFolder featureFolder = (GSOFeatureFolder) feature;
VisitFeature3Ds(featureFolder.Features, tempnode);
}
else
@@ -1444,7 +1506,7 @@
///
Boolean CheckDatasetGeoReference(GSODataset dataset, string strDataPath)
{
-
+
if (dataset.GeoReferenceType != EnumGeoReferenceType.Flat) return true;
Boolean bSuccess = false;
if (MessageBox.Show("数据没有空间参考信息,请设置空间参考信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) !=
@@ -1498,7 +1560,7 @@
dlg.Filter = "输出JPEG(*.jpg)|*.jpg|输出PNG(*.png)|*.png|输出BMP(*.bmp)|*.bmp|输出BMP(*.gif)|*.gif";
if (dlg.ShowDialog() == DialogResult.OK)
{
- string extension = Path.GetExtension(dlg.FileName);//扩展名
+ string extension = Path.GetExtension(dlg.FileName); //扩展名
switch (extension)
{
case ".jpg":
@@ -1520,6 +1582,7 @@
globeControl1.Globe.Action = EnumAction3D.ActionNull;
globeControl1.Globe.MouseRoamingEnable = true;
}
+
///
/// 定位正北正90度俯视
///
@@ -1573,100 +1636,112 @@
break;
}
}
+
+ #region wxl 重构树形结构代码
+
+ private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
+ }
+ }
+
+ #endregion
///
- /// layerTree选中后事件处理
+ /// layerTree选中后事件处理
///
///
///
- private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag.ToString().Contains("|"))
- {
- string nodeTag = e.Node.Tag.ToString().Split('|')[1];
- GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- if (e.Node.Tag is GSOFeature)
- {
- if (e.Node.Nodes.Count == 0)
- {
- GSOFeature feat = e.Node.Tag as GSOFeature;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- }
- CheckControl(e);
- }
+// private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag.ToString().Contains("|"))
+// {
+// string nodeTag = e.Node.Tag.ToString().Split('|')[1];
+// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// if (e.Node.Tag is GSOFeature)
+// {
+// if (e.Node.Nodes.Count == 0)
+// {
+// GSOFeature feat = e.Node.Tag as GSOFeature;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// }
+// CheckControl(e);
+// }
///
/// 树节点选中方法
///
///
- private void CheckControl(TreeViewEventArgs e)
- {
- if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- {
- CheckAllChildNodes(e.Node, e.Node.Checked);
- }
- }
+// private void CheckControl(TreeViewEventArgs e)
+// {
+// if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变所有子节点的状态
///
///
///
- private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
- {
- foreach (TreeNode tn in pn.Nodes)
- {
- tn.Checked = IsChecked;
-
- if (tn.Nodes.Count > 0)
- {
- CheckAllChildNodes(tn, IsChecked);
- }
- }
- }
+// private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
+// {
+// foreach (TreeNode tn in pn.Nodes)
+// {
+// tn.Checked = IsChecked;
+//
+// if (tn.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(tn, IsChecked);
+// }
+// }
+// }
//改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent == null) return;
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
-
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
+// private void CheckParentNode(TreeNode curNode)
+// {
+// bool bChecked = false;
+//
+// if (curNode.Parent == null) return;
+// foreach (TreeNode node in curNode.Parent.Nodes)
+// {
+// if (node.Checked)
+// {
+// bChecked = true;
+// break;
+// }
+// }
+//
+// if (bChecked)
+// {
+// curNode.Parent.Checked = true;
+// CheckParentNode(curNode.Parent);
+// }
+// else
+// {
+// curNode.Parent.Checked = false;
+// CheckParentNode(curNode.Parent);
+// }
+// }
private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
diff --git a/MainFrm.designer.cs b/MainFrm.designer.cs
index a9b8c6f..1f9c1f5 100644
--- a/MainFrm.designer.cs
+++ b/MainFrm.designer.cs
@@ -2283,12 +2283,12 @@
//
this.ribbonControl1.BackgroundStyle.Class = "";
this.ribbonControl1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.ribbonControl1.Controls.Add(this.ribbonPanel15);
this.ribbonControl1.Controls.Add(this.ribbonPanel6);
this.ribbonControl1.Controls.Add(this.ribbonPanel4);
this.ribbonControl1.Controls.Add(this.ribbonPanel12);
this.ribbonControl1.Controls.Add(this.ribbonPanel5);
this.ribbonControl1.Controls.Add(this.ribbonPanel2);
- this.ribbonControl1.Controls.Add(this.ribbonPanel15);
this.ribbonControl1.Controls.Add(this.ribbonPanel1);
this.ribbonControl1.Dock = System.Windows.Forms.DockStyle.Top;
this.ribbonControl1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
@@ -2356,6 +2356,7 @@
this.ribbonPanel6.StyleMouseOver.Class = "";
this.ribbonPanel6.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.ribbonPanel6.TabIndex = 38;
+ this.ribbonPanel6.Visible = false;
//
// ribbonBar6
//
@@ -2945,7 +2946,6 @@
this.ribbonPanel15.StyleMouseOver.Class = "";
this.ribbonPanel15.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.ribbonPanel15.TabIndex = 35;
- this.ribbonPanel15.Visible = false;
//
// ribbonBar20
//
@@ -4465,7 +4465,6 @@
// ribbonTabItem9
//
this.ribbonTabItem9.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
- this.ribbonTabItem9.Checked = true;
this.ribbonTabItem9.HoverImage = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem9.HoverImage")));
this.ribbonTabItem9.Image = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem9.Image")));
this.ribbonTabItem9.Name = "ribbonTabItem9";
@@ -4486,6 +4485,7 @@
// ribbonTabItem14
//
this.ribbonTabItem14.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
+ this.ribbonTabItem14.Checked = true;
this.ribbonTabItem14.HoverImage = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem14.HoverImage")));
this.ribbonTabItem14.Image = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem14.Image")));
this.ribbonTabItem14.Name = "ribbonTabItem14";
@@ -5480,7 +5480,7 @@
this.dataGridViewX2.ReadOnly = true;
this.dataGridViewX2.RowHeadersVisible = false;
this.dataGridViewX2.RowTemplate.Height = 23;
- this.dataGridViewX2.Size = new System.Drawing.Size(23359, 92);
+ this.dataGridViewX2.Size = new System.Drawing.Size(23656, 92);
this.dataGridViewX2.TabIndex = 11;
//
// dataGridViewTextBoxColumn10
@@ -5574,7 +5574,7 @@
this.dataGridViewX3.ReadOnly = true;
this.dataGridViewX3.RowHeadersVisible = false;
this.dataGridViewX3.RowTemplate.Height = 23;
- this.dataGridViewX3.Size = new System.Drawing.Size(23358, 127);
+ this.dataGridViewX3.Size = new System.Drawing.Size(23655, 127);
this.dataGridViewX3.TabIndex = 5;
this.dataGridViewX3.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.dataGridViewX3_MouseDoubleClick);
//
@@ -5832,7 +5832,7 @@
this.dataGridViewX8.ReadOnly = true;
this.dataGridViewX8.RowHeadersVisible = false;
this.dataGridViewX8.RowTemplate.Height = 23;
- this.dataGridViewX8.Size = new System.Drawing.Size(133, 92);
+ this.dataGridViewX8.Size = new System.Drawing.Size(116, 92);
this.dataGridViewX8.TabIndex = 11;
//
// dataGridViewTextBoxColumn12
@@ -5927,7 +5927,7 @@
this.dataGridViewX9.ReadOnly = true;
this.dataGridViewX9.RowHeadersVisible = false;
this.dataGridViewX9.RowTemplate.Height = 23;
- this.dataGridViewX9.Size = new System.Drawing.Size(132, 127);
+ this.dataGridViewX9.Size = new System.Drawing.Size(115, 127);
this.dataGridViewX9.TabIndex = 5;
this.dataGridViewX9.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.dataGridViewX9_MouseDoubleClick);
//
diff --git a/Cyberpipe.csproj b/Cyberpipe.csproj
index d9a70bc..ea462be 100644
--- a/Cyberpipe.csproj
+++ b/Cyberpipe.csproj
@@ -1143,6 +1143,7 @@
SysRescInfoManager.cs
+
True
True
diff --git a/Cyberpipe.suo b/Cyberpipe.suo
index c1d31ce..6c59fcf 100644
--- a/Cyberpipe.suo
+++ b/Cyberpipe.suo
Binary files differ
diff --git a/FrmLayerControl.cs b/FrmLayerControl.cs
index 8586041..81346fe 100644
--- a/FrmLayerControl.cs
+++ b/FrmLayerControl.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using GeoScene.Data;
@@ -13,10 +14,10 @@
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- TreeNode terrainManagerNode = null;
- TreeNode layerManagerNode = null;
- TreeNode terrainManagerNode1 = null;
- TreeNode layerManagerNode1 = null;
+// TreeNode terrainManagerNode = null;
+// TreeNode layerManagerNode = null;
+// TreeNode terrainManagerNode1 = null;
+// TreeNode layerManagerNode1 = null;
public FrmLayerControl(GSOGlobeControl ctl1,GSOGlobeControl ctl2)
{
@@ -25,14 +26,14 @@
globeControl2 = ctl2;
}
- private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
- {
- treeNode=new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- }
+// private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
+// {
+// treeNode=new TreeNode();
+// treeNode.ImageIndex = 0;
+// treeNode.SelectedImageIndex = 0;
+// treeNode.Checked = false;
+// treeNode.Text = strTreeNodeText;
+// }
// private void initTreeView()
// {
@@ -51,234 +52,258 @@
// layerTree2.Nodes.Add(terrainManagerNode);
// }
- #region wxl重构树形结构代码
+
+
- private TreeNode treeNode(string strTreeNodeText)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- return treeNode;
- }
-// private void appendToParent(TreeNodeCollection treeNodeCollection, )
- #endregion
- private void initTreeView()
+// private void initNode(string nodeName)
+// {
+// TreeNode nodeGroupElse1 = new TreeNode();
+// nodeGroupElse1.Text = nodeName;
+// layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+//
+// TreeNode nodeGroupElse = new TreeNode();
+// nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
+// layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
+// }
+
+// private void initTreeNode(XmlNodeList Params)
+// {
+// foreach (XmlNode paramsNode in Params) //layers
+// {
+// foreach (XmlNode layerNode in paramsNode) //layer
+// {
+// initNode(layerNode.Attributes["label"].Value);
+// }
+// }
+//
+// initNode("基础图层");
+// initNode("其他");
+// }
+
+// private void FrmLayerControl_Load(object sender, EventArgs e)
+// {
+//
+// initTreeView();
+// try
+// {
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Application.StartupPath + "\\双屏设置.xml");
+// XmlNodeList Params = doc.SelectNodes("/Params/layers");
+//
+// initTreeNode(Params);
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+//
+// RefreshLayerAndTerrainTree();
+// }
+ private void FrmLayerControl_Load(object sender, EventArgs e)
{
layerTree1.Nodes.Clear();
layerTree2.Nodes.Clear();
-
- //加载layertree2
- initLayerTree(out layerManagerNode1, "图层管理");
- layerTree1.Nodes.Add(layerManagerNode1);
- initLayerTree(out terrainManagerNode1, "地形管理");
- layerTree1.Nodes.Add(terrainManagerNode1);
-
- initLayerTree(out layerManagerNode, "图层管理");
- layerTree2.Nodes.Add(layerManagerNode);
- initLayerTree(out terrainManagerNode, "地形管理");
- layerTree2.Nodes.Add(terrainManagerNode);
+ TreeUtils.initTree(globeControl1, layerTree1, "实测数据");
+ TreeUtils.initTree(globeControl2, layerTree2, "施工数据");
}
- private void initNode(string nodeName)
- {
- TreeNode nodeGroupElse1 = new TreeNode();
- nodeGroupElse1.Text = nodeName;
- layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+ #region wxl重构树形结构代码
- TreeNode nodeGroupElse = new TreeNode();
- nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
- layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
- }
+ ///
+ /// 构造tree,最多解析三层,可放在工具类中
- private void initTreeNode(XmlNodeList Params)
- {
- foreach (XmlNode paramsNode in Params) //layers
- {
- foreach (XmlNode layerNode in paramsNode) //layer
- {
- initNode(layerNode.Attributes["label"].Value);
- }
- }
+ /// 所属地球
+ /// 要加载的树
+ /// 数据来源,实测数据/施工数据/规划数据/红线数据,为空则展示全部
+// private void initTree(GSOGlobeControl gsoGlobeControl,TreeView treeView, string viewDatasrc)
+// {
+// treeView.Nodes.Clear();
+// LayerConfig layerConfig = Utility.layerConfig;
+// List datasrcs = layerConfig.datasrcs;
+// foreach (DataSrc datasrc in datasrcs)
+// {
+// if (viewDatasrc != null && !viewDatasrc.Trim().Equals("") && !datasrc.label.Equals(viewDatasrc)) continue;
+// TreeNode rootNode = treeView.Nodes.Add(datasrc.label);
+// List layerTypes = datasrc.layertypes;
+// foreach (LayerType layerType in layerTypes)
+// {
+// TreeNode secNode = rootNode.Nodes.Add(layerType.label);
+// List layers = layerType.layers;
+// foreach (Layer layer in layers)
+// {
+// GSOLayer gsoLayer = gsoGlobeControl.Globe.Layers.GetLayerByCaption(layer.layer);
+// if (gsoLayer == null) continue;//将不存在的去除
+// TreeNode node = new TreeNode();
+// node.Tag = gsoLayer;
+// node.Text = layer.label;
+// node.Checked = gsoLayer.Visible;
+// if (gsoLayer.Visible)
+// {
+// secNode.Checked = true;
+// rootNode.Checked = true;
+// }
+// secNode.Nodes.Add(node);
+// }
+// }
+// }
+// }
- initNode("基础图层");
- initNode("其他");
- }
+ #endregion
- private void FrmLayerControl_Load(object sender, EventArgs e)
- {
- initTreeView();
- try
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(Application.StartupPath + "\\双屏设置.xml");
- XmlNodeList Params = doc.SelectNodes("/Params/layers");
+// private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
+// TreeView layerTree)
+// {
+// try
+// {
+// for (int i = 0; i < nLayerCount; i++)
+// {
+// GSOLayer layer = globcontrol.Globe.Layers[i];
+// if (layer == null) continue;
+// string layerName = layer.Name;
+// TreeNode node = new TreeNode();
+// node.Tag = layer;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = layer.Caption;
+// node.Checked = layer.Visible;
+//
+// bool isContains = false;
+// for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
+// {
+// if (!layerName.Contains("fttp:"))
+// {
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
+// layerName.Contains("施工") ||
+// layerName.Contains("规划")) continue;
+// break;
+// case "layerTree2":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// else
+// {
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// }
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
+// layerName.Contains("标注") ||
+// isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
+// layerName.Contains("景观") || layerName.Contains("红线"))
+// continue;
+// break;
+// case "layerTree2":
+// if (isContains != false || layerName.Contains("tempLgdData2"))
+// continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
+// }
+//
+// for (int i = 0; i < nTerrainCount; i++)
+// {
+// GSOTerrain terrain = globcontrol.Globe.Terrains[i];
+// if (terrain == null) continue;
+// TreeNode node = new TreeNode();
+// node.Tag = terrain;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = terrain.Caption;
+// node.Checked = terrain.Visible;
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// terrainManagerNode1.Nodes.Add(node);
+// break;
+// case "layerTree2":
+// terrainManagerNode.Nodes.Add(node);
+// break;
+// default:
+// break;
+// }
+// }
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+// }
- initTreeNode(Params);
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
+// private void initTreeNodeCheckedStatus(TreeView layerTreeView)
+// {
+// //节点选中状态控制
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// if (node.Checked != true) continue;
+// layerTreeView.Nodes[0].Checked = true;
+// break;
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOTerrain layer = childNode.Tag as GSOTerrain;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+// }
- RefreshLayerAndTerrainTree();
- }
-
- private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
- TreeView layerTree)
- {
- try
- {
- for (int i = 0; i < nLayerCount; i++)
- {
- GSOLayer layer = globcontrol.Globe.Layers[i];
- if (layer == null) continue;
- string layerName = layer.Name;
- TreeNode node = new TreeNode();
- node.Tag = layer;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = layer.Caption;
- node.Checked = layer.Visible;
-
- bool isContains = false;
- for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
- {
- if (!layerName.Contains("fttp:"))
- {
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
- layerName.Contains("施工") ||
- layerName.Contains("规划")) continue;
- break;
- case "layerTree2":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
- isContains = true;
- break;
- }
- else
- {
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
- isContains = true;
- break;
- }
- }
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
- layerName.Contains("标注") ||
- isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
- layerName.Contains("景观") || layerName.Contains("红线"))
- continue;
- break;
- case "layerTree2":
- if (isContains != false || layerName.Contains("tempLgdData2"))
- continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
- }
-
- for (int i = 0; i < nTerrainCount; i++)
- {
- GSOTerrain terrain = globcontrol.Globe.Terrains[i];
- if (terrain == null) continue;
- TreeNode node = new TreeNode();
- node.Tag = terrain;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = terrain.Caption;
- node.Checked = terrain.Visible;
- switch (layerTree.Name)
- {
- case "layerTree1":
- terrainManagerNode1.Nodes.Add(node);
- break;
- case "layerTree2":
- terrainManagerNode.Nodes.Add(node);
- break;
- default:
- break;
- }
- }
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
- }
-
- private void initTreeNodeCheckedStatus(TreeView layerTreeView)
- {
- //节点选中状态控制
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- if (node.Checked != true) continue;
- layerTreeView.Nodes[0].Checked = true;
- break;
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOTerrain layer = childNode.Tag as GSOTerrain;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
- }
-
- void exPandTreeNode()
- {
- layerManagerNode1.Expand();
- terrainManagerNode1.Expand();
- layerManagerNode.Expand();
- terrainManagerNode.Expand();
- }
+// void exPandTreeNode()
+// {
+// layerManagerNode1.Expand();
+// terrainManagerNode1.Expand();
+// layerManagerNode.Expand();
+// terrainManagerNode.Expand();
+// }
///
/// 刷新节点树
///
- private void RefreshLayerAndTerrainTree()
- {
- int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
- int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
- addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
- initTreeNodeCheckedStatus(layerTree1);
-
- int nLayerCount = globeControl2.Globe.Layers.Count;
- int nTerrainCount = globeControl2.Globe.Terrains.Count;
- addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
- initTreeNodeCheckedStatus(layerTree2);
-
- // 展开
- exPandTreeNode();
- }
+// private void RefreshLayerAndTerrainTree()
+// {
+// int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
+// int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
+// addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
+// initTreeNodeCheckedStatus(layerTree1);
+//
+// int nLayerCount = globeControl2.Globe.Layers.Count;
+// int nTerrainCount = globeControl2.Globe.Terrains.Count;
+// addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
+// initTreeNodeCheckedStatus(layerTree2);
+//
+// // 展开
+// exPandTreeNode();
+// }
///
/// 节点树复选框选中状态改变事件处理
@@ -289,144 +314,132 @@
{
if (e.Action != TreeViewAction.Unknown)
{
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
+ TreeUtils.treeNodeCheckedChange(globeControl2,e.Node);
+ }
+ }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+ private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
}
}
+
+
+// private void layerTree2_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree1(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(childNode, isChecked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree2(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(childNode, isChecked);
+// }
+// }
///
/// 节点树选中状态改变事件
///
///
///
- private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Action != TreeViewAction.Unknown)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
+// private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
+// }
+// }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
- }
- }
- ///
- /// 改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- ///
- ///
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent != null)
- {
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
- }
}
}
diff --git a/MainFrm.cs b/MainFrm.cs
index d22b2c9..ba3bf31 100644
--- a/MainFrm.cs
+++ b/MainFrm.cs
@@ -28,10 +28,10 @@
{
TreeNode layerManagerNode;
bool m_bFullScreen;
-
+
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- private GSOHudButton legend;//定义图例
+ private GSOHudButton legend; //定义图例
private GSOHudButton btnToolNone;
private GSOHudButton btnToolSelect;
ToolTip tooltip1;
@@ -50,12 +50,12 @@
public bool boolfrmShResult;
public bool boolfrmModify;
- public static string m_CurrentQueryLayer;//定义当前查询的图层
+ public static string m_CurrentQueryLayer; //定义当前查询的图层
//定位和闪烁初始化定义
private EnumDesignMode enumDesignMode; //模拟规划设计模式
- private string trackflag;//定义阀门查询个数
+ private string trackflag; //定义阀门查询个数
//记录沿线飞行设置
//int m_nFlyMode = 2;
@@ -67,7 +67,7 @@
Double m_dDigPitWidthAlongLine = 6;
Boolean m_bDigPitByDepth = true;
//选择管线
- int selectState;//wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
+ int selectState; //wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
//private OracleConnection connBackup = null;
//数据集合
@@ -89,8 +89,8 @@
//双屏对比
//bool zhanshi=false;
Thread t = null;
- private GSOHudButton legendSC;//定义图例
- private GSOHudButton legendSG;//定义图例
+ private GSOHudButton legendSC; //定义图例
+ private GSOHudButton legendSG; //定义图例
//管纵图
private GSOHudButton lendendGZ50;
private GSOHudButton lendendGZ36;
@@ -102,12 +102,13 @@
GSOGeoPoint3D bsqPT;
- FrmYJSHTC frmSh;//一键审核窗口全局变量wxl
- FrmWait frmWait;//一键审核等待窗口
+ FrmYJSHTC frmSh; //一键审核窗口全局变量wxl
+ FrmWait frmWait; //一键审核等待窗口
//FrmWait frmWait2 = null;//文档操作等待窗口
float mouseDownX1, mouseDownY1;
float mouseDownX2, mouseDownY2;
+
///
///
///
@@ -164,8 +165,9 @@
RigthMenuSet();
MenuSet();
-
+
}
+
///
/// 右屏中添加管纵图片
///
@@ -259,6 +261,7 @@
}
#region 区域分析
+
if (Utility.userRole.IndexOf("区域分析") < 0)
{
toolRightMenu.Items.Remove(区域分析ToolStripMenuItem);
@@ -278,9 +281,11 @@
区域分析ToolStripMenuItem.DropDownItems.Remove(无源淹没分析ToolStripMenuItem);
}
}
+
#endregion
#region 视域分析
+
if (Utility.userRole.IndexOf("视域分析") < 0)
{
toolRightMenu.Items.Remove(视域分析ToolStripMenuItem);
@@ -300,9 +305,11 @@
视域分析ToolStripMenuItem.DropDownItems.Remove(可视包络分析ToolStripMenuItem);
}
}
+
#endregion
#region 开发分析
+
if (Utility.userRole.IndexOf("开挖分析") < 0)
{
toolRightMenu.Items.Remove(开挖分析ToolStripMenuItem);
@@ -334,9 +341,11 @@
开挖分析ToolStripMenuItem.DropDownItems.Remove(删除隧道ToolStripMenuItem);
}
}
+
#endregion
#region 拓扑分析
+
if (Utility.userRole.IndexOf("拓扑分析") < 0)
{
toolRightMenu.Items.Remove(拓扑分析ToolStripMenuItem);
@@ -372,9 +381,11 @@
拓扑分析ToolStripMenuItem.DropDownItems.Remove(爆管分析ToolStripMenuItem);
}
}
+
#endregion
#region 断面分析
+
if (Utility.userRole.IndexOf("断面分析") < 0)
{
toolRightMenu.Items.Remove(断面分析ToolStripMenuItem);
@@ -398,9 +409,11 @@
断面分析ToolStripMenuItem.DropDownItems.Remove(基线剖面分析ToolStripMenuItem);
}
}
+
#endregion
#region 绘制区域统计
+
if (Utility.userRole.IndexOf("绘制区域统计") < 0)
{
toolRightMenu.Items.Remove(绘制区域统计ToolStripMenuItem);
@@ -445,9 +458,11 @@
}
}
+
#endregion
#region 全区域统计
+
if (Utility.userRole.IndexOf("全区域统计") < 0)
{
toolRightMenu.Items.Remove(全区域统计ToolStripMenuItem);
@@ -492,9 +507,11 @@
}
}
+
#endregion
#region 查询
+
if (Utility.userRole.IndexOf("查询") < 0)
{
toolRightMenu.Items.Remove(查询ToolStripMenuItem);
@@ -542,9 +559,11 @@
查询ToolStripMenuItem.DropDownItems.Remove(附属物查询ToolStripMenuItem);
}
}
+
#endregion
#region 标注
+
if (Utility.userRole.IndexOf("标注") < 0)
{
toolRightMenu.Items.Remove(标注ToolStripMenuItem);
@@ -592,9 +611,11 @@
标注ToolStripMenuItem.DropDownItems.Remove(标注管理ToolStripMenuItem);
}
}
+
#endregion
#region 飞行
+
if (Utility.userRole.IndexOf("飞行") < 0)
{
toolRightMenu.Items.Remove(飞行ToolStripMenuItem);
@@ -618,9 +639,11 @@
飞行ToolStripMenuItem.DropDownItems.Remove(绕眼睛飞行ToolStripMenuItem);
}
}
+
#endregion
#region 编辑
+
if (Utility.userRole.IndexOf("编辑") < 0)
{
toolRightMenu.Items.Remove(编辑ToolStripMenuItem);
@@ -656,9 +679,11 @@
编辑ToolStripMenuItem.DropDownItems.Remove(删除模型ToolStripMenuItem);
}
}
+
#endregion
#region 量算
+
if (Utility.userRole.IndexOf("量算") < 0)
{
toolRightMenu.Items.Remove(量算ToolStripMenuItem);
@@ -694,6 +719,7 @@
量算ToolStripMenuItem.DropDownItems.Remove(地表面积ToolStripMenuItem1);
}
}
+
#endregion
}
@@ -701,6 +727,7 @@
{
#region 权限管理
+
if (Utility.userRole.IndexOf("权限管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem2);
@@ -734,9 +761,11 @@
}
}
+
#endregion
#region 基础工具
+
if (Utility.userRole.IndexOf("基础工具") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem1);
@@ -781,37 +810,47 @@
}
}
+
#endregion
#region 一键审核
+
if (Utility.userRole.IndexOf("一键审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem11);
}
+
#endregion
#region 红线审核
+
if (Utility.userRole.IndexOf("红线审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem6);
}
+
#endregion
#region 双屏对比
+
if (Utility.userRole.IndexOf("双屏对比") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem9);
}
+
#endregion
#region 文档管理
+
if (Utility.userRole.IndexOf("文档管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem4);
}
+
#endregion
#region 基础管理
+
if (Utility.userRole.IndexOf("基础管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem14);
@@ -841,6 +880,7 @@
}
#region Fan Zhang 重构现有代码
+
//初始化控件布局
private void initLayout()
{
@@ -848,37 +888,37 @@
double dsw = SW;
if (SW > 1440)
{
- double myScreen = dsw / 1440;
- buttonX1.Width = (int)(buttonX1.Width * myScreen);
- buttonX2.Width = (int)(buttonX2.Width * myScreen);
- buttonX4.Width = (int)(buttonX4.Width * myScreen);
- buttonX5.Width = (int)(buttonX5.Width * myScreen);
- buttonX6.Width = (int)(buttonX6.Width * myScreen);
- buttonX7.Width = (int)(buttonX8.Width * myScreen);
- buttonX8.Width = (int)(buttonX8.Width * myScreen);
- buttonX9.Width = (int)(buttonX9.Width * myScreen);
- buttonX12.Width = (int)(buttonX12.Width * myScreen);
- buttonX14.Width = (int)(buttonX14.Width * myScreen);
- buttonX15.Width = (int)(buttonX15.Width * myScreen);
- buttonX16.Width = (int)(buttonX16.Width * myScreen);
- buttonX17.Width = (int)(buttonX17.Width * myScreen);
+ double myScreen = dsw/1440;
+ buttonX1.Width = (int) (buttonX1.Width*myScreen);
+ buttonX2.Width = (int) (buttonX2.Width*myScreen);
+ buttonX4.Width = (int) (buttonX4.Width*myScreen);
+ buttonX5.Width = (int) (buttonX5.Width*myScreen);
+ buttonX6.Width = (int) (buttonX6.Width*myScreen);
+ buttonX7.Width = (int) (buttonX8.Width*myScreen);
+ buttonX8.Width = (int) (buttonX8.Width*myScreen);
+ buttonX9.Width = (int) (buttonX9.Width*myScreen);
+ buttonX12.Width = (int) (buttonX12.Width*myScreen);
+ buttonX14.Width = (int) (buttonX14.Width*myScreen);
+ buttonX15.Width = (int) (buttonX15.Width*myScreen);
+ buttonX16.Width = (int) (buttonX16.Width*myScreen);
+ buttonX17.Width = (int) (buttonX17.Width*myScreen);
- labelX1.Width = (int)(labelX1.Width * myScreen);
- labelX2.Width = (int)(labelX2.Width * myScreen);
- labelX3.Width = (int)(labelX3.Width * myScreen);
- labelX6.Width = (int)(labelX6.Width * myScreen);
- labelX8.Width = (int)(labelX8.Width * myScreen);
- labelX9.Width = (int)(labelX9.Width * myScreen);
- labelX12.Width = (int)(labelX12.Width * myScreen);
- labelX13.Width = (int)(labelX13.Width * myScreen);
- labelX14.Width = (int)(labelX14.Width * myScreen);
- labelX16.Width = (int)(labelX16.Width * myScreen);
- labelX17.Width = (int)(labelX17.Width * myScreen);
- labelX11.Width = (int)(labelX11.Width * myScreen);
- labelX19.Width = (int)(labelX19.Width * myScreen);
- labelX21.Width = (int)(labelX21.Width * myScreen);
- labelX22.Width = (int)(labelX22.Width * myScreen);
- labelX24.Width = (int)(labelX24.Width * myScreen);
+ labelX1.Width = (int) (labelX1.Width*myScreen);
+ labelX2.Width = (int) (labelX2.Width*myScreen);
+ labelX3.Width = (int) (labelX3.Width*myScreen);
+ labelX6.Width = (int) (labelX6.Width*myScreen);
+ labelX8.Width = (int) (labelX8.Width*myScreen);
+ labelX9.Width = (int) (labelX9.Width*myScreen);
+ labelX12.Width = (int) (labelX12.Width*myScreen);
+ labelX13.Width = (int) (labelX13.Width*myScreen);
+ labelX14.Width = (int) (labelX14.Width*myScreen);
+ labelX16.Width = (int) (labelX16.Width*myScreen);
+ labelX17.Width = (int) (labelX17.Width*myScreen);
+ labelX11.Width = (int) (labelX11.Width*myScreen);
+ labelX19.Width = (int) (labelX19.Width*myScreen);
+ labelX21.Width = (int) (labelX21.Width*myScreen);
+ labelX22.Width = (int) (labelX22.Width*myScreen);
+ labelX24.Width = (int) (labelX24.Width*myScreen);
}
sideBar1.Visible = false;
sideBar1.ExpandedPanel = sideBarPanelItem3;
@@ -899,7 +939,7 @@
splitContainer1.Panel2Collapsed = true;
- buttonItem87.Checked = true;//默认地上模式
+ buttonItem87.Checked = true; //默认地上模式
ribbonTabItem1.Select(); //初始化状态为浏览
sideBarPanelItem3.Visible = false;
@@ -951,7 +991,7 @@
//图例
legend = new GSOHudButton();
- legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg");//图例P
+ legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg"); //图例P
legend.SetOffset(0, 15);
legend.MinOpaque = 1;
legend.MaxOpaque = 1;
@@ -1002,7 +1042,7 @@
globeControl1.Globe.UserBackgroundColor = Color.White;
globeControl1.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl1.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed * 3;
+ globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed*3;
globeControl1.Globe.EditSnapObject = true;
globeControl1.Globe.IsReleaseMemOutOfView = true;
globeControl1.Globe.ControlPanel.Visible = true;
@@ -1021,18 +1061,22 @@
globeControl2.Globe.UserBackgroundColor = Color.White;
globeControl2.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl2.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed * 3;
+ globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed*3;
globeControl2.Globe.EditSnapObject = true;
globeControl2.Globe.IsReleaseMemOutOfView = true;
globeControl2.Globe.ControlPanel.Visible = false;
- GSOSimplePolygonStyle3D trackingRectStyle = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackingRectStyle =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
trackingRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimplePolygonStyle3D trackRectStyle = globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackRectStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
trackRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimpleLineStyle3D trackRectLineStyle = globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle.LineType = EnumLineType.Solid;
- GSOSimpleLineStyle3D trackRectLineStyle1 = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle1 =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle1.LineType = EnumLineType.Solid;
trackRectLineStyle1.LineColor = Color.FromArgb(0, 174, 255);
trackRectLineStyle1.LineWidth = 1;
@@ -1119,21 +1163,28 @@
globeControl1.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
globeControl2.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
//初始化TreeView
+
+ #region wxl
+
+ initLayerTree();
+
+ #endregion
+
// 勾选实测图层
- foreach (TreeNode tn in layerTree.Nodes)
- {
- if (tn.Nodes.Count <= 0) continue;
- if (tn.Text != "实测数据") continue;
- tn.Checked = true;
- foreach (TreeNode tnChild in tn.Nodes)
- {
- tnChild.Checked = true;
- foreach (TreeNode tnGrandChild in tnChild.Nodes)
- {
- tnGrandChild.Checked = true;
- }
- }
- }
+// foreach (TreeNode tn in layerTree.Nodes)
+// {
+// if (tn.Nodes.Count <= 0) continue;
+// if (tn.Text != "实测数据") continue;
+// tn.Checked = true;
+// foreach (TreeNode tnChild in tn.Nodes)
+// {
+// tnChild.Checked = true;
+// foreach (TreeNode tnGrandChild in tnChild.Nodes)
+// {
+// tnGrandChild.Checked = true;
+// }
+// }
+// }
}
private void doLoadDataForGlobalControl1()
@@ -1142,7 +1193,10 @@
{
globeControl1.Globe.Layers.MoveDown(10000);
//加载实测管线数据
- Utility.dataSource = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID, Utility.DBPassword);
+ Utility.dataSource =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(
+ Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID,
+ Utility.DBPassword);
if (Utility.dataSource != null)
{
@@ -1160,7 +1214,9 @@
globeControl1.Globe.Layers.GetLayerByCaption("红线").Visible = false;
//globleControl1中加载规划数据
- GSODataSource ghDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "", Utility.ghdbuser, Utility.ghdbpwd);
+ GSODataSource ghDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "",
+ Utility.ghdbuser, Utility.ghdbpwd);
if (ghDS != null)
{
for (int j = 0; j < ghDS.DatasetCount; j++)
@@ -1176,13 +1232,16 @@
}
//globeControl1,globeControl2中加载施工数据
- GSODataSource sgDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "", Utility.sgdbuser, Utility.sgdbpwd);
+ GSODataSource sgDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "",
+ Utility.sgdbuser, Utility.sgdbpwd);
if (sgDS != null)
{
for (int m = 0; m < sgDS.DatasetCount; m++)
{
GSODataset dataset = sgDS.GetDatasetAt(m);
- if (dataset != null && !dataset.Caption.Contains("SH") && Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
+ if (dataset != null && !dataset.Caption.Contains("SH") &&
+ Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
{
dataset.Caption = dataset.Name;
globeControl1.Globe.Layers.Add(dataset);
@@ -1196,12 +1255,12 @@
// LoadDataForGlobalControl ss = connectServer;
// ss();
-
+
this.Invoke((EventHandler) delegate
{
connectServer();
});
-
+
}
catch (Exception ex)
@@ -1212,6 +1271,7 @@
private void initLayerTree()
{
+ layerTree.Nodes.Clear();
//加载临时图层节点
layerManagerNode = new TreeNode();
layerManagerNode.ImageIndex = 0;
@@ -1220,59 +1280,60 @@
layerManagerNode.Text = "临时图层";
layerTree.Nodes.Add(layerManagerNode);
- XmlDocument doc = new XmlDocument();
- doc.Load(Utility.filename);
- XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
-
- foreach (XmlNode xmlLayerNode in xmlLayerNodes)
- {
-
- //TODO LIST:创建一级TreeNode(实测、规划、施工)
- TreeNode nodelayer = new TreeNode();
- string layerName = xmlLayerNode.Attributes["label"].Value;
- nodelayer.Text = layerName;
- nodelayer.Checked = false;
- layerTree.Nodes.Add(nodelayer);
-
- XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
- foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
- {
- //TODO LIST:创建二级TreeNode节点
- TreeNode secondLevelNode = new TreeNode();
- string layerType = xmlChildLayerNode.Attributes["label"].Value;
- secondLevelNode.Text = layerType;
-
- if (xmlChildLayerNode.Attributes["type"] != null)
- { //道路图层特殊处理
- string type = xmlChildLayerNode.Attributes["type"].Value;
- secondLevelNode.Tag = type + "|" + layerType;
- }
- else
- {
- secondLevelNode.Tag = layerType;
- }
- secondLevelNode.Checked = false;
- nodelayer.Nodes.Add(secondLevelNode);
-
- XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
-
- foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
- {
- //TODO LIST:创建三级图层节点
- TreeNode layerNode = new TreeNode();
- string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
- string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
- string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
-
- layerNode.Text = actutallyLabelName;
- layerNode.Tag = layerType + "|" + actutallyLabelName;
- layerNode.Checked = false;
- secondLevelNode.Nodes.Add(layerNode);
- }
-
- }
-
- }
+ TreeUtils.initTree(globeControl1, layerTree, null);
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Utility.filename);
+// XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
+//
+// foreach (XmlNode xmlLayerNode in xmlLayerNodes)
+// {
+//
+// //TODO LIST:创建一级TreeNode(实测、规划、施工)
+// TreeNode nodelayer = new TreeNode();
+// string layerName = xmlLayerNode.Attributes["label"].Value;
+// nodelayer.Text = layerName;
+// nodelayer.Checked = false;
+// layerTree.Nodes.Add(nodelayer);
+//
+// XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
+// foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
+// {
+// //TODO LIST:创建二级TreeNode节点
+// TreeNode secondLevelNode = new TreeNode();
+// string layerType = xmlChildLayerNode.Attributes["label"].Value;
+// secondLevelNode.Text = layerType;
+//
+// if (xmlChildLayerNode.Attributes["type"] != null)
+// { //道路图层特殊处理
+// string type = xmlChildLayerNode.Attributes["type"].Value;
+// secondLevelNode.Tag = type + "|" + layerType;
+// }
+// else
+// {
+// secondLevelNode.Tag = layerType;
+// }
+// secondLevelNode.Checked = false;
+// nodelayer.Nodes.Add(secondLevelNode);
+//
+// XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
+//
+// foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
+// {
+// //TODO LIST:创建三级图层节点
+// TreeNode layerNode = new TreeNode();
+// string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
+// string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
+// string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
+//
+// layerNode.Text = actutallyLabelName;
+// layerNode.Tag = layerType + "|" + actutallyLabelName;
+// layerNode.Checked = false;
+// secondLevelNode.Nodes.Add(layerNode);
+// }
+//
+// }
+//
+// }
}
@@ -1298,7 +1359,8 @@
for (int i = 0; i < markerStrs.Length; i++)
{
if (!File.Exists(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd")) continue;
- GSOLayer markerLayer = globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
+ GSOLayer markerLayer =
+ globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
if (markerLayer == null) continue;
TreeNode node1 = new TreeNode();
node1.Text = markerLayer.Caption;
@@ -1314,7 +1376,7 @@
{
initGlobalControl();
//initGlobalMap();
- initLayerTree();
+// initLayerTree();
initMarkerTree();
initLayout();
loadData();
@@ -1383,7 +1445,7 @@
tempnode.Checked = node.Checked ? feature.Visible : false;
tempnode.Tag = feature;
node.Nodes.Add(tempnode);
- GSOFeatureFolder featureFolder = (GSOFeatureFolder)feature;
+ GSOFeatureFolder featureFolder = (GSOFeatureFolder) feature;
VisitFeature3Ds(featureFolder.Features, tempnode);
}
else
@@ -1444,7 +1506,7 @@
///
Boolean CheckDatasetGeoReference(GSODataset dataset, string strDataPath)
{
-
+
if (dataset.GeoReferenceType != EnumGeoReferenceType.Flat) return true;
Boolean bSuccess = false;
if (MessageBox.Show("数据没有空间参考信息,请设置空间参考信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) !=
@@ -1498,7 +1560,7 @@
dlg.Filter = "输出JPEG(*.jpg)|*.jpg|输出PNG(*.png)|*.png|输出BMP(*.bmp)|*.bmp|输出BMP(*.gif)|*.gif";
if (dlg.ShowDialog() == DialogResult.OK)
{
- string extension = Path.GetExtension(dlg.FileName);//扩展名
+ string extension = Path.GetExtension(dlg.FileName); //扩展名
switch (extension)
{
case ".jpg":
@@ -1520,6 +1582,7 @@
globeControl1.Globe.Action = EnumAction3D.ActionNull;
globeControl1.Globe.MouseRoamingEnable = true;
}
+
///
/// 定位正北正90度俯视
///
@@ -1573,100 +1636,112 @@
break;
}
}
+
+ #region wxl 重构树形结构代码
+
+ private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
+ }
+ }
+
+ #endregion
///
- /// layerTree选中后事件处理
+ /// layerTree选中后事件处理
///
///
///
- private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag.ToString().Contains("|"))
- {
- string nodeTag = e.Node.Tag.ToString().Split('|')[1];
- GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- if (e.Node.Tag is GSOFeature)
- {
- if (e.Node.Nodes.Count == 0)
- {
- GSOFeature feat = e.Node.Tag as GSOFeature;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- }
- CheckControl(e);
- }
+// private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag.ToString().Contains("|"))
+// {
+// string nodeTag = e.Node.Tag.ToString().Split('|')[1];
+// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// if (e.Node.Tag is GSOFeature)
+// {
+// if (e.Node.Nodes.Count == 0)
+// {
+// GSOFeature feat = e.Node.Tag as GSOFeature;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// }
+// CheckControl(e);
+// }
///
/// 树节点选中方法
///
///
- private void CheckControl(TreeViewEventArgs e)
- {
- if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- {
- CheckAllChildNodes(e.Node, e.Node.Checked);
- }
- }
+// private void CheckControl(TreeViewEventArgs e)
+// {
+// if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变所有子节点的状态
///
///
///
- private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
- {
- foreach (TreeNode tn in pn.Nodes)
- {
- tn.Checked = IsChecked;
-
- if (tn.Nodes.Count > 0)
- {
- CheckAllChildNodes(tn, IsChecked);
- }
- }
- }
+// private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
+// {
+// foreach (TreeNode tn in pn.Nodes)
+// {
+// tn.Checked = IsChecked;
+//
+// if (tn.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(tn, IsChecked);
+// }
+// }
+// }
//改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent == null) return;
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
-
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
+// private void CheckParentNode(TreeNode curNode)
+// {
+// bool bChecked = false;
+//
+// if (curNode.Parent == null) return;
+// foreach (TreeNode node in curNode.Parent.Nodes)
+// {
+// if (node.Checked)
+// {
+// bChecked = true;
+// break;
+// }
+// }
+//
+// if (bChecked)
+// {
+// curNode.Parent.Checked = true;
+// CheckParentNode(curNode.Parent);
+// }
+// else
+// {
+// curNode.Parent.Checked = false;
+// CheckParentNode(curNode.Parent);
+// }
+// }
private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
diff --git a/MainFrm.designer.cs b/MainFrm.designer.cs
index a9b8c6f..1f9c1f5 100644
--- a/MainFrm.designer.cs
+++ b/MainFrm.designer.cs
@@ -2283,12 +2283,12 @@
//
this.ribbonControl1.BackgroundStyle.Class = "";
this.ribbonControl1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.ribbonControl1.Controls.Add(this.ribbonPanel15);
this.ribbonControl1.Controls.Add(this.ribbonPanel6);
this.ribbonControl1.Controls.Add(this.ribbonPanel4);
this.ribbonControl1.Controls.Add(this.ribbonPanel12);
this.ribbonControl1.Controls.Add(this.ribbonPanel5);
this.ribbonControl1.Controls.Add(this.ribbonPanel2);
- this.ribbonControl1.Controls.Add(this.ribbonPanel15);
this.ribbonControl1.Controls.Add(this.ribbonPanel1);
this.ribbonControl1.Dock = System.Windows.Forms.DockStyle.Top;
this.ribbonControl1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
@@ -2356,6 +2356,7 @@
this.ribbonPanel6.StyleMouseOver.Class = "";
this.ribbonPanel6.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.ribbonPanel6.TabIndex = 38;
+ this.ribbonPanel6.Visible = false;
//
// ribbonBar6
//
@@ -2945,7 +2946,6 @@
this.ribbonPanel15.StyleMouseOver.Class = "";
this.ribbonPanel15.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.ribbonPanel15.TabIndex = 35;
- this.ribbonPanel15.Visible = false;
//
// ribbonBar20
//
@@ -4465,7 +4465,6 @@
// ribbonTabItem9
//
this.ribbonTabItem9.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
- this.ribbonTabItem9.Checked = true;
this.ribbonTabItem9.HoverImage = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem9.HoverImage")));
this.ribbonTabItem9.Image = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem9.Image")));
this.ribbonTabItem9.Name = "ribbonTabItem9";
@@ -4486,6 +4485,7 @@
// ribbonTabItem14
//
this.ribbonTabItem14.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
+ this.ribbonTabItem14.Checked = true;
this.ribbonTabItem14.HoverImage = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem14.HoverImage")));
this.ribbonTabItem14.Image = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem14.Image")));
this.ribbonTabItem14.Name = "ribbonTabItem14";
@@ -5480,7 +5480,7 @@
this.dataGridViewX2.ReadOnly = true;
this.dataGridViewX2.RowHeadersVisible = false;
this.dataGridViewX2.RowTemplate.Height = 23;
- this.dataGridViewX2.Size = new System.Drawing.Size(23359, 92);
+ this.dataGridViewX2.Size = new System.Drawing.Size(23656, 92);
this.dataGridViewX2.TabIndex = 11;
//
// dataGridViewTextBoxColumn10
@@ -5574,7 +5574,7 @@
this.dataGridViewX3.ReadOnly = true;
this.dataGridViewX3.RowHeadersVisible = false;
this.dataGridViewX3.RowTemplate.Height = 23;
- this.dataGridViewX3.Size = new System.Drawing.Size(23358, 127);
+ this.dataGridViewX3.Size = new System.Drawing.Size(23655, 127);
this.dataGridViewX3.TabIndex = 5;
this.dataGridViewX3.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.dataGridViewX3_MouseDoubleClick);
//
@@ -5832,7 +5832,7 @@
this.dataGridViewX8.ReadOnly = true;
this.dataGridViewX8.RowHeadersVisible = false;
this.dataGridViewX8.RowTemplate.Height = 23;
- this.dataGridViewX8.Size = new System.Drawing.Size(133, 92);
+ this.dataGridViewX8.Size = new System.Drawing.Size(116, 92);
this.dataGridViewX8.TabIndex = 11;
//
// dataGridViewTextBoxColumn12
@@ -5927,7 +5927,7 @@
this.dataGridViewX9.ReadOnly = true;
this.dataGridViewX9.RowHeadersVisible = false;
this.dataGridViewX9.RowTemplate.Height = 23;
- this.dataGridViewX9.Size = new System.Drawing.Size(132, 127);
+ this.dataGridViewX9.Size = new System.Drawing.Size(115, 127);
this.dataGridViewX9.TabIndex = 5;
this.dataGridViewX9.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.dataGridViewX9_MouseDoubleClick);
//
diff --git a/MainFrm.resx b/MainFrm.resx
index b408d34..61fa81b 100644
--- a/MainFrm.resx
+++ b/MainFrm.resx
@@ -351,804 +351,6 @@
766, 54
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlDMzFEOUI4NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
- NEI4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlDMzFEOUI3NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
- NEI4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk5Mzk2NTZBRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz73sIMwAAADIElEQVRIS7WVa0iTYRTH56Uiysvm3TkvpLl5DRIvQYWVWl+6
- iNEVg0yhQqloQZHkLT+Y0YdAs75IpEUhzERZoZhsRpZlS7soblotsRwoxhqWeTrnYZtv+u7NsB74cZ5z
- zv89/z17HzYRAPxXeIv/EpFXcOyi4BvKhfehv4FvKBfeh+ayqIUDlIgBgT8whpRYoT2fhgvNVJKBQT9s
- hB8/QZDPpnEIjEhg0J5Pw4Vm0mwygG9T06BSqQQhTUhUMoRGpyxYT7OZwfhXC6jVakFIYzNYqN5uMGKa
- BI1GIwhpghXJaJJi13d0dEB2bj74hsWzSDlXbzfQG02g0+kEIU2wIomdovzKdVifngnFFytBeb4cLN+n
- WaSc6hfKKqB/eHTWoHfwExgMBkFII5MnQUD4WlAWloO26wVs35MDmifPmQFFyqlO/aKKqlmDp31DYDKZ
- BCGNTJ4IPqHx8LJvACbNUw7p6e2HuJQMNIhhBuaHj3vBYrEI0tb1BoIiE9kJ9h7Oh7EJM+g/jEJuwVlY
- s24ri5RTnfo5BedAIoueIYPumvomuHzjzm9cq2uCq7UNUH2rEarr7kNd0yP26Y+eKoSWtk4wfpmAg7kn
- ITY5DUorq1g8cOQEqze3aplOEhRtJoMcL1mMTixV9IgD5a/tSBVDYql8AKOBQLEJtTP08gY/jjFiktKg
- 5FIV21Ok3NazvmR2AvrFkCAJyGYk1comZAuHDM/AyLvHThfBveZ26NOPwI59eey7LsbhFCmnOvVJ5+Ef
- rrYZLEU8EZ85+HLwW7ZCLMVTFWdkHoLut+/hgbYHaE9XN31XNsupTrWV3jKVs+uS3cyAD0cLe331jW3Q
- qRt0CPUlQVHDKI+fN9iGo4W90uNnyuA2vvRtWTlQgxeg/dk7FimnOvU9/CNqUe47b7ANRwt7AfjpKvAK
- Gt18Qur35ymhRfsKKLr5hN7EyzDq7humWrrcfSfKxbz/QlwcLDck1snZJdUzYHUDmk57+K1qdXJyzsL6
- RmQD9ZmObygXB8sVIRO6fXQB4hC6eRQppzr1XXmHclnAckFomLc1Um5dItEvhZ97MQXP9N0AAAAASUVO
- RK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhDMTdBQjRENEFBRTExRTQ4QjQyODY0MDNBNTJE
- NzNCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhDMTdBQjRDNEFBRTExRTQ4QjQyODY0MDNBNTJE
- NzNCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUQyMjc4QTlBQjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4eHsDfAAAB00lEQVRIS7XVWytEURQH8HniTTNHLs0NCXNcXjTN5dH9g/gM
- 3jx590QhFDJS0gyTGmpqaqJIMW4hzlAoOaWISS7LWifntI3ddnTGrl92e/57/We/DBsA/CvuYSHZSr0t
- lvCGsriX/oI3lMW9lM/SwgF9SEHwizs08IX2vAyLZvZRgXJ+cQWv7yB0q96Ds86voT0vw6KZNJsK4Pnl
- DWKxmBBlqhpDUN0UNp2n2VrB/WMOEomEEGX0ArN5o+BGfYB0Oi1EGa8cwpKw6bxRcH6lQiaTEaKMVw5q
- rzCbNwr2z65BURQhynh8Qe0VZvNGwdZBFlRVFaKMxxfQXmE2rxc8rW3sQy6XE0puHoG7IaC9YnV9j5th
- pbZPqOCDCrbH5uIwOD7/zWgkDkNTizAyuwQjkWWIxFNQWduqmVxI/MiPz6/A8HTUuDMTTYLkbrqhgt5S
- T3PG4ZJ3HE7focElZx0u3yn+VQiG1ZLymmm7s74f88f42S6bl9zyJZ6d6Xckd+Mt5ieogH4xJORHHajt
- SzvqZPSgECpHZSiA2DztuxBlad+NgnpBEbIjusiiYboKRF+kGFHegUR5ImkFv7G0eAPzWVq8gfksLd5/
- oULiHhYS97BwwPYJlSCUgVubViQAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJEMDQyOEZBNEFEMjExRTRBN0MxRDBCNzJGRUND
- MDEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMDQyOEY5NEFEMjExRTRBN0MxRDBCNzJGRUND
- MDEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkRDRkI1RDVEMTRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz59jfe3AAAEbUlEQVRIS8WTeUybZRzHF48/pnFOuQRajkFLgQFb5iRLNJr4
- l/EPgsniUI4xZDAY1zyxwApsMJyIME61rByl3DfoYGBrgbWUY06FcZSCha4rQ8jYxkqPr2/fvkv8o2Sg
- S/wkT970eb6/T5/39z7Prv8dt/Oql4mR4HZJ3ccoXFxhVCzB9DT9JueJdSq6c1wzVZFupepVzxu34XVj
- CaEDi1jX6hF8ZQoeokl4iBVwzV9YdU1XRlIl28eVo8phCdXwGltEeOUsro6psaHVwcSDh5volc4iOO8X
- 7KuVwb1hEi7J8myq9PEQO//I85oafr0KtEpUpNSETm+AwWDAvfv3YTQaybnm/t/AyO6Ga+UonJOnIijF
- 1hA9tWI2qle9RxcI+RIpmZpTIfBULhIyyqHVahHPKcN70TmYnFFCp9OhqXcc9KwW0DOHVl3YU1aUyjJu
- F1SpfhO3EM6bMMsVt+D8Zhz2HIpC4oU6bG5uIu4cD3tfTwAjIBNypQYbGxsISquBU34PaDHiVEplGXee
- SuIjVaBv3Lz7gJg8vHg4FlZvc+ATVoLipiHsD8qCXWAO7IPK8MG5FjLXKboOeoYADkldUkplGWb7vOb4
- 4BzxIXXQE/1m59WDXdgBvxPfwz6UC4eQUth/WIBDZ2qQXj+K7IYRImeE5s5fOFrcDPvPapcJzVNmmwVY
- VxWG9U09uau1tTVymPpc0iYFLew7OEUJ4BwtALfvJpl5xMrKCu6s3cUrn5YbCM1us80CrJZZVWjXr7j3
- 4CE0y8v4IrcaH+cK4Bv+DRyPl8ApphYuia3wZ3eCUzOA1PIfcVuzjHnlIgK/vgy7mHzTG+w12yzA5E53
- edYPo1c2i/X1dQTEfwvbwDQ4hhXg8OcN4P48Df+UTrgkNIAeW4Hg3Hbo9Xq0iGSgs4ls5CUhoXnObLOA
- S8pkhG/bdZzgDZJnffT3GXieLAA9XgB2/RjZjuQqMWhxfBw824H55XWyhcfy+HDNqoB1SH4Codn6G7iw
- p3d78EaVPlXX0CaZgkqlgly1gpCiK0htHCH/IL6oFcEF3ZjT3CUvXqv0DzDSS0FPq1a/8EbYS5Rqa+if
- SAJ8KoeNR7gitEsnoVQqSbGOkJmYX1ggxaY70SabwIGMUrjn8I3WIXnBRPnWu/8nDnE9Sd7cAaP/ZSES
- 6/rRKJRArpiHXC7HzekZNIukiCyrhW9mGZgXa4w2kUVnibJnzdXbxP5URzyDO4QjxGl5i9uNpMZeKP5U
- IrywAq9yCnGAOGGMonbYxpVnEPGdyR9BO/MTj8kfgXeNFPt5IngVtoF1kQ9WcTs8qgfgmNreQMS21xZL
- 0E6Ln6ef75tg8sfgXT8O77oReAkkYNXJ4PRV/4ztyfo9VPTf4xjdf9CpQKzdxxuGe6UMbhXEmc8V6mze
- r3qNivx3HGN7UmglQ6CVDMIxXwybo5UcaunJQD8te9rhyx4JrWwItlGNUut3y5+hlp4cDhFCpl14k9jq
- nR+Y1NTjIe7NlmMnWKoHsOtvjWYcKpheqFQAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERTg4QTFENEQyMjExRTRBODEyODk0M0RBMTc5
- Qjg3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERTg4QTFDNEQyMjExRTRBODEyODk0M0RBMTc5
- Qjg3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjJGOUEyRDEyMTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6wJF34AAACl0lEQVRIS62Vy08TURSH73/QhQtXVnBhxEcMiUkhbEg0hB1R
- Q1i68C8wIW5cEqMLN7ho2Ji4YiEhWq0prYUhfULbadN3obTaChobtZEUsFY9nnPS6WM6HYowyZf87j33
- nG/amaai9geOBYA+4pTxihmBE8DcTQB4J8em/9IwSQyagmrtL+z9rMFmvnhkKvtV7tcVHPz6DVsftulA
- AckdhUg8zf19eoLKAd597iMLMItewfOxUDTN/bqCH3tVSG8VWIBZ9AoJApEk9+sKvu/uQ2IjzwJkGtH8
- OrTwy3Hu77vIAnV9mgWlcgWiqRwLjAMmkOMbPbNTKnN/JJntqJGEBZ++7oKcyLLgLN4JrU8Cms2C4pcy
- BKKZumCI18temQ/8DzSLZlBmQX7nG/jCKdpgAa0driCtY5iFHuqHSjNoFtaags1iCdzBBG+QgNY2aZ0F
- mIUe6osENAtrTUEq/7kDq9PHAszU5yYoq9f1i9cUSCD5ozxDEeTsrhAoONwyxLLb8MrhYQFmZYCHsnpd
- v3hNgQROb5hnKIK29944MAThTBEWbS4WYBZ6qC/sKSy5ZJ6BGUQg8b4Bbhjod4AZXlhXWdBa10LrIVul
- AM9ggS+aa6AIMMO8ZYUO0KeyIOMtZyaQpXpNi4LFucYzMINwhbMNcMNw5oIJMMNKIA0LNg88mZuH/ssj
- dPgBMnN+cBRmny1wrRtSMMMzWCCFMg0UAeY2Fh0+GL5xG8Zu3oHXUrCj3g0WONdTbeBm21/o1N17gPtg
- 98Xh3VoS3qzKMDI22agfglnY/Uld8NDc/ZlZwAwvl4Ngun6LGh8rdfVDViNs3rguOOzq6XOD8PDpc7g2
- OkHDH7XWtYa2It66Y4eCQ8cRfpvUNa2hTUD8A6JMaBvCyTdJAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERjY3MEZENEQyMzExRTRCNDlGQUMwMzk0OTAw
- Qzc4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERjY3MEZDNEQyMzExRTRCNDlGQUMwMzk0OTAw
- Qzc4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjhGOUEyRDEyMTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6GKmpFAAAC+UlEQVRIS63T20vTYRzH8Yforj/Ei24UiSgKIygKi8oyxZQo
- cvNYeXaesmzqPGu2POd0ulSsnIdaurTSTJ3O6UxTPGya5vCQx5AuPn39RbHop7nZxQt+z3ie93e/Z4w1
- p7nsCoBt8R6yBF/UHPv+Wb0rfFFzm99CRIwEW1gnqXzxTXxRc0ydctm4OlID2sxrw6iCtiwItC+A2P/D
- frLnjwGNSZdMq6N1WOvLwFpP4l/WdRlY6Jaio9Ab7QXba8sVoDHZGdT8PYS9THDqMGnLsKpNw0qXGCua
- BO55VZdNQ6U/DRRibVCGb+N1pH5bukoRqHmDHOIG1N8/X2F4I8WyNhtf2+9hqSsZxqZ4upbb6HsSZLHO
- Im90ym6hNVcIaktYTexZyUelGEvaHMy/jcFiZxo0xX5Y7ivGcn8JkVmA9uvlWBmqwpJeAWovs+poR99O
- eRgWtQWYVUdgrj0FH+i+F3XF3NoappZYGJrEoLaOVYpOOTY/FGJB+xjTqnDMtMTTAC/Ma/Ix/TLUKl9e
- x0JfFQpql7PykBP7lWIXzPeUYLIhHCPKCLr/AMy2ZsKoDLTKdNNdvM8TgNpRTBZwfJ885CTmaIChPhwa
- mS+GnkdhqjEWY9X+VplqvIMXEhdQ24mZeuSs0N/BNNWWj4k6EdSZHhhXxWH0aSCGFd4c4Tk7zk7XBlUM
- FKLToK4Nm+0qYnneRzqGGiSYaIiiyZdhVCdgqFSIwRJPjucZW85O1pvnRmvDkO9zFNTdy2Y6HjGp4HCF
- 5kk4xhoiURd/EROv4tBfeM0qAyUC9Mp9QM0+7o829T6LZV0/mNycS6+nFKFWfAGj9ZHozfGwil7miZYH
- 7qCmghsw+S6VpV894KuUuKFbfhNNqa749CwY3dm0toK+VABl3HlQM5obYHybwFLc7W1y/Y5BlX6FfgNn
- DNcEY0DhZZX+MiGKbh0DNR24AYYWMSfJzc6GZBApwS5skIzNODcg0dV2V36FtsJ7yBJ8UXO8hyzBFzXH
- ++H/A/YDv9/V87iOlrYAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
- RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
- ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
- s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
- uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
- xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
- iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
- qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
- GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
- NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
- KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
- qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
- HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
- wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
- 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA3MTZBNTkzNEEwMjExRTRBQjdERDhBQkEzMDEx
- MzZEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA3MTZBNTkyNEEwMjExRTRBQjdERDhBQkEzMDEx
- MzZEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTgxNjM4Q0YwMTRBRTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
- 0HWhD93n++Dbua+fK9NvoTM5+Udx5mye9NjgCZNf0HEnpN5U5RbPa9+0bdfQ+0eOPzp5ppvG96JfjFkM
- nXR/vOP0ePOu/deyCuf8JVSorJny7HQdvR9MTCUm+fUYgyehazLBVCCd8ttpJbQANtO3cDjWbO9werzd
- ruK5F9Ld3p7YBEdHCE/WMi0s0jf5mefm0e+ZCsXEf85i/98XsP4NaTpxka74X+IAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBREU3RDk2NEFCMDExRTQ4OUM5QjZFOENGQzJF
- MDk1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBREU3RDk1NEFCMDExRTQ4OUM5QjZFOENGQzJF
- MDk1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEM5Mzk2NTZBRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz52g1XsAAADeUlEQVRIS62Va0hTYRiAXzVNoQs6oUCttJu3aqatrLxr2k0n
- W6bLLlLSxTKCKLoQQUg3IbLMflSgBRGRP7JSSzGnWalYdpnV1MQu1tBWWklqvr3fp2dsOytSfOFh3/l2
- eJ7tnDMGkkmzGCqigsARhPlUQqCi8nEd9v7GEYP5mFcI4K/e/hGHeQ2B7p4+1HV8Nf6Kw4a5GGxtCHzv
- 7sU2nR4lbr4/AUBFKIeD4GKYBL79+IX6rm622U8nSgnX4SC4GCaBL50/OXwTwIUY1ohcQkCn/84ZDLBP
- I5p16TBl7XYIoaXVwI54RC4h8LG9k/OvQPIOmEZUJW2F+XRoPbBrOiKXEGj9rOdYCqi2gxXhnLQNIo6f
- n9tEa7ViI79PoojIJQSaP3RwjAOJaSAjjhL3N+9zrD+W499UVJnSeeVmWDvtlcWlgCedZnK5RC4h8KZV
- x2FryQSYmrAVjh/MnP46/57yS7VmZ9+zxr1Yr92NtQ1pWFmfiBevL9QpUqE0JhHcyWuImLsMAU1zG4et
- V6yHC1l5oe+evNmD1ZoteL9OgaW1K7GkRoF3H8ZigTocb5bFY8bZWbpoFVwh7yiCR8xdhsAz7XuOh9QD
- D2R6twyIEzG/JApz88N7z+T5d+VcDezKL43Ea4UxeCjTqyNUDpUBYeBFXjvjgOAyCdS9asXDJ3NQFj3u
- 7eWCyG/FjxR45OyMr6s3S1qCYqE8RA654Uq4dOiUV/v+E9P0i1ZA9Zwg8COnA2HyDZiLYRw4dyAjC50n
- z8awBBvNbbWyZ+8x10+By+GONARCbe1gDBPJloCvfKODluQ10mD+qDK5LWFyD6pfvOUYBzydXL0v2I+V
- rI9Mhud5BQE9i+RQPt2P30BBYrM4HmYSNf5REGS0b5CzYdKq+iaOITA44wmPiLXwaFfGhDbZMkinYxNJ
- 8CpwXxgHobQcPbhv8XegrtNyzAPsOtqHJUPeml1jm/1jYDkdM5G5hB3bDL6KhknLal9xzAN8gpMgVZHm
- oKUAuwx29H420c9O/l9KHms4bC0KLFCAY6CSHr+VoHJy88lWbEjHoqoXWPzw5ZCxGKCxkslBLo22L1+6
- ahPeUj/FwgfPh8zpSzfQ0cWrwVKAjfXcWFjjPm9isWSSbx/7JEPF0cWzcYzE7dTfAmysfSLB2z0Awm1H
- 8ycnjrD4N/kX4gEg8A9sAFSe4VuPvgAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzN0Y5NjgxNEE5MDExRTRBMzU1RUM1MkVEQTU3
- REQxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzN0Y5NjgwNEE5MDExRTRBMzU1RUM1MkVEQTU3
- REQxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUU1QUVCQUI4RjRBRTQxMUI2QTlC
- RjEwMkVGQzEyNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4Oz1B+AAABO0lEQVRIS7WUP0sDQRDFt0snIcEiklhGJLH3k6bNp0ifYCUo
- KWwMIRCx0EYxEEL+IOPO4SxzczN7d7gGfuzd7Hszd9nHOQD4V9RiStRiStQi0b68GXkgwkjzcdQigU1O
- 32CC+9IjUYsENvjY7EySDHhev5skGXA3X5r8aYA3lx0wET1otYgmNMcOku+jXtMg4QJFJMb1a7uPmjUd
- rVzHDfDy9pmJaZViCe5rPq7hYpgvXjPw2hNtTqBOevk+F8L0YRGQQosyHxfSf0jUegPLZwkrNedYfi6o
- 9Y2RWP6cACPHYnf4XauQablfHYAxo6jt9sfwRGWgVvrVASKmdd7g2OoN4P5pVYhqbgCPmnPuzHPtua1C
- s9OHyeyxEFU+IJcCb2p4zj3dKjQvrsat3jD4CwNCIcEv14/fpAfcDwXsled4Tu6+AAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlGMEQ1RDBCNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
- MzBCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlGMEQ1RDBBNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
- MzBCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzFDMDRERTRENjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6zemTaAAABh0lEQVRIS7WUvUoDQRSFEwiBKPEHsRAkb+ArWIsv4CNYCSKI
- jRD8a1S0m9QhdTobG5uARZogBJSkiLASFJJChQiRcJ2z2bnMZtbxCnrhY3YO556z1aSI6F9JFP+SRBEs
- FFaUhoSopAyQKGIBi58jEuErcQSAhY/hyP5DL8Y7mQMcAcD8Phh+u2Tzk9cRAMz914G4wOd1BABzt/cm
- LvB5HQHA3On2xQU+ryMAmB8en8UFPq8jAJjvWk/iAp/XEQDM9WZHXODzOgKAudZoiwt8XkcAMN/U78Ml
- CcY7mQMcAWhz+FRc3zZFREXypwKYEiG/e+ykc1WYVRrCGUk8nGUHsyic6nKeetUK4dTESjjLDjZUlqaV
- hiS8lEsh0Z1LTFYs2FBazFFwcUzB+YE+T8bffD+i4LRIwSV0jdZaO5vhHXtRPmfFgg1n81mlIQnt/W1q
- bKyH34dz2XKUz1mxYBaFU5zJUG1tlXDu5TMcjuEsO5hF4exOpZWGtnLpWDiGs+xgFv9gxlmU+gIVyyIX
- YCSg/AAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVGNUQ0RjNENEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
- RkEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVGNUQ0RjNDNEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
- RkEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzUxNUY0MjEyRDRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz7jldwbAAAEyklEQVRIS6WWDUzUdRjHoeXWVktIc74MLREMUxBQV4RYkBmL
- SBwSoZIFCgULlOJFDJDxqkiAqGgoiIQ6jaFLB1EqUaC8iMgdL8cJB3fHwR13HO8Hh3x7fn+pwN01nM/2
- 2X77Pb/n+33+v/3/95zBbGOVnZM58QHhRKwgnp9KPXuQ2CtJ6ScOjGo0fcMjI93llVX55us3rqbUc49P
- zDLyw9auL4iw5l+IsMY//BRujcygdcg+ug83rpzCsVhf3C6+hHg/W+R++985BtU3pey1cCCpOYQhJzo9
- 8kPX1tZcDoS0Jp2jrCgWmakhOJMVA4GwBd1KNSQ9veiUdeNifjqyMsJxveD7f8+z2rPBlg0kNZ9gJjMj
- L8RqQlSegIbLX6CuYAcOBm9FHe8B2rt70SZTgNfehTphJ+paCaEYjSIJkmP24PaPnrhfsBP8okCcCbZ8
- RFLmxIuc6PTICV5Dh4IxNqSEemAA6adzwBdJ8VeDEL/XNqGkmo/iKh4HW5fWNCL7QiEqq2sw3N+Dijwf
- nPx6FUjKkpjLiU6P7MDVqL/gj8nJSY4bpbcQnZyK8EOJCI2Ox3dRcY+JjkNYTAIi4w4j7+JlKBQKjI+P
- 42qqJ9J832AGawkjTnR6ZPm/iXvn9+ARiWsnJjCu1YLeGshJQCKVolMs5hBLJOiSydAjl0OpUmFweBhj
- ZJAfuxVJ3ub6DTJ9LVCd40Pij6AZ01IRoWVGumE5dmZEM45RjRbnolwR72Wm3yDt85W4e2o3FVLnGg1G
- xsYwSvDEdxB03gEa6vJwSopOhkZHkRPhgkPbTfUbpOwwR+XxXdT9OM79EQ/lgBLNkjpsz1iMP5t/oU7H
- dIoz+oeGcTbUGVHblus3SPJYgfI0LxLSIPmaL4LyHOB5bClK6gswNDLKoUucoezvx+n9W3Dg49f0G8S5
- LUfZEU8MkpC8T43YQi8UVp3kutOFenAIvep+dClUkClVOPXNZoQ6L9NvEE3uN+PdMUBvRXevCgqVmjob
- gGpgEH1PwPZYTq7soy9bDolcgRNfOWL/ZhP9BpEfLsVvMW70kQ1C2qMgEyVnUiUoQ2CuPZTUra7rYYi6
- ZDi+910EvbdEv0GYkwlKIj+BijrL+jUKbdJO1LZWwD19EUrrr0Cu6tMpzhCKJcj40gEB9ov1G4RsWoLi
- UBe6V7r/n70RkPMOPDJMcLXqLPc0DF3ijBaRCOneG+H31kL9BkF2i3B9nzN1qoagQ4yDlzxQUE6/lHRd
- XfLeGbA9cbccwk4JHggegi8UIc3LDj7rFug3CNiwENcCt6CH3ojm9g7qqoN79HZpF9rpjjumYGu2x3I8
- 4UNU85pwv0WAox5vY7f1/xj42SxAkf/7kCmUuNfUiho+FTa3gtfaRh22o6lNxMHWbI/lKut5uFVdh7sN
- jTiybQN2rpmv18DQ1+rViUJfRwia+bjXLEB1YxNqyai+VUiditDY1sHB1myP5e408FFR34Cb5WVIdLXF
- Zxbz2DywJYw51WkxZ9eqebxUFyvk7rDHD24bkOhig4RZEM/4yAZhm1Ziq6lRG2mxscmm2owwdF72suOn
- ZkZCTzNjuJsaYdtT4vr63E4L4xcCSYv9IXiJU30i2BxlzmzkWRHsLp8GVsNqp2aygcHfZtZtYIryU78A
- AAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUzNzJDMjE3NEFENjExRTRCNjE0OEVEQzI4MEM0
- RTZDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUzNzJDMjE2NEFENjExRTRCNjE0OEVEQzI4MEM0
- RTZDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI3NUQ0QkNENDRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6PyaLfAAADMElEQVRIS6VUXUiTYRT+vi3Tzd+ps23+3KRigtiPkolEQReG
- UYTkhWatpWlWGkRdddfdSPImqUAJjSIT00oxLJIk0cR+tFSyzDJtgaMkDEPkdM7ZPvm2vS6jBx6es3Pe
- 8zzvtm+TohLS/ov+AACStLgEQuJyLRJWYK1yzh/+FgCoQrpnfM4fOGBhcUlIMkEVkma4H4i1y2kFcMD8
- wqKQZILKZqTqmlTAWrfvMjhgbv63Dwm0hLWQohn1eNEbzrlfPiTQAtZCKjP1GXdAIC+r4XD+9CGBFrDm
- RVJ1re6pZ0GyHHMvIawauYVNCFPfvvuQQAtYC6meKXU0amNsaGN/ZR60xIf9aIgN3cpGE9OzZCZ85nEm
- pGiWlLABmuJCnUOXrNB7chdct4TUo32ANDbp4NuielDpqWfePdaPX6GrohSK4uLhlCEo96YlZLbOFHzH
- oJXjMSBcGn4/zQGovEDqXXtzeTb+BTrKj0J3+Q54djYP7EZdTU2MPjFSK8eieQR9QtLg6GcOQPWgqKeQ
- ZyOfoK30CDw+lg2Ot3Z4VLoNqo269mCNHIa2WjYn9A1PcAAqU6m9VV3TF9psOwwPS3JgZugCdNoyocwU
- jU+RlImWBpezGz0vxzkA1YOiHvPFO7Ca1kGHLQtmXp2HdutmqN+/F6JiU+h3kOpyVeHJwBgHoLIpqajm
- 189HoaG4CNqsGTA1UAWth9Lg6r490PygGyLjUikgzuWqQlffCAegelDdUwLqigqhpXgjTPYeh+bCFCg2
- RkEk3vxuVz/P0c43oLP3DQegLhspNalSFxiNcLswHT48LYNbBUlQk7ebzenmyhm08w1o7xmiAP6hRZiT
- 70eYkzpctUuJWdHmwWs74+F1Uz7cyE+E4ohQB5mHm9a3GywpTXzektyKduIAIsKI3ISkL4rIdYle05C9
- VrZVBmvtl7eboUyv7V4jSQdwRn8FdI72iErtCUxnIuifkJ5hUqUOq9Jr7OeCNU6bTpNVqtMcDJSldOwn
- KnOk+jypJ5QANRWc0cs5SEelXr54QidfwVYAMoiHq4W/gNM6OaNCJ+diaUIqN/43+Atwg27t+9ZXBUn6
- A2MdqQeVc5pWAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUzQzNGNDI5NEQyQzExRTQ4QkE1QUNCMEVDRDZF
- MDVEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUzQzNGNDI4NEQyQzExRTQ4QkE1QUNCMEVDRDZF
- MDVEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI1NUY4OTYyQTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6IsaOmAAADF0lEQVQ4T62U/UuTURTH+0nICqRI1ERMMyNQe8N0ChqBwQhN
- yvwhEgJjVCqJ/qCibZo6tzQ339h6Nre5prapUzc1XzItX1ilzuWMLLVAen+xf6DTuTxjdxsFVj58ebjc
- c+7nnud7z3228DbpIaDFH/CfoqCn72DIDvNfPDM2KAqyr8PcJxqY+QBTb8kkjocXQTsKigGwfqYJHqIg
- 1OxHGHvlWPx4hXB1YyA3g4CBhqst+piEnrDA3rA95vBAY1x8d7lq/DVZwm5PQZNvoKYdypSgHgbVEIh1
- cLOZzOCbSSsyRQRba6uWtcpVLbPcwlglInNUCJNWWKqABqMLCGvGlfpJELaQ/V1Vd1lujAhe0chtUrH5
- ZExnmJ85MdomEa+qZMbIEF2BHGunILSjdZwYgTt4gJqjjj0Rltml1Zq9AeL0Mn71Wn2mtDU80MIvsFTw
- O+KPIoWC8BNYRIUaqrRQroJKjQOk9N+xLBF2pXJFKfnsDGYa8gS6xOO2whyMuoHaHpGzZ/pBM0IMrtXD
- nT4HqNHXe0lYoogMFeQP4jbSDkCPTUyXmnNoPutSo+9WN5DEQDyeWCWnhqm4p7Oimt3b54rzmmKPVHKz
- 0Xg0AU1pz87VJp+yXOfd9t3mBmLXsGrsJhSsDtF4iOWxKdpzyQNnuRW7vEUp13obFG05OVUBPtO5V1Sn
- k5q4SX8ENfWA6C7xHsP981Bb2sf38ZKd4JhSuXUJHPHhg/WJnAeZFw0Xzt/w8erRtLmBnB/CSmaC599I
- 2PYVRl+CXigu3R9SfCC0Pf1MZ1oqvqvjogX7gtRFJfb1n24g7GblfQcFP2fkBYm5anxqQcbLKgzyK/Df
- WRTkV5+RMTg84ZrgAOHo4ZIDVNdJw67CpsVLZ5gifj97Typlq2ZFQXj8LKh5EHpnaIar8N+Al5l9Y9Vs
- T7OiIAzjqaMsa6QJnBkeWvgOHdPkAuIV67PSeQpCYYZplsZ+KyyWLRyFF8D553EDbURY770J0rrYJbda
- SYE4iWb9NcgpRKDrOMAWwYP6d5BTaC52zyaAWDlAm/DweL8AX9zXukfxHsIAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjYzQTM5NEY4Mjg0OUU0MTE5NDBEQTc4ODZEQzk5
- N0NGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJGRTU5OEQ1NDlEQjExRTRBRUVDOTkyMjQ5NzEw
- REUwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJGRTU5OEQ0NDlEQjExRTRBRUVDOTkyMjQ5NzEw
- REUwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTY0MkI1RjlEQTQ5RTQxMUE0QzNB
- MjdEOTJBQzc3QkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjNBMzk0RjgyODQ5RTQxMTk0MERB
- Nzg4NkRDOTk3Q0YiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6B5sF9AAACe0lEQVRIS7WVb2jMcRzHL7UHanF/Mts5prE/1li3kAfu5Ak7
- 5IHNobBkSC2UIuGJkrrSWRvTmHQWK8U1T8jqUtYwkZpaGjV/Js6to5YwfXze39+fu/v23f36hXe9us+f
- 7/v9rd/dr3MQ0X/F4Zm3+K9QhWajNNlBFZqN0mQHS6lMdrCUyqSgimllUsy4XmOmp+QRDllQWbygjjq6
- uimZStOX8a+ixox3pXrM1JLCDAqYJmY7c669M0bff07mcLbtEl9QE8k6V6BH5ooXMsHZZX7ae+AY7W45
- SrPm19LbsSR9m/iRA2bYGefggVePzUgKBzeu9sQpmZ4QcG/WMtk7eLjv0WMz0kOz+TX6MUXvP6cFeNbD
- bz6YvQFm2Bk9PPByZO6jksLB5KvRTzTyLikIrG2ktsvXzd4g2hGjYP1ms4eHvb850qkl65LCQW/ntVs0
- 9HpMcPx0K1X4V1Ff/3NzhnphbVDsjBk8Lm/VE44s0ZJ1KS4Ie8uXUvPBE7Tn0ElCzTMqrV5BO/cfEaDG
- TD5X6PFFONLygsTF7jj1vxihyPkYNTS1iFrFxm37KHIhJmp43L7qZxzp0pJ1SeHhQGgLJQaH6fb9R1QX
- 2EB3Ek9FryLe95j8K9eLT/TB0FZcskOP1iRdkIh23aR7Ay9pzaZddKY9Jup8nIpeoXXhZlHD655b85Bj
- p2npLOmCML+dD/iTZhaX3+UvbRB1PpzeygFnSUUvatecRUMzisoOc+x0LZ3FixxYhQyK1cxyZhkTYhqY
- RgnM6hmcwVl4ljDI0KS4AC+Kmyli8Jv2MF7GNwXY4QzOwgNv5mWTL7CLpVQmO1hKZbKDpVR/1P8OcvwB
- lh7gOXXZq9sAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNDMTJDMTRENEFDOTExRTRCRDk4ODBFRTFERTlG
- MzY1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNDMTJDMTRDNEFDOTExRTRCRDk4ODBFRTFERTlG
- MzY1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjYwQjFGREZDNjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4rRYZ8AAACEElEQVRIS2MQltOlCP///x8vxqqJFIzNUGSMVRMpmCDApokU
- TBBg04SEpwHxfwJ4GtQo7ACoABfODY3N+P/773+82C88GWRJBtQ4TIBmKAyziCsa/L98/c5/37Ck/3Wt
- fVixT2ji//OXr/8XU9T/zy0kzQo1EhVgMRyEm0uqW//vP3Lqv5Cs9ml+CZVp/OLKs/nFleYgY0EZzQt7
- Dh7/n1/eCFLXBjUSFWAxXENZ1/r/g6evgK5P/l/d1IMXe4ck/L//+MV/RW2r/0IyWppQYxEAiwWT+qfN
- /7/7wHGQq84BXT9FQEq9S1Bas0VQWqMVFWu2ANWc2LbnyP/eKfNA6qdDjUUANMN9Tex8/j999eG/LzDy
- yuo7icIeQfH/n7x8/x+kV0hGOwBqNASgWbBt+frt/7cCXQRko2Cg9xfCXA5io8uv37bv//J124G+0NkF
- NJYRYjoQACWR8f97T99gxSA5oHIpECZCHTvIbDCAGgy34MaDF1ixo08k3LWO3hEY8jC9IBporBDEdCAA
- CqBYcPnOU4ow1AKQTyEA3YKz1x9RhKEWyEBMBwJ0C05cvocVl9R3o2BsakCYoAWHz9+mCBO0YP/pGzhx
- flUHGGOTg2GCFuw+cY0iTNCCHceuUIQJWUBMBYMX80uo7gQai9MCkJAoENsDcQiZGKQXZAYEYLEAlM1B
- CkCuIAeD9EKLCgYGAMLPWmGxemtkAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY2MzBBRkRDNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
- QTY5IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY2MzBBRkRCNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
- QTY5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjgwQjFGREZDNjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6+q/BOAAABR0lEQVRIS7WVTUvDQBCGe/PoQQQP4s2jv8E/4W/rXxEFQRAp
- olCwfjRUJWK1ltJgNJh+6Toz7OCSzrIZFwce2LDzvs8hkDSMMf/K7wFmbWunCRgFTQp6RhKY+ZephSvh
- Du7hoWf3AgPT+XcteLcqcUcUlNMFYYNLuPeVXZK4IwqKckZMZgsveO/u8jNKqMiOKHgrJrWQdqsSUTDO
- Pwm7LBK6pzIYUTDMPoi8KGvB+4wVrGCfKHge5VFYwTr2iYLHQUbgWYObg6pN7BMFd/0RMczeVXAuKOim
- r1EEBVf3LwSeNbg5qPIL2skTkQ7GKjgXFJzfpFEEBa3LBwLPGtwcVPkFJ+0ekcAL08C5oOD4IokiKDg6
- uyXwrMHNQZVfcNi6Jjq9vgrOBQX7p50oQgLtT3+J1Y3tA6iSBXbwS7gL7P0RzNqvqWn8AE4SSnpUkJk6
- AAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFGMTBBQzY2NEFDQTExRTRBQTYyQjA5QjRFNjBF
- MzcyIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFGMTBBQzY1NEFDQTExRTRBQTYyQjA5QjRFNjBF
- MzcyIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0EzRTc1RjdDOTRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg2NjBEMzE2NEFGRTExRTQ4NTY1QzE4RjMzMkM0
- NEY4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg2NjBEMzE1NEFGRTExRTQ4NTY1QzE4RjMzMkM0
- NEY4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTU5NUNEQTdGQTRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz5BZhOvAAAD9ElEQVRIS7WWe0xbZRiH95+T6DQxcc7NLfrHTBaR4NyFmDAy
- ljFwwERGpmRxxmyY6QbqgogDhqluOpFLlm6AFslGRVlXKISVS7tByzgUOF1vtLUtLVBogQ4YsLoN9ec5
- 3+xXyIiJWdrkyfed9/u979PLSdsVz6wPfyQA/Cehf3DPQsiBECHkBVj4CyGBn00E9xb+DglU4L/35xIM
- 7j78qCpAlVqAg6KNkOtqMTPnx9TcLOzjFty5u4CJWR9u++/AM+NBh7WRnM3/cX/JHCqY899fwu35u/BN
- z2HM60NcURjB7hwmNX4/PjmNWzPzZL/v3FPIEK9DQskTNOudmML0rD8oiD0d9hAutxej4z6yZ3pZaA0D
- ZO8c8dDM8d9egtSxGxetMTiri8Ih8XpS79cZ4fZOBgVu7y2YrINg9QOIPvU4QcPqyWp1DJM6vwbOUivW
- QGSMgdi8E7mqSGQqIpAoXE3OmuRtuKHRwjU6HhQMe6dgG/LA4hhBVM5KJJatJmsPa8TNARup8xm+1tnd
- R9bkc88hicsllnGrcC2p1Te1QKliYLQ6SZ4KhriLYe80oaa9Ghk/JEMkqYJS3Q0DF3a4J7D9s1V4s2QN
- Nmc+hviTLyOvIgv55SeQe/4YUgu3QlRXjbbrN6A12TDoniSzqMDh9lEszjEoGQbF4u/wa+tlmOxu2Ecm
- 0dglR86FjxEteBZx2Zsgab4KhaoH17lXJFO04nKLDCrus+L7A7OowOLyUsxODwy2EaTm78BrWU/io6KD
- YE126KxDaFDKEZ4Rhg8E+1HbKAOjNZP6TYsL0mtNaFYrUCmrAGu2YWBwLCgw2Ecf4qeGakRmPo203D1Q
- dPWjz8TdBGYX0guSIK5vgLyDQa/BDr3NTdAYrYg68iI2HliJiitV6DM6ggLWwt0p/8J9PeFMsRDnJSLE
- H38DsXEJSEhKAaOzod88hMjXt+KTz/PQ2WtCLyfl8wE2RbyKkyWFqJLUQdqu4ASvPBBojE4KH9wVtxel
- v5Tj5zopuU5MSQOjt6NG0swJtmHtCxtwrUePHsMDQaA3J/9rfJpTgDY1CwWjDwq6dHYK37BzdwJqZe3I
- E3yP9ENHsG//u+TsvcNH8dXZMryVlo4ioYjmA73ZnCA7T4BO1gqV1hp8izr6f6fwDafOlKLgdAlidsXj
- 29JKJHOCFrWOnAXga4F8gIjN21Df1k1nUYFSY6bwwUvSVjy/bgN2cILKmnokvf0O8r8pRvr7H5JMcwdL
- zvkcn1/cvxgqaGVMFL6BX6Nj9+BLQREuXLyCvSkHEB65BcXll2ju8LETyPqikOaXgwqudhlCQkAQ8p/M
- R2K5fxKLWbbp/7Dc0CBY8Q+pPmOq0VkzzQAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIxNUQ2NkYyNEQyRDExRTQ5N0NDRjdBNTBDQjc0
- MUY3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNUQ2NkYxNEQyRDExRTQ5N0NDRjdBNTBDQjc0
- MUY3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkU1NUY4OTYyQTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4lOJsMAAADqUlEQVRIS6WTf0hVdxjGj2beulPvD52aU6Np6tKBhUWsYjIH
- prDYSlZjNPsjlUnkMmSx6eJqS/u5zXGtoKKEMaEt2lpZ20RX01Bjad31A8UakdZ0SyrLJfHueU7H0zl6
- U8QXPvCe933e5/3e8z1XCY5+dVKIyJh4HZoI48bQE5kU44a3ISM45TxQCTxgQIM5a/M0m+eHN1OC4TfB
- 96mZ78reg9+I50qn3HvwSIU5a+xBcwyka3ajY3DoySgwUJ44P02O/vSz4HlMfqitk7mLlnLRNs3SHAOD
- QzoQOYF7de4Gud17V1DTuf/wP7nScUOFubF3559+4QxngUOzfhr9DwZV0AgHVZ99/oXcvf9IUNPZd6hG
- 5qS8Ic7IOb2EOWtGDWdKtuzmkj300uwVpa9/gOZTae6qqBQ8myjb4RZbeEyjJcBROt0W6rLaw4unBYYU
- 2mfMrmNvpJ4ewdFJe+Hnry7o7rvHBV+v/7hUkJtoab8qobOSZarlhfX2iLhjS5d/IBkrsvlLDmPJEvao
- GTlXsKmMS9zqApjnZWatkeu3+uSvnn9NlO2skqCwl2tt4bH7N7l26nXmzqgkFxZVUWOcIfSiZ3BU0odc
- 0Hay/px03Px7FOuKXBIUOms/zDwn6pr0OnOcsN0ZlVhEjXFmGHpCc0n9BenvZMulzlvyZ1ePiZLySsG7
- /hYn3VpYXKHXmdtnxLmx4CtqjDOEXunLs3F3sS7lwrWbCoT71hYUC3ITJxta1TsIDImOh+ZA2rL3hdjC
- Yhr8pwdlsUfNyLkceEFThxt4TWnxXFf8rTab46WEmo8+KRc8m9jwaQXed2I1Trw4IDgqx2oPK8EFb4T+
- KHsj9fSA+Rkf3ynvYUGi0tjWybv2DXBGxjsiEo7kF5XJ7xc6BHWdzdv3yOzk1/lOu3BxN5izZtRwJr+o
- VDX3s1jz4ZkCHErD+WsqiCn4xuPsEfHfvbUqV2rPtgnqOvWtV6Xm+G8qzI09ajmjmvtPy4PXQhBCT+XX
- 5ss6CD/wIl5H9SspaVLhrhbUx4QaavG1/YLZVWABPTQvRTnV5DGhNZyBITPz8cqaU1KXSeHmXXLgyGn5
- seEPFeassYfDXLTawr7EzNsgmbOax9M4cfbiKBC+IBDEYjgXn9spfKrduIPHBHkPXke9JcBZCs1KkEqt
- NsPZZ4H/gVcQPsAC+HMTwCKQAXhSwpw19qihljPm8GZuBDG8yAZCQYQGc9a8Gw+HN9OJMG54G5oIY4ei
- /A9dc78cqtG90gAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
- RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
- ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
- s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
- uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
- xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
- iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
- qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
- GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
- NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
- KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
- qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
- HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
- wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
- 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
-
-
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -4803,6 +4005,804 @@
++H/A/YDv9/V87iOlrYAAAAASUVORK5CYII=
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlDMzFEOUI4NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
+ NEI4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlDMzFEOUI3NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
+ NEI4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk5Mzk2NTZBRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz73sIMwAAADIElEQVRIS7WVa0iTYRTH56Uiysvm3TkvpLl5DRIvQYWVWl+6
+ iNEVg0yhQqloQZHkLT+Y0YdAs75IpEUhzERZoZhsRpZlS7soblotsRwoxhqWeTrnYZtv+u7NsB74cZ5z
+ zv89/z17HzYRAPxXeIv/EpFXcOyi4BvKhfehv4FvKBfeh+ayqIUDlIgBgT8whpRYoT2fhgvNVJKBQT9s
+ hB8/QZDPpnEIjEhg0J5Pw4Vm0mwygG9T06BSqQQhTUhUMoRGpyxYT7OZwfhXC6jVakFIYzNYqN5uMGKa
+ BI1GIwhpghXJaJJi13d0dEB2bj74hsWzSDlXbzfQG02g0+kEIU2wIomdovzKdVifngnFFytBeb4cLN+n
+ WaSc6hfKKqB/eHTWoHfwExgMBkFII5MnQUD4WlAWloO26wVs35MDmifPmQFFyqlO/aKKqlmDp31DYDKZ
+ BCGNTJ4IPqHx8LJvACbNUw7p6e2HuJQMNIhhBuaHj3vBYrEI0tb1BoIiE9kJ9h7Oh7EJM+g/jEJuwVlY
+ s24ri5RTnfo5BedAIoueIYPumvomuHzjzm9cq2uCq7UNUH2rEarr7kNd0yP26Y+eKoSWtk4wfpmAg7kn
+ ITY5DUorq1g8cOQEqze3aplOEhRtJoMcL1mMTixV9IgD5a/tSBVDYql8AKOBQLEJtTP08gY/jjFiktKg
+ 5FIV21Ok3NazvmR2AvrFkCAJyGYk1comZAuHDM/AyLvHThfBveZ26NOPwI59eey7LsbhFCmnOvVJ5+Ef
+ rrYZLEU8EZ85+HLwW7ZCLMVTFWdkHoLut+/hgbYHaE9XN31XNsupTrWV3jKVs+uS3cyAD0cLe331jW3Q
+ qRt0CPUlQVHDKI+fN9iGo4W90uNnyuA2vvRtWTlQgxeg/dk7FimnOvU9/CNqUe47b7ANRwt7AfjpKvAK
+ Gt18Qur35ymhRfsKKLr5hN7EyzDq7humWrrcfSfKxbz/QlwcLDck1snZJdUzYHUDmk57+K1qdXJyzsL6
+ RmQD9ZmObygXB8sVIRO6fXQB4hC6eRQppzr1XXmHclnAckFomLc1Um5dItEvhZ97MQXP9N0AAAAASUVO
+ RK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhDMTdBQjRENEFBRTExRTQ4QjQyODY0MDNBNTJE
+ NzNCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhDMTdBQjRDNEFBRTExRTQ4QjQyODY0MDNBNTJE
+ NzNCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUQyMjc4QTlBQjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4eHsDfAAAB00lEQVRIS7XVWytEURQH8HniTTNHLs0NCXNcXjTN5dH9g/gM
+ 3jx590QhFDJS0gyTGmpqaqJIMW4hzlAoOaWISS7LWifntI3ddnTGrl92e/57/We/DBsA/CvuYSHZSr0t
+ lvCGsriX/oI3lMW9lM/SwgF9SEHwizs08IX2vAyLZvZRgXJ+cQWv7yB0q96Ds86voT0vw6KZNJsK4Pnl
+ DWKxmBBlqhpDUN0UNp2n2VrB/WMOEomEEGX0ArN5o+BGfYB0Oi1EGa8cwpKw6bxRcH6lQiaTEaKMVw5q
+ rzCbNwr2z65BURQhynh8Qe0VZvNGwdZBFlRVFaKMxxfQXmE2rxc8rW3sQy6XE0puHoG7IaC9YnV9j5th
+ pbZPqOCDCrbH5uIwOD7/zWgkDkNTizAyuwQjkWWIxFNQWduqmVxI/MiPz6/A8HTUuDMTTYLkbrqhgt5S
+ T3PG4ZJ3HE7focElZx0u3yn+VQiG1ZLymmm7s74f88f42S6bl9zyJZ6d6Xckd+Mt5ieogH4xJORHHajt
+ SzvqZPSgECpHZSiA2DztuxBlad+NgnpBEbIjusiiYboKRF+kGFHegUR5ImkFv7G0eAPzWVq8gfksLd5/
+ oULiHhYS97BwwPYJlSCUgVubViQAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJEMDQyOEZBNEFEMjExRTRBN0MxRDBCNzJGRUND
+ MDEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMDQyOEY5NEFEMjExRTRBN0MxRDBCNzJGRUND
+ MDEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkRDRkI1RDVEMTRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz59jfe3AAAEbUlEQVRIS8WTeUybZRzHF48/pnFOuQRajkFLgQFb5iRLNJr4
+ l/EPgsniUI4xZDAY1zyxwApsMJyIME61rByl3DfoYGBrgbWUY06FcZSCha4rQ8jYxkqPr2/fvkv8o2Sg
+ S/wkT970eb6/T5/39z7Prv8dt/Oql4mR4HZJ3ccoXFxhVCzB9DT9JueJdSq6c1wzVZFupepVzxu34XVj
+ CaEDi1jX6hF8ZQoeokl4iBVwzV9YdU1XRlIl28eVo8phCdXwGltEeOUsro6psaHVwcSDh5volc4iOO8X
+ 7KuVwb1hEi7J8myq9PEQO//I85oafr0KtEpUpNSETm+AwWDAvfv3YTQaybnm/t/AyO6Ga+UonJOnIijF
+ 1hA9tWI2qle9RxcI+RIpmZpTIfBULhIyyqHVahHPKcN70TmYnFFCp9OhqXcc9KwW0DOHVl3YU1aUyjJu
+ F1SpfhO3EM6bMMsVt+D8Zhz2HIpC4oU6bG5uIu4cD3tfTwAjIBNypQYbGxsISquBU34PaDHiVEplGXee
+ SuIjVaBv3Lz7gJg8vHg4FlZvc+ATVoLipiHsD8qCXWAO7IPK8MG5FjLXKboOeoYADkldUkplGWb7vOb4
+ 4BzxIXXQE/1m59WDXdgBvxPfwz6UC4eQUth/WIBDZ2qQXj+K7IYRImeE5s5fOFrcDPvPapcJzVNmmwVY
+ VxWG9U09uau1tTVymPpc0iYFLew7OEUJ4BwtALfvJpl5xMrKCu6s3cUrn5YbCM1us80CrJZZVWjXr7j3
+ 4CE0y8v4IrcaH+cK4Bv+DRyPl8ApphYuia3wZ3eCUzOA1PIfcVuzjHnlIgK/vgy7mHzTG+w12yzA5E53
+ edYPo1c2i/X1dQTEfwvbwDQ4hhXg8OcN4P48Df+UTrgkNIAeW4Hg3Hbo9Xq0iGSgs4ls5CUhoXnObLOA
+ S8pkhG/bdZzgDZJnffT3GXieLAA9XgB2/RjZjuQqMWhxfBw824H55XWyhcfy+HDNqoB1SH4Codn6G7iw
+ p3d78EaVPlXX0CaZgkqlgly1gpCiK0htHCH/IL6oFcEF3ZjT3CUvXqv0DzDSS0FPq1a/8EbYS5Rqa+if
+ SAJ8KoeNR7gitEsnoVQqSbGOkJmYX1ggxaY70SabwIGMUrjn8I3WIXnBRPnWu/8nDnE9Sd7cAaP/ZSES
+ 6/rRKJRArpiHXC7HzekZNIukiCyrhW9mGZgXa4w2kUVnibJnzdXbxP5URzyDO4QjxGl5i9uNpMZeKP5U
+ IrywAq9yCnGAOGGMonbYxpVnEPGdyR9BO/MTj8kfgXeNFPt5IngVtoF1kQ9WcTs8qgfgmNreQMS21xZL
+ 0E6Ln6ef75tg8sfgXT8O77oReAkkYNXJ4PRV/4ztyfo9VPTf4xjdf9CpQKzdxxuGe6UMbhXEmc8V6mze
+ r3qNivx3HGN7UmglQ6CVDMIxXwybo5UcaunJQD8te9rhyx4JrWwItlGNUut3y5+hlp4cDhFCpl14k9jq
+ nR+Y1NTjIe7NlmMnWKoHsOtvjWYcKpheqFQAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERTg4QTFENEQyMjExRTRBODEyODk0M0RBMTc5
+ Qjg3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERTg4QTFDNEQyMjExRTRBODEyODk0M0RBMTc5
+ Qjg3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjJGOUEyRDEyMTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6wJF34AAACl0lEQVRIS62Vy08TURSH73/QhQtXVnBhxEcMiUkhbEg0hB1R
+ Q1i68C8wIW5cEqMLN7ho2Ji4YiEhWq0prYUhfULbadN3obTaChobtZEUsFY9nnPS6WM6HYowyZf87j33
+ nG/amaai9geOBYA+4pTxihmBE8DcTQB4J8em/9IwSQyagmrtL+z9rMFmvnhkKvtV7tcVHPz6DVsftulA
+ AckdhUg8zf19eoLKAd597iMLMItewfOxUDTN/bqCH3tVSG8VWIBZ9AoJApEk9+sKvu/uQ2IjzwJkGtH8
+ OrTwy3Hu77vIAnV9mgWlcgWiqRwLjAMmkOMbPbNTKnN/JJntqJGEBZ++7oKcyLLgLN4JrU8Cms2C4pcy
+ BKKZumCI18temQ/8DzSLZlBmQX7nG/jCKdpgAa0driCtY5iFHuqHSjNoFtaags1iCdzBBG+QgNY2aZ0F
+ mIUe6osENAtrTUEq/7kDq9PHAszU5yYoq9f1i9cUSCD5ozxDEeTsrhAoONwyxLLb8MrhYQFmZYCHsnpd
+ v3hNgQROb5hnKIK29944MAThTBEWbS4WYBZ6qC/sKSy5ZJ6BGUQg8b4Bbhjod4AZXlhXWdBa10LrIVul
+ AM9ggS+aa6AIMMO8ZYUO0KeyIOMtZyaQpXpNi4LFucYzMINwhbMNcMNw5oIJMMNKIA0LNg88mZuH/ssj
+ dPgBMnN+cBRmny1wrRtSMMMzWCCFMg0UAeY2Fh0+GL5xG8Zu3oHXUrCj3g0WONdTbeBm21/o1N17gPtg
+ 98Xh3VoS3qzKMDI22agfglnY/Uld8NDc/ZlZwAwvl4Ngun6LGh8rdfVDViNs3rguOOzq6XOD8PDpc7g2
+ OkHDH7XWtYa2It66Y4eCQ8cRfpvUNa2hTUD8A6JMaBvCyTdJAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERjY3MEZENEQyMzExRTRCNDlGQUMwMzk0OTAw
+ Qzc4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERjY3MEZDNEQyMzExRTRCNDlGQUMwMzk0OTAw
+ Qzc4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjhGOUEyRDEyMTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6GKmpFAAAC+UlEQVRIS63T20vTYRzH8Yforj/Ei24UiSgKIygKi8oyxZQo
+ cvNYeXaesmzqPGu2POd0ulSsnIdaurTSTJ3O6UxTPGya5vCQx5AuPn39RbHop7nZxQt+z3ie93e/Z4w1
+ p7nsCoBt8R6yBF/UHPv+Wb0rfFFzm99CRIwEW1gnqXzxTXxRc0ydctm4OlID2sxrw6iCtiwItC+A2P/D
+ frLnjwGNSZdMq6N1WOvLwFpP4l/WdRlY6Jaio9Ab7QXba8sVoDHZGdT8PYS9THDqMGnLsKpNw0qXGCua
+ BO55VZdNQ6U/DRRibVCGb+N1pH5bukoRqHmDHOIG1N8/X2F4I8WyNhtf2+9hqSsZxqZ4upbb6HsSZLHO
+ Im90ym6hNVcIaktYTexZyUelGEvaHMy/jcFiZxo0xX5Y7ivGcn8JkVmA9uvlWBmqwpJeAWovs+poR99O
+ eRgWtQWYVUdgrj0FH+i+F3XF3NoappZYGJrEoLaOVYpOOTY/FGJB+xjTqnDMtMTTAC/Ma/Ix/TLUKl9e
+ x0JfFQpql7PykBP7lWIXzPeUYLIhHCPKCLr/AMy2ZsKoDLTKdNNdvM8TgNpRTBZwfJ885CTmaIChPhwa
+ mS+GnkdhqjEWY9X+VplqvIMXEhdQ24mZeuSs0N/BNNWWj4k6EdSZHhhXxWH0aSCGFd4c4Tk7zk7XBlUM
+ FKLToK4Nm+0qYnneRzqGGiSYaIiiyZdhVCdgqFSIwRJPjucZW85O1pvnRmvDkO9zFNTdy2Y6HjGp4HCF
+ 5kk4xhoiURd/EROv4tBfeM0qAyUC9Mp9QM0+7o829T6LZV0/mNycS6+nFKFWfAGj9ZHozfGwil7miZYH
+ 7qCmghsw+S6VpV894KuUuKFbfhNNqa749CwY3dm0toK+VABl3HlQM5obYHybwFLc7W1y/Y5BlX6FfgNn
+ DNcEY0DhZZX+MiGKbh0DNR24AYYWMSfJzc6GZBApwS5skIzNODcg0dV2V36FtsJ7yBJ8UXO8hyzBFzXH
+ ++H/A/YDv9/V87iOlrYAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
+ RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
+ ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
+ s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
+ uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
+ xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
+ iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
+ qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
+ GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
+ NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
+ KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
+ qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
+ HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
+ wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
+ 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA3MTZBNTkzNEEwMjExRTRBQjdERDhBQkEzMDEx
+ MzZEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA3MTZBNTkyNEEwMjExRTRBQjdERDhBQkEzMDEx
+ MzZEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTgxNjM4Q0YwMTRBRTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ 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
+ 0HWhD93n++Dbua+fK9NvoTM5+Udx5mye9NjgCZNf0HEnpN5U5RbPa9+0bdfQ+0eOPzp5ppvG96JfjFkM
+ nXR/vOP0ePOu/deyCuf8JVSorJny7HQdvR9MTCUm+fUYgyehazLBVCCd8ttpJbQANtO3cDjWbO9werzd
+ ruK5F9Ld3p7YBEdHCE/WMi0s0jf5mefm0e+ZCsXEf85i/98XsP4NaTpxka74X+IAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBREU3RDk2NEFCMDExRTQ4OUM5QjZFOENGQzJF
+ MDk1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBREU3RDk1NEFCMDExRTQ4OUM5QjZFOENGQzJF
+ MDk1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEM5Mzk2NTZBRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz52g1XsAAADeUlEQVRIS62Va0hTYRiAXzVNoQs6oUCttJu3aqatrLxr2k0n
+ W6bLLlLSxTKCKLoQQUg3IbLMflSgBRGRP7JSSzGnWalYdpnV1MQu1tBWWklqvr3fp2dsOytSfOFh3/l2
+ eJ7tnDMGkkmzGCqigsARhPlUQqCi8nEd9v7GEYP5mFcI4K/e/hGHeQ2B7p4+1HV8Nf6Kw4a5GGxtCHzv
+ 7sU2nR4lbr4/AUBFKIeD4GKYBL79+IX6rm622U8nSgnX4SC4GCaBL50/OXwTwIUY1ohcQkCn/84ZDLBP
+ I5p16TBl7XYIoaXVwI54RC4h8LG9k/OvQPIOmEZUJW2F+XRoPbBrOiKXEGj9rOdYCqi2gxXhnLQNIo6f
+ n9tEa7ViI79PoojIJQSaP3RwjAOJaSAjjhL3N+9zrD+W499UVJnSeeVmWDvtlcWlgCedZnK5RC4h8KZV
+ x2FryQSYmrAVjh/MnP46/57yS7VmZ9+zxr1Yr92NtQ1pWFmfiBevL9QpUqE0JhHcyWuImLsMAU1zG4et
+ V6yHC1l5oe+evNmD1ZoteL9OgaW1K7GkRoF3H8ZigTocb5bFY8bZWbpoFVwh7yiCR8xdhsAz7XuOh9QD
+ D2R6twyIEzG/JApz88N7z+T5d+VcDezKL43Ea4UxeCjTqyNUDpUBYeBFXjvjgOAyCdS9asXDJ3NQFj3u
+ 7eWCyG/FjxR45OyMr6s3S1qCYqE8RA654Uq4dOiUV/v+E9P0i1ZA9Zwg8COnA2HyDZiLYRw4dyAjC50n
+ z8awBBvNbbWyZ+8x10+By+GONARCbe1gDBPJloCvfKODluQ10mD+qDK5LWFyD6pfvOUYBzydXL0v2I+V
+ rI9Mhud5BQE9i+RQPt2P30BBYrM4HmYSNf5REGS0b5CzYdKq+iaOITA44wmPiLXwaFfGhDbZMkinYxNJ
+ 8CpwXxgHobQcPbhv8XegrtNyzAPsOtqHJUPeml1jm/1jYDkdM5G5hB3bDL6KhknLal9xzAN8gpMgVZHm
+ oKUAuwx29H420c9O/l9KHms4bC0KLFCAY6CSHr+VoHJy88lWbEjHoqoXWPzw5ZCxGKCxkslBLo22L1+6
+ ahPeUj/FwgfPh8zpSzfQ0cWrwVKAjfXcWFjjPm9isWSSbx/7JEPF0cWzcYzE7dTfAmysfSLB2z0Awm1H
+ 8ycnjrD4N/kX4gEg8A9sAFSe4VuPvgAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzN0Y5NjgxNEE5MDExRTRBMzU1RUM1MkVEQTU3
+ REQxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzN0Y5NjgwNEE5MDExRTRBMzU1RUM1MkVEQTU3
+ REQxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUU1QUVCQUI4RjRBRTQxMUI2QTlC
+ RjEwMkVGQzEyNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4Oz1B+AAABO0lEQVRIS7WUP0sDQRDFt0snIcEiklhGJLH3k6bNp0ifYCUo
+ KWwMIRCx0EYxEEL+IOPO4SxzczN7d7gGfuzd7Hszd9nHOQD4V9RiStRiStQi0b68GXkgwkjzcdQigU1O
+ 32CC+9IjUYsENvjY7EySDHhev5skGXA3X5r8aYA3lx0wET1otYgmNMcOku+jXtMg4QJFJMb1a7uPmjUd
+ rVzHDfDy9pmJaZViCe5rPq7hYpgvXjPw2hNtTqBOevk+F8L0YRGQQosyHxfSf0jUegPLZwkrNedYfi6o
+ 9Y2RWP6cACPHYnf4XauQablfHYAxo6jt9sfwRGWgVvrVASKmdd7g2OoN4P5pVYhqbgCPmnPuzHPtua1C
+ s9OHyeyxEFU+IJcCb2p4zj3dKjQvrsat3jD4CwNCIcEv14/fpAfcDwXsled4Tu6+AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlGMEQ1RDBCNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
+ MzBCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlGMEQ1RDBBNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
+ MzBCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzFDMDRERTRENjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6zemTaAAABh0lEQVRIS7WUvUoDQRSFEwiBKPEHsRAkb+ArWIsv4CNYCSKI
+ jRD8a1S0m9QhdTobG5uARZogBJSkiLASFJJChQiRcJ2z2bnMZtbxCnrhY3YO556z1aSI6F9JFP+SRBEs
+ FFaUhoSopAyQKGIBi58jEuErcQSAhY/hyP5DL8Y7mQMcAcD8Phh+u2Tzk9cRAMz914G4wOd1BABzt/cm
+ LvB5HQHA3On2xQU+ryMAmB8en8UFPq8jAJjvWk/iAp/XEQDM9WZHXODzOgKAudZoiwt8XkcAMN/U78Ml
+ CcY7mQMcAWhz+FRc3zZFREXypwKYEiG/e+ykc1WYVRrCGUk8nGUHsyic6nKeetUK4dTESjjLDjZUlqaV
+ hiS8lEsh0Z1LTFYs2FBazFFwcUzB+YE+T8bffD+i4LRIwSV0jdZaO5vhHXtRPmfFgg1n81mlIQnt/W1q
+ bKyH34dz2XKUz1mxYBaFU5zJUG1tlXDu5TMcjuEsO5hF4exOpZWGtnLpWDiGs+xgFv9gxlmU+gIVyyIX
+ YCSg/AAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ 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
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVGNUQ0RjNENEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
+ RkEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVGNUQ0RjNDNEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
+ RkEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzUxNUY0MjEyRDRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz7jldwbAAAEyklEQVRIS6WWDUzUdRjHoeXWVktIc74MLREMUxBQV4RYkBmL
+ SBwSoZIFCgULlOJFDJDxqkiAqGgoiIQ6jaFLB1EqUaC8iMgdL8cJB3fHwR13HO8Hh3x7fn+pwN01nM/2
+ 2X77Pb/n+33+v/3/95zBbGOVnZM58QHhRKwgnp9KPXuQ2CtJ6ScOjGo0fcMjI93llVX55us3rqbUc49P
+ zDLyw9auL4iw5l+IsMY//BRujcygdcg+ug83rpzCsVhf3C6+hHg/W+R++985BtU3pey1cCCpOYQhJzo9
+ 8kPX1tZcDoS0Jp2jrCgWmakhOJMVA4GwBd1KNSQ9veiUdeNifjqyMsJxveD7f8+z2rPBlg0kNZ9gJjMj
+ L8RqQlSegIbLX6CuYAcOBm9FHe8B2rt70SZTgNfehTphJ+paCaEYjSIJkmP24PaPnrhfsBP8okCcCbZ8
+ RFLmxIuc6PTICV5Dh4IxNqSEemAA6adzwBdJ8VeDEL/XNqGkmo/iKh4HW5fWNCL7QiEqq2sw3N+Dijwf
+ nPx6FUjKkpjLiU6P7MDVqL/gj8nJSY4bpbcQnZyK8EOJCI2Ox3dRcY+JjkNYTAIi4w4j7+JlKBQKjI+P
+ 42qqJ9J832AGawkjTnR6ZPm/iXvn9+ARiWsnJjCu1YLeGshJQCKVolMs5hBLJOiSydAjl0OpUmFweBhj
+ ZJAfuxVJ3ub6DTJ9LVCd40Pij6AZ01IRoWVGumE5dmZEM45RjRbnolwR72Wm3yDt85W4e2o3FVLnGg1G
+ xsYwSvDEdxB03gEa6vJwSopOhkZHkRPhgkPbTfUbpOwwR+XxXdT9OM79EQ/lgBLNkjpsz1iMP5t/oU7H
+ dIoz+oeGcTbUGVHblus3SPJYgfI0LxLSIPmaL4LyHOB5bClK6gswNDLKoUucoezvx+n9W3Dg49f0G8S5
+ LUfZEU8MkpC8T43YQi8UVp3kutOFenAIvep+dClUkClVOPXNZoQ6L9NvEE3uN+PdMUBvRXevCgqVmjob
+ gGpgEH1PwPZYTq7soy9bDolcgRNfOWL/ZhP9BpEfLsVvMW70kQ1C2qMgEyVnUiUoQ2CuPZTUra7rYYi6
+ ZDi+910EvbdEv0GYkwlKIj+BijrL+jUKbdJO1LZWwD19EUrrr0Cu6tMpzhCKJcj40gEB9ov1G4RsWoLi
+ UBe6V7r/n70RkPMOPDJMcLXqLPc0DF3ijBaRCOneG+H31kL9BkF2i3B9nzN1qoagQ4yDlzxQUE6/lHRd
+ XfLeGbA9cbccwk4JHggegi8UIc3LDj7rFug3CNiwENcCt6CH3ojm9g7qqoN79HZpF9rpjjumYGu2x3I8
+ 4UNU85pwv0WAox5vY7f1/xj42SxAkf/7kCmUuNfUiho+FTa3gtfaRh22o6lNxMHWbI/lKut5uFVdh7sN
+ jTiybQN2rpmv18DQ1+rViUJfRwia+bjXLEB1YxNqyai+VUiditDY1sHB1myP5e408FFR34Cb5WVIdLXF
+ Zxbz2DywJYw51WkxZ9eqebxUFyvk7rDHD24bkOhig4RZEM/4yAZhm1Ziq6lRG2mxscmm2owwdF72suOn
+ ZkZCTzNjuJsaYdtT4vr63E4L4xcCSYv9IXiJU30i2BxlzmzkWRHsLp8GVsNqp2aygcHfZtZtYIryU78A
+ AAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUzNzJDMjE3NEFENjExRTRCNjE0OEVEQzI4MEM0
+ RTZDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUzNzJDMjE2NEFENjExRTRCNjE0OEVEQzI4MEM0
+ RTZDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI3NUQ0QkNENDRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6PyaLfAAADMElEQVRIS6VUXUiTYRT+vi3Tzd+ps23+3KRigtiPkolEQReG
+ UYTkhWatpWlWGkRdddfdSPImqUAJjSIT00oxLJIk0cR+tFSyzDJtgaMkDEPkdM7ZPvm2vS6jBx6es3Pe
+ 8zzvtm+TohLS/ov+AACStLgEQuJyLRJWYK1yzh/+FgCoQrpnfM4fOGBhcUlIMkEVkma4H4i1y2kFcMD8
+ wqKQZILKZqTqmlTAWrfvMjhgbv63Dwm0hLWQohn1eNEbzrlfPiTQAtZCKjP1GXdAIC+r4XD+9CGBFrDm
+ RVJ1re6pZ0GyHHMvIawauYVNCFPfvvuQQAtYC6meKXU0amNsaGN/ZR60xIf9aIgN3cpGE9OzZCZ85nEm
+ pGiWlLABmuJCnUOXrNB7chdct4TUo32ANDbp4NuielDpqWfePdaPX6GrohSK4uLhlCEo96YlZLbOFHzH
+ oJXjMSBcGn4/zQGovEDqXXtzeTb+BTrKj0J3+Q54djYP7EZdTU2MPjFSK8eieQR9QtLg6GcOQPWgqKeQ
+ ZyOfoK30CDw+lg2Ot3Z4VLoNqo269mCNHIa2WjYn9A1PcAAqU6m9VV3TF9psOwwPS3JgZugCdNoyocwU
+ jU+RlImWBpezGz0vxzkA1YOiHvPFO7Ca1kGHLQtmXp2HdutmqN+/F6JiU+h3kOpyVeHJwBgHoLIpqajm
+ 189HoaG4CNqsGTA1UAWth9Lg6r490PygGyLjUikgzuWqQlffCAegelDdUwLqigqhpXgjTPYeh+bCFCg2
+ RkEk3vxuVz/P0c43oLP3DQegLhspNalSFxiNcLswHT48LYNbBUlQk7ebzenmyhm08w1o7xmiAP6hRZiT
+ 70eYkzpctUuJWdHmwWs74+F1Uz7cyE+E4ohQB5mHm9a3GywpTXzektyKduIAIsKI3ISkL4rIdYle05C9
+ VrZVBmvtl7eboUyv7V4jSQdwRn8FdI72iErtCUxnIuifkJ5hUqUOq9Jr7OeCNU6bTpNVqtMcDJSldOwn
+ KnOk+jypJ5QANRWc0cs5SEelXr54QidfwVYAMoiHq4W/gNM6OaNCJ+diaUIqN/43+Atwg27t+9ZXBUn6
+ A2MdqQeVc5pWAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUzQzNGNDI5NEQyQzExRTQ4QkE1QUNCMEVDRDZF
+ MDVEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUzQzNGNDI4NEQyQzExRTQ4QkE1QUNCMEVDRDZF
+ MDVEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI1NUY4OTYyQTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6IsaOmAAADF0lEQVQ4T62U/UuTURTH+0nICqRI1ERMMyNQe8N0ChqBwQhN
+ yvwhEgJjVCqJ/qCibZo6tzQ339h6Nre5prapUzc1XzItX1ilzuWMLLVAen+xf6DTuTxjdxsFVj58ebjc
+ c+7nnud7z3228DbpIaDFH/CfoqCn72DIDvNfPDM2KAqyr8PcJxqY+QBTb8kkjocXQTsKigGwfqYJHqIg
+ 1OxHGHvlWPx4hXB1YyA3g4CBhqst+piEnrDA3rA95vBAY1x8d7lq/DVZwm5PQZNvoKYdypSgHgbVEIh1
+ cLOZzOCbSSsyRQRba6uWtcpVLbPcwlglInNUCJNWWKqABqMLCGvGlfpJELaQ/V1Vd1lujAhe0chtUrH5
+ ZExnmJ85MdomEa+qZMbIEF2BHGunILSjdZwYgTt4gJqjjj0Rltml1Zq9AeL0Mn71Wn2mtDU80MIvsFTw
+ O+KPIoWC8BNYRIUaqrRQroJKjQOk9N+xLBF2pXJFKfnsDGYa8gS6xOO2whyMuoHaHpGzZ/pBM0IMrtXD
+ nT4HqNHXe0lYoogMFeQP4jbSDkCPTUyXmnNoPutSo+9WN5DEQDyeWCWnhqm4p7Oimt3b54rzmmKPVHKz
+ 0Xg0AU1pz87VJp+yXOfd9t3mBmLXsGrsJhSsDtF4iOWxKdpzyQNnuRW7vEUp13obFG05OVUBPtO5V1Sn
+ k5q4SX8ENfWA6C7xHsP981Bb2sf38ZKd4JhSuXUJHPHhg/WJnAeZFw0Xzt/w8erRtLmBnB/CSmaC599I
+ 2PYVRl+CXigu3R9SfCC0Pf1MZ1oqvqvjogX7gtRFJfb1n24g7GblfQcFP2fkBYm5anxqQcbLKgzyK/Df
+ WRTkV5+RMTg84ZrgAOHo4ZIDVNdJw67CpsVLZ5gifj97Typlq2ZFQXj8LKh5EHpnaIar8N+Al5l9Y9Vs
+ T7OiIAzjqaMsa6QJnBkeWvgOHdPkAuIV67PSeQpCYYZplsZ+KyyWLRyFF8D553EDbURY770J0rrYJbda
+ SYE4iWb9NcgpRKDrOMAWwYP6d5BTaC52zyaAWDlAm/DweL8AX9zXukfxHsIAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ 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
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjYzQTM5NEY4Mjg0OUU0MTE5NDBEQTc4ODZEQzk5
+ N0NGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJGRTU5OEQ1NDlEQjExRTRBRUVDOTkyMjQ5NzEw
+ REUwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJGRTU5OEQ0NDlEQjExRTRBRUVDOTkyMjQ5NzEw
+ REUwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTY0MkI1RjlEQTQ5RTQxMUE0QzNB
+ MjdEOTJBQzc3QkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjNBMzk0RjgyODQ5RTQxMTk0MERB
+ Nzg4NkRDOTk3Q0YiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6B5sF9AAACe0lEQVRIS7WVb2jMcRzHL7UHanF/Mts5prE/1li3kAfu5Ak7
+ 5IHNobBkSC2UIuGJkrrSWRvTmHQWK8U1T8jqUtYwkZpaGjV/Js6to5YwfXze39+fu/v23f36hXe9us+f
+ 7/v9rd/dr3MQ0X/F4Zm3+K9QhWajNNlBFZqN0mQHS6lMdrCUyqSgimllUsy4XmOmp+QRDllQWbygjjq6
+ uimZStOX8a+ixox3pXrM1JLCDAqYJmY7c669M0bff07mcLbtEl9QE8k6V6BH5ooXMsHZZX7ae+AY7W45
+ SrPm19LbsSR9m/iRA2bYGefggVePzUgKBzeu9sQpmZ4QcG/WMtk7eLjv0WMz0kOz+TX6MUXvP6cFeNbD
+ bz6YvQFm2Bk9PPByZO6jksLB5KvRTzTyLikIrG2ktsvXzd4g2hGjYP1ms4eHvb850qkl65LCQW/ntVs0
+ 9HpMcPx0K1X4V1Ff/3NzhnphbVDsjBk8Lm/VE44s0ZJ1KS4Ie8uXUvPBE7Tn0ElCzTMqrV5BO/cfEaDG
+ TD5X6PFFONLygsTF7jj1vxihyPkYNTS1iFrFxm37KHIhJmp43L7qZxzp0pJ1SeHhQGgLJQaH6fb9R1QX
+ 2EB3Ek9FryLe95j8K9eLT/TB0FZcskOP1iRdkIh23aR7Ay9pzaZddKY9Jup8nIpeoXXhZlHD655b85Bj
+ p2npLOmCML+dD/iTZhaX3+UvbRB1PpzeygFnSUUvatecRUMzisoOc+x0LZ3FixxYhQyK1cxyZhkTYhqY
+ RgnM6hmcwVl4ljDI0KS4AC+Kmyli8Jv2MF7GNwXY4QzOwgNv5mWTL7CLpVQmO1hKZbKDpVR/1P8OcvwB
+ lh7gOXXZq9sAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNDMTJDMTRENEFDOTExRTRCRDk4ODBFRTFERTlG
+ MzY1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNDMTJDMTRDNEFDOTExRTRCRDk4ODBFRTFERTlG
+ MzY1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjYwQjFGREZDNjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4rRYZ8AAACEElEQVRIS2MQltOlCP///x8vxqqJFIzNUGSMVRMpmCDApokU
+ TBBg04SEpwHxfwJ4GtQo7ACoABfODY3N+P/773+82C88GWRJBtQ4TIBmKAyziCsa/L98/c5/37Ck/3Wt
+ fVixT2ji//OXr/8XU9T/zy0kzQo1EhVgMRyEm0uqW//vP3Lqv5Cs9ml+CZVp/OLKs/nFleYgY0EZzQt7
+ Dh7/n1/eCFLXBjUSFWAxXENZ1/r/g6evgK5P/l/d1IMXe4ck/L//+MV/RW2r/0IyWppQYxEAiwWT+qfN
+ /7/7wHGQq84BXT9FQEq9S1Bas0VQWqMVFWu2ANWc2LbnyP/eKfNA6qdDjUUANMN9Tex8/j999eG/LzDy
+ yuo7icIeQfH/n7x8/x+kV0hGOwBqNASgWbBt+frt/7cCXQRko2Cg9xfCXA5io8uv37bv//J124G+0NkF
+ NJYRYjoQACWR8f97T99gxSA5oHIpECZCHTvIbDCAGgy34MaDF1ixo08k3LWO3hEY8jC9IBporBDEdCAA
+ CqBYcPnOU4ow1AKQTyEA3YKz1x9RhKEWyEBMBwJ0C05cvocVl9R3o2BsakCYoAWHz9+mCBO0YP/pGzhx
+ flUHGGOTg2GCFuw+cY0iTNCCHceuUIQJWUBMBYMX80uo7gQai9MCkJAoENsDcQiZGKQXZAYEYLEAlM1B
+ CkCuIAeD9EKLCgYGAMLPWmGxemtkAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY2MzBBRkRDNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
+ QTY5IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY2MzBBRkRCNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
+ QTY5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjgwQjFGREZDNjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6+q/BOAAABR0lEQVRIS7WVTUvDQBCGe/PoQQQP4s2jv8E/4W/rXxEFQRAp
+ olCwfjRUJWK1ltJgNJh+6Toz7OCSzrIZFwce2LDzvs8hkDSMMf/K7wFmbWunCRgFTQp6RhKY+ZephSvh
+ Du7hoWf3AgPT+XcteLcqcUcUlNMFYYNLuPeVXZK4IwqKckZMZgsveO/u8jNKqMiOKHgrJrWQdqsSUTDO
+ Pwm7LBK6pzIYUTDMPoi8KGvB+4wVrGCfKHge5VFYwTr2iYLHQUbgWYObg6pN7BMFd/0RMczeVXAuKOim
+ r1EEBVf3LwSeNbg5qPIL2skTkQ7GKjgXFJzfpFEEBa3LBwLPGtwcVPkFJ+0ekcAL08C5oOD4IokiKDg6
+ uyXwrMHNQZVfcNi6Jjq9vgrOBQX7p50oQgLtT3+J1Y3tA6iSBXbwS7gL7P0RzNqvqWn8AE4SSnpUkJk6
+ AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFGMTBBQzY2NEFDQTExRTRBQTYyQjA5QjRFNjBF
+ MzcyIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFGMTBBQzY1NEFDQTExRTRBQTYyQjA5QjRFNjBF
+ MzcyIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0EzRTc1RjdDOTRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ 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
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg2NjBEMzE2NEFGRTExRTQ4NTY1QzE4RjMzMkM0
+ NEY4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg2NjBEMzE1NEFGRTExRTQ4NTY1QzE4RjMzMkM0
+ NEY4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTU5NUNEQTdGQTRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz5BZhOvAAAD9ElEQVRIS7WWe0xbZRiH95+T6DQxcc7NLfrHTBaR4NyFmDAy
+ ljFwwERGpmRxxmyY6QbqgogDhqluOpFLlm6AFslGRVlXKISVS7tByzgUOF1vtLUtLVBogQ4YsLoN9ec5
+ 3+xXyIiJWdrkyfed9/u979PLSdsVz6wPfyQA/Cehf3DPQsiBECHkBVj4CyGBn00E9xb+DglU4L/35xIM
+ 7j78qCpAlVqAg6KNkOtqMTPnx9TcLOzjFty5u4CJWR9u++/AM+NBh7WRnM3/cX/JHCqY899fwu35u/BN
+ z2HM60NcURjB7hwmNX4/PjmNWzPzZL/v3FPIEK9DQskTNOudmML0rD8oiD0d9hAutxej4z6yZ3pZaA0D
+ ZO8c8dDM8d9egtSxGxetMTiri8Ih8XpS79cZ4fZOBgVu7y2YrINg9QOIPvU4QcPqyWp1DJM6vwbOUivW
+ QGSMgdi8E7mqSGQqIpAoXE3OmuRtuKHRwjU6HhQMe6dgG/LA4hhBVM5KJJatJmsPa8TNARup8xm+1tnd
+ R9bkc88hicsllnGrcC2p1Te1QKliYLQ6SZ4KhriLYe80oaa9Ghk/JEMkqYJS3Q0DF3a4J7D9s1V4s2QN
+ Nmc+hviTLyOvIgv55SeQe/4YUgu3QlRXjbbrN6A12TDoniSzqMDh9lEszjEoGQbF4u/wa+tlmOxu2Ecm
+ 0dglR86FjxEteBZx2Zsgab4KhaoH17lXJFO04nKLDCrus+L7A7OowOLyUsxODwy2EaTm78BrWU/io6KD
+ YE126KxDaFDKEZ4Rhg8E+1HbKAOjNZP6TYsL0mtNaFYrUCmrAGu2YWBwLCgw2Ecf4qeGakRmPo203D1Q
+ dPWjz8TdBGYX0guSIK5vgLyDQa/BDr3NTdAYrYg68iI2HliJiitV6DM6ggLWwt0p/8J9PeFMsRDnJSLE
+ H38DsXEJSEhKAaOzod88hMjXt+KTz/PQ2WtCLyfl8wE2RbyKkyWFqJLUQdqu4ASvPBBojE4KH9wVtxel
+ v5Tj5zopuU5MSQOjt6NG0swJtmHtCxtwrUePHsMDQaA3J/9rfJpTgDY1CwWjDwq6dHYK37BzdwJqZe3I
+ E3yP9ENHsG//u+TsvcNH8dXZMryVlo4ioYjmA73ZnCA7T4BO1gqV1hp8izr6f6fwDafOlKLgdAlidsXj
+ 29JKJHOCFrWOnAXga4F8gIjN21Df1k1nUYFSY6bwwUvSVjy/bgN2cILKmnokvf0O8r8pRvr7H5JMcwdL
+ zvkcn1/cvxgqaGVMFL6BX6Nj9+BLQREuXLyCvSkHEB65BcXll2ju8LETyPqikOaXgwqudhlCQkAQ8p/M
+ R2K5fxKLWbbp/7Dc0CBY8Q+pPmOq0VkzzQAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIxNUQ2NkYyNEQyRDExRTQ5N0NDRjdBNTBDQjc0
+ MUY3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNUQ2NkYxNEQyRDExRTQ5N0NDRjdBNTBDQjc0
+ MUY3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkU1NUY4OTYyQTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4lOJsMAAADqUlEQVRIS6WTf0hVdxjGj2beulPvD52aU6Np6tKBhUWsYjIH
+ prDYSlZjNPsjlUnkMmSx6eJqS/u5zXGtoKKEMaEt2lpZ20RX01Bjad31A8UakdZ0SyrLJfHueU7H0zl6
+ U8QXPvCe933e5/3e8z1XCY5+dVKIyJh4HZoI48bQE5kU44a3ISM45TxQCTxgQIM5a/M0m+eHN1OC4TfB
+ 96mZ78reg9+I50qn3HvwSIU5a+xBcwyka3ajY3DoySgwUJ44P02O/vSz4HlMfqitk7mLlnLRNs3SHAOD
+ QzoQOYF7de4Gud17V1DTuf/wP7nScUOFubF3559+4QxngUOzfhr9DwZV0AgHVZ99/oXcvf9IUNPZd6hG
+ 5qS8Ic7IOb2EOWtGDWdKtuzmkj300uwVpa9/gOZTae6qqBQ8myjb4RZbeEyjJcBROt0W6rLaw4unBYYU
+ 2mfMrmNvpJ4ewdFJe+Hnry7o7rvHBV+v/7hUkJtoab8qobOSZarlhfX2iLhjS5d/IBkrsvlLDmPJEvao
+ GTlXsKmMS9zqApjnZWatkeu3+uSvnn9NlO2skqCwl2tt4bH7N7l26nXmzqgkFxZVUWOcIfSiZ3BU0odc
+ 0Hay/px03Px7FOuKXBIUOms/zDwn6pr0OnOcsN0ZlVhEjXFmGHpCc0n9BenvZMulzlvyZ1ePiZLySsG7
+ /hYn3VpYXKHXmdtnxLmx4CtqjDOEXunLs3F3sS7lwrWbCoT71hYUC3ITJxta1TsIDImOh+ZA2rL3hdjC
+ Yhr8pwdlsUfNyLkceEFThxt4TWnxXFf8rTab46WEmo8+KRc8m9jwaQXed2I1Trw4IDgqx2oPK8EFb4T+
+ KHsj9fSA+Rkf3ynvYUGi0tjWybv2DXBGxjsiEo7kF5XJ7xc6BHWdzdv3yOzk1/lOu3BxN5izZtRwJr+o
+ VDX3s1jz4ZkCHErD+WsqiCn4xuPsEfHfvbUqV2rPtgnqOvWtV6Xm+G8qzI09ajmjmvtPy4PXQhBCT+XX
+ 5ss6CD/wIl5H9SspaVLhrhbUx4QaavG1/YLZVWABPTQvRTnV5DGhNZyBITPz8cqaU1KXSeHmXXLgyGn5
+ seEPFeassYfDXLTawr7EzNsgmbOax9M4cfbiKBC+IBDEYjgXn9spfKrduIPHBHkPXke9JcBZCs1KkEqt
+ NsPZZ4H/gVcQPsAC+HMTwCKQAXhSwpw19qihljPm8GZuBDG8yAZCQYQGc9a8Gw+HN9OJMG54G5oIY4ei
+ /A9dc78cqtG90gAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
+ RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
+ ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
+ s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
+ uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
+ xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
+ iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
+ qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
+ GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
+ NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
+ KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
+ qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
+ HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
+ wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
+ 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
+
+
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
diff --git a/Cyberpipe.csproj b/Cyberpipe.csproj
index d9a70bc..ea462be 100644
--- a/Cyberpipe.csproj
+++ b/Cyberpipe.csproj
@@ -1143,6 +1143,7 @@
SysRescInfoManager.cs
+
True
True
diff --git a/Cyberpipe.suo b/Cyberpipe.suo
index c1d31ce..6c59fcf 100644
--- a/Cyberpipe.suo
+++ b/Cyberpipe.suo
Binary files differ
diff --git a/FrmLayerControl.cs b/FrmLayerControl.cs
index 8586041..81346fe 100644
--- a/FrmLayerControl.cs
+++ b/FrmLayerControl.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using GeoScene.Data;
@@ -13,10 +14,10 @@
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- TreeNode terrainManagerNode = null;
- TreeNode layerManagerNode = null;
- TreeNode terrainManagerNode1 = null;
- TreeNode layerManagerNode1 = null;
+// TreeNode terrainManagerNode = null;
+// TreeNode layerManagerNode = null;
+// TreeNode terrainManagerNode1 = null;
+// TreeNode layerManagerNode1 = null;
public FrmLayerControl(GSOGlobeControl ctl1,GSOGlobeControl ctl2)
{
@@ -25,14 +26,14 @@
globeControl2 = ctl2;
}
- private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
- {
- treeNode=new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- }
+// private void initLayerTree(out TreeNode treeNode, string strTreeNodeText)
+// {
+// treeNode=new TreeNode();
+// treeNode.ImageIndex = 0;
+// treeNode.SelectedImageIndex = 0;
+// treeNode.Checked = false;
+// treeNode.Text = strTreeNodeText;
+// }
// private void initTreeView()
// {
@@ -51,234 +52,258 @@
// layerTree2.Nodes.Add(terrainManagerNode);
// }
- #region wxl重构树形结构代码
+
+
- private TreeNode treeNode(string strTreeNodeText)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.ImageIndex = 0;
- treeNode.SelectedImageIndex = 0;
- treeNode.Checked = false;
- treeNode.Text = strTreeNodeText;
- return treeNode;
- }
-// private void appendToParent(TreeNodeCollection treeNodeCollection, )
- #endregion
- private void initTreeView()
+// private void initNode(string nodeName)
+// {
+// TreeNode nodeGroupElse1 = new TreeNode();
+// nodeGroupElse1.Text = nodeName;
+// layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+//
+// TreeNode nodeGroupElse = new TreeNode();
+// nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
+// layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
+// }
+
+// private void initTreeNode(XmlNodeList Params)
+// {
+// foreach (XmlNode paramsNode in Params) //layers
+// {
+// foreach (XmlNode layerNode in paramsNode) //layer
+// {
+// initNode(layerNode.Attributes["label"].Value);
+// }
+// }
+//
+// initNode("基础图层");
+// initNode("其他");
+// }
+
+// private void FrmLayerControl_Load(object sender, EventArgs e)
+// {
+//
+// initTreeView();
+// try
+// {
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Application.StartupPath + "\\双屏设置.xml");
+// XmlNodeList Params = doc.SelectNodes("/Params/layers");
+//
+// initTreeNode(Params);
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+//
+// RefreshLayerAndTerrainTree();
+// }
+ private void FrmLayerControl_Load(object sender, EventArgs e)
{
layerTree1.Nodes.Clear();
layerTree2.Nodes.Clear();
-
- //加载layertree2
- initLayerTree(out layerManagerNode1, "图层管理");
- layerTree1.Nodes.Add(layerManagerNode1);
- initLayerTree(out terrainManagerNode1, "地形管理");
- layerTree1.Nodes.Add(terrainManagerNode1);
-
- initLayerTree(out layerManagerNode, "图层管理");
- layerTree2.Nodes.Add(layerManagerNode);
- initLayerTree(out terrainManagerNode, "地形管理");
- layerTree2.Nodes.Add(terrainManagerNode);
+ TreeUtils.initTree(globeControl1, layerTree1, "实测数据");
+ TreeUtils.initTree(globeControl2, layerTree2, "施工数据");
}
- private void initNode(string nodeName)
- {
- TreeNode nodeGroupElse1 = new TreeNode();
- nodeGroupElse1.Text = nodeName;
- layerTree1.Nodes[0].Nodes.Add(nodeGroupElse1);
+ #region wxl重构树形结构代码
- TreeNode nodeGroupElse = new TreeNode();
- nodeGroupElse.Text = nodeName == "供电" ? "电力" : nodeName;
- layerTree2.Nodes[0].Nodes.Add(nodeGroupElse);
- }
+ ///
+ /// 构造tree,最多解析三层,可放在工具类中
- private void initTreeNode(XmlNodeList Params)
- {
- foreach (XmlNode paramsNode in Params) //layers
- {
- foreach (XmlNode layerNode in paramsNode) //layer
- {
- initNode(layerNode.Attributes["label"].Value);
- }
- }
+ /// 所属地球
+ /// 要加载的树
+ /// 数据来源,实测数据/施工数据/规划数据/红线数据,为空则展示全部
+// private void initTree(GSOGlobeControl gsoGlobeControl,TreeView treeView, string viewDatasrc)
+// {
+// treeView.Nodes.Clear();
+// LayerConfig layerConfig = Utility.layerConfig;
+// List datasrcs = layerConfig.datasrcs;
+// foreach (DataSrc datasrc in datasrcs)
+// {
+// if (viewDatasrc != null && !viewDatasrc.Trim().Equals("") && !datasrc.label.Equals(viewDatasrc)) continue;
+// TreeNode rootNode = treeView.Nodes.Add(datasrc.label);
+// List layerTypes = datasrc.layertypes;
+// foreach (LayerType layerType in layerTypes)
+// {
+// TreeNode secNode = rootNode.Nodes.Add(layerType.label);
+// List layers = layerType.layers;
+// foreach (Layer layer in layers)
+// {
+// GSOLayer gsoLayer = gsoGlobeControl.Globe.Layers.GetLayerByCaption(layer.layer);
+// if (gsoLayer == null) continue;//将不存在的去除
+// TreeNode node = new TreeNode();
+// node.Tag = gsoLayer;
+// node.Text = layer.label;
+// node.Checked = gsoLayer.Visible;
+// if (gsoLayer.Visible)
+// {
+// secNode.Checked = true;
+// rootNode.Checked = true;
+// }
+// secNode.Nodes.Add(node);
+// }
+// }
+// }
+// }
- initNode("基础图层");
- initNode("其他");
- }
+ #endregion
- private void FrmLayerControl_Load(object sender, EventArgs e)
- {
- initTreeView();
- try
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(Application.StartupPath + "\\双屏设置.xml");
- XmlNodeList Params = doc.SelectNodes("/Params/layers");
+// private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
+// TreeView layerTree)
+// {
+// try
+// {
+// for (int i = 0; i < nLayerCount; i++)
+// {
+// GSOLayer layer = globcontrol.Globe.Layers[i];
+// if (layer == null) continue;
+// string layerName = layer.Name;
+// TreeNode node = new TreeNode();
+// node.Tag = layer;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = layer.Caption;
+// node.Checked = layer.Visible;
+//
+// bool isContains = false;
+// for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
+// {
+// if (!layerName.Contains("fttp:"))
+// {
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
+// layerName.Contains("施工") ||
+// layerName.Contains("规划")) continue;
+// break;
+// case "layerTree2":
+// if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// else
+// {
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
+// isContains = true;
+// break;
+// }
+// }
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
+// layerName.Contains("标注") ||
+// isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
+// layerName.Contains("景观") || layerName.Contains("红线"))
+// continue;
+// break;
+// case "layerTree2":
+// if (isContains != false || layerName.Contains("tempLgdData2"))
+// continue;
+// break;
+// default:
+// break;
+// }
+//
+// layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
+// }
+//
+// for (int i = 0; i < nTerrainCount; i++)
+// {
+// GSOTerrain terrain = globcontrol.Globe.Terrains[i];
+// if (terrain == null) continue;
+// TreeNode node = new TreeNode();
+// node.Tag = terrain;
+// node.ImageIndex = 0;
+// node.SelectedImageIndex = 0;
+// node.Text = terrain.Caption;
+// node.Checked = terrain.Visible;
+// switch (layerTree.Name)
+// {
+// case "layerTree1":
+// terrainManagerNode1.Nodes.Add(node);
+// break;
+// case "layerTree2":
+// terrainManagerNode.Nodes.Add(node);
+// break;
+// default:
+// break;
+// }
+// }
+// }
+// catch (Exception ex)
+// {
+// LogError.PublishError(ex);
+// }
+// }
- initTreeNode(Params);
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
+// private void initTreeNodeCheckedStatus(TreeView layerTreeView)
+// {
+// //节点选中状态控制
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
+// {
+// if (node.Checked != true) continue;
+// layerTreeView.Nodes[0].Checked = true;
+// break;
+// }
+//
+// foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
+// {
+// foreach (TreeNode childNode in node.Nodes)
+// {
+// GSOTerrain layer = childNode.Tag as GSOTerrain;
+// if (layer == null || layer.Visible != true) continue;
+// node.Checked = true;
+// break;
+// }
+// }
+// }
- RefreshLayerAndTerrainTree();
- }
-
- private void addLayerTreeNode(int nLayerCount, int nTerrainCount, GSOGlobeControl globcontrol,
- TreeView layerTree)
- {
- try
- {
- for (int i = 0; i < nLayerCount; i++)
- {
- GSOLayer layer = globcontrol.Globe.Layers[i];
- if (layer == null) continue;
- string layerName = layer.Name;
- TreeNode node = new TreeNode();
- node.Tag = layer;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = layer.Caption;
- node.Checked = layer.Visible;
-
- bool isContains = false;
- for (int j = 0; j < layerTree.Nodes[0].Nodes.Count; j++)
- {
- if (!layerName.Contains("fttp:"))
- {
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim()) ||
- layerName.Contains("施工") ||
- layerName.Contains("规划")) continue;
- break;
- case "layerTree2":
- if (!layerName.Contains(layerTree.Nodes[0].Nodes[j].Text.Trim())) continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[j].Nodes.Add(node);
- isContains = true;
- break;
- }
- else
- {
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 2].Nodes.Add(node);
- isContains = true;
- break;
- }
- }
- switch (layerTree.Name)
- {
- case "layerTree1":
- if (layerName.Contains("tempLgdData") || layerName.Contains("城市") ||
- layerName.Contains("标注") ||
- isContains == true || layerName.Contains("施工") || layerName.Contains("规划") ||
- layerName.Contains("景观") || layerName.Contains("红线"))
- continue;
- break;
- case "layerTree2":
- if (isContains != false || layerName.Contains("tempLgdData2"))
- continue;
- break;
- default:
- break;
- }
-
- layerTree.Nodes[0].Nodes[layerTree.Nodes[0].Nodes.Count - 1].Nodes.Add(node);
- }
-
- for (int i = 0; i < nTerrainCount; i++)
- {
- GSOTerrain terrain = globcontrol.Globe.Terrains[i];
- if (terrain == null) continue;
- TreeNode node = new TreeNode();
- node.Tag = terrain;
- node.ImageIndex = 0;
- node.SelectedImageIndex = 0;
- node.Text = terrain.Caption;
- node.Checked = terrain.Visible;
- switch (layerTree.Name)
- {
- case "layerTree1":
- terrainManagerNode1.Nodes.Add(node);
- break;
- case "layerTree2":
- terrainManagerNode.Nodes.Add(node);
- break;
- default:
- break;
- }
- }
- }
- catch (Exception ex)
- {
- LogError.PublishError(ex);
- }
- }
-
- private void initTreeNodeCheckedStatus(TreeView layerTreeView)
- {
- //节点选中状态控制
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[0].Nodes)
- {
- if (node.Checked != true) continue;
- layerTreeView.Nodes[0].Checked = true;
- break;
- }
-
- foreach (TreeNode node in layerTreeView.Nodes[1].Nodes)
- {
- foreach (TreeNode childNode in node.Nodes)
- {
- GSOTerrain layer = childNode.Tag as GSOTerrain;
- if (layer == null || layer.Visible != true) continue;
- node.Checked = true;
- break;
- }
- }
- }
-
- void exPandTreeNode()
- {
- layerManagerNode1.Expand();
- terrainManagerNode1.Expand();
- layerManagerNode.Expand();
- terrainManagerNode.Expand();
- }
+// void exPandTreeNode()
+// {
+// layerManagerNode1.Expand();
+// terrainManagerNode1.Expand();
+// layerManagerNode.Expand();
+// terrainManagerNode.Expand();
+// }
///
/// 刷新节点树
///
- private void RefreshLayerAndTerrainTree()
- {
- int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
- int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
- addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
- initTreeNodeCheckedStatus(layerTree1);
-
- int nLayerCount = globeControl2.Globe.Layers.Count;
- int nTerrainCount = globeControl2.Globe.Terrains.Count;
- addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
- initTreeNodeCheckedStatus(layerTree2);
-
- // 展开
- exPandTreeNode();
- }
+// private void RefreshLayerAndTerrainTree()
+// {
+// int nLayerCount1 = globeControl1.Globe.Layers.Count;//图层
+// int nTerrainCount1 = globeControl1.Globe.Terrains.Count;//地形
+// addLayerTreeNode(nLayerCount1, nTerrainCount1, globeControl1, layerTree1);
+// initTreeNodeCheckedStatus(layerTree1);
+//
+// int nLayerCount = globeControl2.Globe.Layers.Count;
+// int nTerrainCount = globeControl2.Globe.Terrains.Count;
+// addLayerTreeNode(nLayerCount, nTerrainCount, globeControl2, layerTree2);
+// initTreeNodeCheckedStatus(layerTree2);
+//
+// // 展开
+// exPandTreeNode();
+// }
///
/// 节点树复选框选中状态改变事件处理
@@ -289,144 +314,132 @@
{
if (e.Action != TreeViewAction.Unknown)
{
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl2.Globe.Refresh();
- }
- }
+ TreeUtils.treeNodeCheckedChange(globeControl2,e.Node);
+ }
+ }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+ private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
}
}
+
+
+// private void layerTree2_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl2.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl1.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree1(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree1(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl1.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(childNode, isChecked);
+// }
+// }
///
/// 改变指定节点的子节点的选中状态
///
///
///
- private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
- {
- foreach (TreeNode childNode in parentNode.Nodes)
- {
- childNode.Checked = isChecked;
- GSOLayer layer = childNode.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Tag is GSOTerrain)
- {
- GSOTerrain feat = childNode.Tag as GSOTerrain;
- feat.Visible = isChecked;
- globeControl2.Globe.Refresh();
- }
- if (childNode.Nodes.Count > 0)
- checkChildrenNodeLayertree2(childNode, isChecked);
- }
- }
+// private void checkChildrenNodeLayertree2(TreeNode parentNode, bool isChecked)
+// {
+// foreach (TreeNode childNode in parentNode.Nodes)
+// {
+// childNode.Checked = isChecked;
+// GSOLayer layer = childNode.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = childNode.Tag as GSOTerrain;
+// feat.Visible = isChecked;
+// globeControl2.Globe.Refresh();
+// }
+// if (childNode.Nodes.Count > 0)
+// checkChildrenNodeLayertree2(childNode, isChecked);
+// }
+// }
///
/// 节点树选中状态改变事件
///
///
///
- private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Action != TreeViewAction.Unknown)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOTerrain)
- {
- GSOTerrain feat = e.Node.Tag as GSOTerrain;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
+// private void layerTree1_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Action != TreeViewAction.Unknown)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOTerrain)
+// {
+// GSOTerrain feat = e.Node.Tag as GSOTerrain;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+//
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
+// }
+// }
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- checkChildrenNodeLayertree1(e.Node, e.Node.Checked);
- }
- }
- ///
- /// 改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- ///
- ///
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent != null)
- {
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
- }
}
}
diff --git a/MainFrm.cs b/MainFrm.cs
index d22b2c9..ba3bf31 100644
--- a/MainFrm.cs
+++ b/MainFrm.cs
@@ -28,10 +28,10 @@
{
TreeNode layerManagerNode;
bool m_bFullScreen;
-
+
GSOGlobeControl globeControl1;
GSOGlobeControl globeControl2;
- private GSOHudButton legend;//定义图例
+ private GSOHudButton legend; //定义图例
private GSOHudButton btnToolNone;
private GSOHudButton btnToolSelect;
ToolTip tooltip1;
@@ -50,12 +50,12 @@
public bool boolfrmShResult;
public bool boolfrmModify;
- public static string m_CurrentQueryLayer;//定义当前查询的图层
+ public static string m_CurrentQueryLayer; //定义当前查询的图层
//定位和闪烁初始化定义
private EnumDesignMode enumDesignMode; //模拟规划设计模式
- private string trackflag;//定义阀门查询个数
+ private string trackflag; //定义阀门查询个数
//记录沿线飞行设置
//int m_nFlyMode = 2;
@@ -67,7 +67,7 @@
Double m_dDigPitWidthAlongLine = 6;
Boolean m_bDigPitByDepth = true;
//选择管线
- int selectState;//wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
+ int selectState; //wxl 注释,表示是否已经计算过净距等了,1已计算,0未计算
//private OracleConnection connBackup = null;
//数据集合
@@ -89,8 +89,8 @@
//双屏对比
//bool zhanshi=false;
Thread t = null;
- private GSOHudButton legendSC;//定义图例
- private GSOHudButton legendSG;//定义图例
+ private GSOHudButton legendSC; //定义图例
+ private GSOHudButton legendSG; //定义图例
//管纵图
private GSOHudButton lendendGZ50;
private GSOHudButton lendendGZ36;
@@ -102,12 +102,13 @@
GSOGeoPoint3D bsqPT;
- FrmYJSHTC frmSh;//一键审核窗口全局变量wxl
- FrmWait frmWait;//一键审核等待窗口
+ FrmYJSHTC frmSh; //一键审核窗口全局变量wxl
+ FrmWait frmWait; //一键审核等待窗口
//FrmWait frmWait2 = null;//文档操作等待窗口
float mouseDownX1, mouseDownY1;
float mouseDownX2, mouseDownY2;
+
///
///
///
@@ -164,8 +165,9 @@
RigthMenuSet();
MenuSet();
-
+
}
+
///
/// 右屏中添加管纵图片
///
@@ -259,6 +261,7 @@
}
#region 区域分析
+
if (Utility.userRole.IndexOf("区域分析") < 0)
{
toolRightMenu.Items.Remove(区域分析ToolStripMenuItem);
@@ -278,9 +281,11 @@
区域分析ToolStripMenuItem.DropDownItems.Remove(无源淹没分析ToolStripMenuItem);
}
}
+
#endregion
#region 视域分析
+
if (Utility.userRole.IndexOf("视域分析") < 0)
{
toolRightMenu.Items.Remove(视域分析ToolStripMenuItem);
@@ -300,9 +305,11 @@
视域分析ToolStripMenuItem.DropDownItems.Remove(可视包络分析ToolStripMenuItem);
}
}
+
#endregion
#region 开发分析
+
if (Utility.userRole.IndexOf("开挖分析") < 0)
{
toolRightMenu.Items.Remove(开挖分析ToolStripMenuItem);
@@ -334,9 +341,11 @@
开挖分析ToolStripMenuItem.DropDownItems.Remove(删除隧道ToolStripMenuItem);
}
}
+
#endregion
#region 拓扑分析
+
if (Utility.userRole.IndexOf("拓扑分析") < 0)
{
toolRightMenu.Items.Remove(拓扑分析ToolStripMenuItem);
@@ -372,9 +381,11 @@
拓扑分析ToolStripMenuItem.DropDownItems.Remove(爆管分析ToolStripMenuItem);
}
}
+
#endregion
#region 断面分析
+
if (Utility.userRole.IndexOf("断面分析") < 0)
{
toolRightMenu.Items.Remove(断面分析ToolStripMenuItem);
@@ -398,9 +409,11 @@
断面分析ToolStripMenuItem.DropDownItems.Remove(基线剖面分析ToolStripMenuItem);
}
}
+
#endregion
#region 绘制区域统计
+
if (Utility.userRole.IndexOf("绘制区域统计") < 0)
{
toolRightMenu.Items.Remove(绘制区域统计ToolStripMenuItem);
@@ -445,9 +458,11 @@
}
}
+
#endregion
#region 全区域统计
+
if (Utility.userRole.IndexOf("全区域统计") < 0)
{
toolRightMenu.Items.Remove(全区域统计ToolStripMenuItem);
@@ -492,9 +507,11 @@
}
}
+
#endregion
#region 查询
+
if (Utility.userRole.IndexOf("查询") < 0)
{
toolRightMenu.Items.Remove(查询ToolStripMenuItem);
@@ -542,9 +559,11 @@
查询ToolStripMenuItem.DropDownItems.Remove(附属物查询ToolStripMenuItem);
}
}
+
#endregion
#region 标注
+
if (Utility.userRole.IndexOf("标注") < 0)
{
toolRightMenu.Items.Remove(标注ToolStripMenuItem);
@@ -592,9 +611,11 @@
标注ToolStripMenuItem.DropDownItems.Remove(标注管理ToolStripMenuItem);
}
}
+
#endregion
#region 飞行
+
if (Utility.userRole.IndexOf("飞行") < 0)
{
toolRightMenu.Items.Remove(飞行ToolStripMenuItem);
@@ -618,9 +639,11 @@
飞行ToolStripMenuItem.DropDownItems.Remove(绕眼睛飞行ToolStripMenuItem);
}
}
+
#endregion
#region 编辑
+
if (Utility.userRole.IndexOf("编辑") < 0)
{
toolRightMenu.Items.Remove(编辑ToolStripMenuItem);
@@ -656,9 +679,11 @@
编辑ToolStripMenuItem.DropDownItems.Remove(删除模型ToolStripMenuItem);
}
}
+
#endregion
#region 量算
+
if (Utility.userRole.IndexOf("量算") < 0)
{
toolRightMenu.Items.Remove(量算ToolStripMenuItem);
@@ -694,6 +719,7 @@
量算ToolStripMenuItem.DropDownItems.Remove(地表面积ToolStripMenuItem1);
}
}
+
#endregion
}
@@ -701,6 +727,7 @@
{
#region 权限管理
+
if (Utility.userRole.IndexOf("权限管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem2);
@@ -734,9 +761,11 @@
}
}
+
#endregion
#region 基础工具
+
if (Utility.userRole.IndexOf("基础工具") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem1);
@@ -781,37 +810,47 @@
}
}
+
#endregion
#region 一键审核
+
if (Utility.userRole.IndexOf("一键审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem11);
}
+
#endregion
#region 红线审核
+
if (Utility.userRole.IndexOf("红线审核") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem6);
}
+
#endregion
#region 双屏对比
+
if (Utility.userRole.IndexOf("双屏对比") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem9);
}
+
#endregion
#region 文档管理
+
if (Utility.userRole.IndexOf("文档管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem4);
}
+
#endregion
#region 基础管理
+
if (Utility.userRole.IndexOf("基础管理") < 0)
{
ribbonControl1.Items.Remove(ribbonTabItem14);
@@ -841,6 +880,7 @@
}
#region Fan Zhang 重构现有代码
+
//初始化控件布局
private void initLayout()
{
@@ -848,37 +888,37 @@
double dsw = SW;
if (SW > 1440)
{
- double myScreen = dsw / 1440;
- buttonX1.Width = (int)(buttonX1.Width * myScreen);
- buttonX2.Width = (int)(buttonX2.Width * myScreen);
- buttonX4.Width = (int)(buttonX4.Width * myScreen);
- buttonX5.Width = (int)(buttonX5.Width * myScreen);
- buttonX6.Width = (int)(buttonX6.Width * myScreen);
- buttonX7.Width = (int)(buttonX8.Width * myScreen);
- buttonX8.Width = (int)(buttonX8.Width * myScreen);
- buttonX9.Width = (int)(buttonX9.Width * myScreen);
- buttonX12.Width = (int)(buttonX12.Width * myScreen);
- buttonX14.Width = (int)(buttonX14.Width * myScreen);
- buttonX15.Width = (int)(buttonX15.Width * myScreen);
- buttonX16.Width = (int)(buttonX16.Width * myScreen);
- buttonX17.Width = (int)(buttonX17.Width * myScreen);
+ double myScreen = dsw/1440;
+ buttonX1.Width = (int) (buttonX1.Width*myScreen);
+ buttonX2.Width = (int) (buttonX2.Width*myScreen);
+ buttonX4.Width = (int) (buttonX4.Width*myScreen);
+ buttonX5.Width = (int) (buttonX5.Width*myScreen);
+ buttonX6.Width = (int) (buttonX6.Width*myScreen);
+ buttonX7.Width = (int) (buttonX8.Width*myScreen);
+ buttonX8.Width = (int) (buttonX8.Width*myScreen);
+ buttonX9.Width = (int) (buttonX9.Width*myScreen);
+ buttonX12.Width = (int) (buttonX12.Width*myScreen);
+ buttonX14.Width = (int) (buttonX14.Width*myScreen);
+ buttonX15.Width = (int) (buttonX15.Width*myScreen);
+ buttonX16.Width = (int) (buttonX16.Width*myScreen);
+ buttonX17.Width = (int) (buttonX17.Width*myScreen);
- labelX1.Width = (int)(labelX1.Width * myScreen);
- labelX2.Width = (int)(labelX2.Width * myScreen);
- labelX3.Width = (int)(labelX3.Width * myScreen);
- labelX6.Width = (int)(labelX6.Width * myScreen);
- labelX8.Width = (int)(labelX8.Width * myScreen);
- labelX9.Width = (int)(labelX9.Width * myScreen);
- labelX12.Width = (int)(labelX12.Width * myScreen);
- labelX13.Width = (int)(labelX13.Width * myScreen);
- labelX14.Width = (int)(labelX14.Width * myScreen);
- labelX16.Width = (int)(labelX16.Width * myScreen);
- labelX17.Width = (int)(labelX17.Width * myScreen);
- labelX11.Width = (int)(labelX11.Width * myScreen);
- labelX19.Width = (int)(labelX19.Width * myScreen);
- labelX21.Width = (int)(labelX21.Width * myScreen);
- labelX22.Width = (int)(labelX22.Width * myScreen);
- labelX24.Width = (int)(labelX24.Width * myScreen);
+ labelX1.Width = (int) (labelX1.Width*myScreen);
+ labelX2.Width = (int) (labelX2.Width*myScreen);
+ labelX3.Width = (int) (labelX3.Width*myScreen);
+ labelX6.Width = (int) (labelX6.Width*myScreen);
+ labelX8.Width = (int) (labelX8.Width*myScreen);
+ labelX9.Width = (int) (labelX9.Width*myScreen);
+ labelX12.Width = (int) (labelX12.Width*myScreen);
+ labelX13.Width = (int) (labelX13.Width*myScreen);
+ labelX14.Width = (int) (labelX14.Width*myScreen);
+ labelX16.Width = (int) (labelX16.Width*myScreen);
+ labelX17.Width = (int) (labelX17.Width*myScreen);
+ labelX11.Width = (int) (labelX11.Width*myScreen);
+ labelX19.Width = (int) (labelX19.Width*myScreen);
+ labelX21.Width = (int) (labelX21.Width*myScreen);
+ labelX22.Width = (int) (labelX22.Width*myScreen);
+ labelX24.Width = (int) (labelX24.Width*myScreen);
}
sideBar1.Visible = false;
sideBar1.ExpandedPanel = sideBarPanelItem3;
@@ -899,7 +939,7 @@
splitContainer1.Panel2Collapsed = true;
- buttonItem87.Checked = true;//默认地上模式
+ buttonItem87.Checked = true; //默认地上模式
ribbonTabItem1.Select(); //初始化状态为浏览
sideBarPanelItem3.Visible = false;
@@ -951,7 +991,7 @@
//图例
legend = new GSOHudButton();
- legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg");//图例P
+ legend.SetImage(Application.StartupPath + "/Resource/图例P.jpg"); //图例P
legend.SetOffset(0, 15);
legend.MinOpaque = 1;
legend.MaxOpaque = 1;
@@ -1002,7 +1042,7 @@
globeControl1.Globe.UserBackgroundColor = Color.White;
globeControl1.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl1.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed * 3;
+ globeControl1.Globe.FlyToPointSpeed = globeControl1.Globe.FlyToPointSpeed*3;
globeControl1.Globe.EditSnapObject = true;
globeControl1.Globe.IsReleaseMemOutOfView = true;
globeControl1.Globe.ControlPanel.Visible = true;
@@ -1021,18 +1061,22 @@
globeControl2.Globe.UserBackgroundColor = Color.White;
globeControl2.Globe.FlyAlongLineSpeed = m_dFlyAlongLineSpeed;
globeControl2.Globe.FlyAlongLineRotateSpeed = m_dFlyAlongLineRotateSpeed;
- globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed * 3;
+ globeControl2.Globe.FlyToPointSpeed = globeControl2.Globe.FlyToPointSpeed*3;
globeControl2.Globe.EditSnapObject = true;
globeControl2.Globe.IsReleaseMemOutOfView = true;
globeControl2.Globe.ControlPanel.Visible = false;
- GSOSimplePolygonStyle3D trackingRectStyle = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackingRectStyle =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle as GSOSimplePolygonStyle3D;
trackingRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimplePolygonStyle3D trackRectStyle = globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
+ GSOSimplePolygonStyle3D trackRectStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle as GSOSimplePolygonStyle3D;
trackRectStyle.FillColor = Color.FromArgb(0, 0, 0, 0);
- GSOSimpleLineStyle3D trackRectLineStyle = globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle =
+ globeControl1.Globe.TrackRectTool.PolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle.LineType = EnumLineType.Solid;
- GSOSimpleLineStyle3D trackRectLineStyle1 = globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
+ GSOSimpleLineStyle3D trackRectLineStyle1 =
+ globeControl1.Globe.TrackRectTool.TrackingPolygonStyle.OutlineStyle as GSOSimpleLineStyle3D;
trackRectLineStyle1.LineType = EnumLineType.Solid;
trackRectLineStyle1.LineColor = Color.FromArgb(0, 174, 255);
trackRectLineStyle1.LineWidth = 1;
@@ -1119,21 +1163,28 @@
globeControl1.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
globeControl2.Globe.ConnectServer(Utility.serverip, Utility.serverport, "", ""); //加载locaServer中的数据
//初始化TreeView
+
+ #region wxl
+
+ initLayerTree();
+
+ #endregion
+
// 勾选实测图层
- foreach (TreeNode tn in layerTree.Nodes)
- {
- if (tn.Nodes.Count <= 0) continue;
- if (tn.Text != "实测数据") continue;
- tn.Checked = true;
- foreach (TreeNode tnChild in tn.Nodes)
- {
- tnChild.Checked = true;
- foreach (TreeNode tnGrandChild in tnChild.Nodes)
- {
- tnGrandChild.Checked = true;
- }
- }
- }
+// foreach (TreeNode tn in layerTree.Nodes)
+// {
+// if (tn.Nodes.Count <= 0) continue;
+// if (tn.Text != "实测数据") continue;
+// tn.Checked = true;
+// foreach (TreeNode tnChild in tn.Nodes)
+// {
+// tnChild.Checked = true;
+// foreach (TreeNode tnGrandChild in tnChild.Nodes)
+// {
+// tnGrandChild.Checked = true;
+// }
+// }
+// }
}
private void doLoadDataForGlobalControl1()
@@ -1142,7 +1193,10 @@
{
globeControl1.Globe.Layers.MoveDown(10000);
//加载实测管线数据
- Utility.dataSource = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID, Utility.DBPassword);
+ Utility.dataSource =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(
+ Utility.DBServer.Trim() + "/" + Utility.dbdatabase.Trim(), "", "", Utility.userID,
+ Utility.DBPassword);
if (Utility.dataSource != null)
{
@@ -1160,7 +1214,9 @@
globeControl1.Globe.Layers.GetLayerByCaption("红线").Visible = false;
//globleControl1中加载规划数据
- GSODataSource ghDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "", Utility.ghdbuser, Utility.ghdbpwd);
+ GSODataSource ghDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.ghdbip + "/" + Utility.ghdbname, "", "",
+ Utility.ghdbuser, Utility.ghdbpwd);
if (ghDS != null)
{
for (int j = 0; j < ghDS.DatasetCount; j++)
@@ -1176,13 +1232,16 @@
}
//globeControl1,globeControl2中加载施工数据
- GSODataSource sgDS = globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "", Utility.sgdbuser, Utility.sgdbpwd);
+ GSODataSource sgDS =
+ globeControl1.Globe.DataManager.OpenOracleDataSource(Utility.sgdbip + "/" + Utility.sgdbname, "", "",
+ Utility.sgdbuser, Utility.sgdbpwd);
if (sgDS != null)
{
for (int m = 0; m < sgDS.DatasetCount; m++)
{
GSODataset dataset = sgDS.GetDatasetAt(m);
- if (dataset != null && !dataset.Caption.Contains("SH") && Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
+ if (dataset != null && !dataset.Caption.Contains("SH") &&
+ Utility.dictionaryNetLayerNameAndCaption.ContainsKey(dataset.Caption))
{
dataset.Caption = dataset.Name;
globeControl1.Globe.Layers.Add(dataset);
@@ -1196,12 +1255,12 @@
// LoadDataForGlobalControl ss = connectServer;
// ss();
-
+
this.Invoke((EventHandler) delegate
{
connectServer();
});
-
+
}
catch (Exception ex)
@@ -1212,6 +1271,7 @@
private void initLayerTree()
{
+ layerTree.Nodes.Clear();
//加载临时图层节点
layerManagerNode = new TreeNode();
layerManagerNode.ImageIndex = 0;
@@ -1220,59 +1280,60 @@
layerManagerNode.Text = "临时图层";
layerTree.Nodes.Add(layerManagerNode);
- XmlDocument doc = new XmlDocument();
- doc.Load(Utility.filename);
- XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
-
- foreach (XmlNode xmlLayerNode in xmlLayerNodes)
- {
-
- //TODO LIST:创建一级TreeNode(实测、规划、施工)
- TreeNode nodelayer = new TreeNode();
- string layerName = xmlLayerNode.Attributes["label"].Value;
- nodelayer.Text = layerName;
- nodelayer.Checked = false;
- layerTree.Nodes.Add(nodelayer);
-
- XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
- foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
- {
- //TODO LIST:创建二级TreeNode节点
- TreeNode secondLevelNode = new TreeNode();
- string layerType = xmlChildLayerNode.Attributes["label"].Value;
- secondLevelNode.Text = layerType;
-
- if (xmlChildLayerNode.Attributes["type"] != null)
- { //道路图层特殊处理
- string type = xmlChildLayerNode.Attributes["type"].Value;
- secondLevelNode.Tag = type + "|" + layerType;
- }
- else
- {
- secondLevelNode.Tag = layerType;
- }
- secondLevelNode.Checked = false;
- nodelayer.Nodes.Add(secondLevelNode);
-
- XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
-
- foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
- {
- //TODO LIST:创建三级图层节点
- TreeNode layerNode = new TreeNode();
- string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
- string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
- string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
-
- layerNode.Text = actutallyLabelName;
- layerNode.Tag = layerType + "|" + actutallyLabelName;
- layerNode.Checked = false;
- secondLevelNode.Nodes.Add(layerNode);
- }
-
- }
-
- }
+ TreeUtils.initTree(globeControl1, layerTree, null);
+// XmlDocument doc = new XmlDocument();
+// doc.Load(Utility.filename);
+// XmlNodeList xmlLayerNodes = doc.SelectNodes("//layer");
+//
+// foreach (XmlNode xmlLayerNode in xmlLayerNodes)
+// {
+//
+// //TODO LIST:创建一级TreeNode(实测、规划、施工)
+// TreeNode nodelayer = new TreeNode();
+// string layerName = xmlLayerNode.Attributes["label"].Value;
+// nodelayer.Text = layerName;
+// nodelayer.Checked = false;
+// layerTree.Nodes.Add(nodelayer);
+//
+// XmlNodeList xmlChildLayerNodes = xmlLayerNode.ChildNodes;
+// foreach (XmlNode xmlChildLayerNode in xmlChildLayerNodes)
+// {
+// //TODO LIST:创建二级TreeNode节点
+// TreeNode secondLevelNode = new TreeNode();
+// string layerType = xmlChildLayerNode.Attributes["label"].Value;
+// secondLevelNode.Text = layerType;
+//
+// if (xmlChildLayerNode.Attributes["type"] != null)
+// { //道路图层特殊处理
+// string type = xmlChildLayerNode.Attributes["type"].Value;
+// secondLevelNode.Tag = type + "|" + layerType;
+// }
+// else
+// {
+// secondLevelNode.Tag = layerType;
+// }
+// secondLevelNode.Checked = false;
+// nodelayer.Nodes.Add(secondLevelNode);
+//
+// XmlNodeList xmlActitualLayerNodes = xmlChildLayerNode.ChildNodes;
+//
+// foreach (XmlNode xmlActitualLayerNode in xmlActitualLayerNodes)
+// {
+// //TODO LIST:创建三级图层节点
+// TreeNode layerNode = new TreeNode();
+// string actutallylayerType = xmlActitualLayerNode.Attributes["type"].Value;
+// string actutallylayerName = xmlActitualLayerNode.Attributes["layer"].Value;
+// string actutallyLabelName = xmlActitualLayerNode.Attributes["label"].Value;
+//
+// layerNode.Text = actutallyLabelName;
+// layerNode.Tag = layerType + "|" + actutallyLabelName;
+// layerNode.Checked = false;
+// secondLevelNode.Nodes.Add(layerNode);
+// }
+//
+// }
+//
+// }
}
@@ -1298,7 +1359,8 @@
for (int i = 0; i < markerStrs.Length; i++)
{
if (!File.Exists(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd")) continue;
- GSOLayer markerLayer = globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
+ GSOLayer markerLayer =
+ globeControl1.Globe.Layers.Add(Application.StartupPath + "\\标注管理\\" + markerStrs[i] + ".lgd");
if (markerLayer == null) continue;
TreeNode node1 = new TreeNode();
node1.Text = markerLayer.Caption;
@@ -1314,7 +1376,7 @@
{
initGlobalControl();
//initGlobalMap();
- initLayerTree();
+// initLayerTree();
initMarkerTree();
initLayout();
loadData();
@@ -1383,7 +1445,7 @@
tempnode.Checked = node.Checked ? feature.Visible : false;
tempnode.Tag = feature;
node.Nodes.Add(tempnode);
- GSOFeatureFolder featureFolder = (GSOFeatureFolder)feature;
+ GSOFeatureFolder featureFolder = (GSOFeatureFolder) feature;
VisitFeature3Ds(featureFolder.Features, tempnode);
}
else
@@ -1444,7 +1506,7 @@
///
Boolean CheckDatasetGeoReference(GSODataset dataset, string strDataPath)
{
-
+
if (dataset.GeoReferenceType != EnumGeoReferenceType.Flat) return true;
Boolean bSuccess = false;
if (MessageBox.Show("数据没有空间参考信息,请设置空间参考信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) !=
@@ -1498,7 +1560,7 @@
dlg.Filter = "输出JPEG(*.jpg)|*.jpg|输出PNG(*.png)|*.png|输出BMP(*.bmp)|*.bmp|输出BMP(*.gif)|*.gif";
if (dlg.ShowDialog() == DialogResult.OK)
{
- string extension = Path.GetExtension(dlg.FileName);//扩展名
+ string extension = Path.GetExtension(dlg.FileName); //扩展名
switch (extension)
{
case ".jpg":
@@ -1520,6 +1582,7 @@
globeControl1.Globe.Action = EnumAction3D.ActionNull;
globeControl1.Globe.MouseRoamingEnable = true;
}
+
///
/// 定位正北正90度俯视
///
@@ -1573,100 +1636,112 @@
break;
}
}
+
+ #region wxl 重构树形结构代码
+
+ private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+ {
+ if (e.Action != TreeViewAction.Unknown)
+ {
+ TreeUtils.treeNodeCheckedChange(globeControl1, e.Node);
+ }
+ }
+
+ #endregion
///
- /// layerTree选中后事件处理
+ /// layerTree选中后事件处理
///
///
///
- private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Node.Tag != null)
- {
- if (e.Node.Tag.ToString().Contains("|"))
- {
- string nodeTag = e.Node.Tag.ToString().Split('|')[1];
- GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
- if (layer != null)
- {
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- if (e.Node.Tag is GSOLayer)
- {
- GSOLayer layer = e.Node.Tag as GSOLayer;
- layer.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- if (e.Node.Tag is GSOFeature)
- {
- if (e.Node.Nodes.Count == 0)
- {
- GSOFeature feat = e.Node.Tag as GSOFeature;
- feat.Visible = e.Node.Checked;
- globeControl1.Globe.Refresh();
- }
- }
- }
- CheckControl(e);
- }
+// private void layerTree_AfterCheck(object sender, TreeViewEventArgs e)
+// {
+// if (e.Node.Tag != null)
+// {
+// if (e.Node.Tag.ToString().Contains("|"))
+// {
+// string nodeTag = e.Node.Tag.ToString().Split('|')[1];
+// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag);
+// if (layer != null)
+// {
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// if (e.Node.Tag is GSOLayer)
+// {
+// GSOLayer layer = e.Node.Tag as GSOLayer;
+// layer.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// if (e.Node.Tag is GSOFeature)
+// {
+// if (e.Node.Nodes.Count == 0)
+// {
+// GSOFeature feat = e.Node.Tag as GSOFeature;
+// feat.Visible = e.Node.Checked;
+// globeControl1.Globe.Refresh();
+// }
+// }
+// }
+// CheckControl(e);
+// }
///
/// 树节点选中方法
///
///
- private void CheckControl(TreeViewEventArgs e)
- {
- if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
- CheckParentNode(e.Node);
- if (e.Node.Nodes.Count > 0)
- {
- CheckAllChildNodes(e.Node, e.Node.Checked);
- }
- }
+// private void CheckControl(TreeViewEventArgs e)
+// {
+// if (e.Action == TreeViewAction.Unknown||e.Node == null || Convert.IsDBNull(e.Node)) return;
+// CheckParentNode(e.Node);
+// if (e.Node.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(e.Node, e.Node.Checked);
+// }
+// }
///
/// 改变所有子节点的状态
///
///
///
- private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
- {
- foreach (TreeNode tn in pn.Nodes)
- {
- tn.Checked = IsChecked;
-
- if (tn.Nodes.Count > 0)
- {
- CheckAllChildNodes(tn, IsChecked);
- }
- }
- }
+// private void CheckAllChildNodes(TreeNode pn, bool IsChecked)
+// {
+// foreach (TreeNode tn in pn.Nodes)
+// {
+// tn.Checked = IsChecked;
+//
+// if (tn.Nodes.Count > 0)
+// {
+// CheckAllChildNodes(tn, IsChecked);
+// }
+// }
+// }
//改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
- private void CheckParentNode(TreeNode curNode)
- {
- bool bChecked = false;
-
- if (curNode.Parent == null) return;
- foreach (TreeNode node in curNode.Parent.Nodes)
- {
- if (node.Checked)
- {
- bChecked = true;
- break;
- }
- }
-
- if (bChecked)
- {
- curNode.Parent.Checked = true;
- CheckParentNode(curNode.Parent);
- }
- else
- {
- curNode.Parent.Checked = false;
- CheckParentNode(curNode.Parent);
- }
- }
+// private void CheckParentNode(TreeNode curNode)
+// {
+// bool bChecked = false;
+//
+// if (curNode.Parent == null) return;
+// foreach (TreeNode node in curNode.Parent.Nodes)
+// {
+// if (node.Checked)
+// {
+// bChecked = true;
+// break;
+// }
+// }
+//
+// if (bChecked)
+// {
+// curNode.Parent.Checked = true;
+// CheckParentNode(curNode.Parent);
+// }
+// else
+// {
+// curNode.Parent.Checked = false;
+// CheckParentNode(curNode.Parent);
+// }
+// }
private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
diff --git a/MainFrm.designer.cs b/MainFrm.designer.cs
index a9b8c6f..1f9c1f5 100644
--- a/MainFrm.designer.cs
+++ b/MainFrm.designer.cs
@@ -2283,12 +2283,12 @@
//
this.ribbonControl1.BackgroundStyle.Class = "";
this.ribbonControl1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.ribbonControl1.Controls.Add(this.ribbonPanel15);
this.ribbonControl1.Controls.Add(this.ribbonPanel6);
this.ribbonControl1.Controls.Add(this.ribbonPanel4);
this.ribbonControl1.Controls.Add(this.ribbonPanel12);
this.ribbonControl1.Controls.Add(this.ribbonPanel5);
this.ribbonControl1.Controls.Add(this.ribbonPanel2);
- this.ribbonControl1.Controls.Add(this.ribbonPanel15);
this.ribbonControl1.Controls.Add(this.ribbonPanel1);
this.ribbonControl1.Dock = System.Windows.Forms.DockStyle.Top;
this.ribbonControl1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
@@ -2356,6 +2356,7 @@
this.ribbonPanel6.StyleMouseOver.Class = "";
this.ribbonPanel6.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.ribbonPanel6.TabIndex = 38;
+ this.ribbonPanel6.Visible = false;
//
// ribbonBar6
//
@@ -2945,7 +2946,6 @@
this.ribbonPanel15.StyleMouseOver.Class = "";
this.ribbonPanel15.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.ribbonPanel15.TabIndex = 35;
- this.ribbonPanel15.Visible = false;
//
// ribbonBar20
//
@@ -4465,7 +4465,6 @@
// ribbonTabItem9
//
this.ribbonTabItem9.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
- this.ribbonTabItem9.Checked = true;
this.ribbonTabItem9.HoverImage = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem9.HoverImage")));
this.ribbonTabItem9.Image = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem9.Image")));
this.ribbonTabItem9.Name = "ribbonTabItem9";
@@ -4486,6 +4485,7 @@
// ribbonTabItem14
//
this.ribbonTabItem14.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
+ this.ribbonTabItem14.Checked = true;
this.ribbonTabItem14.HoverImage = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem14.HoverImage")));
this.ribbonTabItem14.Image = ((System.Drawing.Image)(resources.GetObject("ribbonTabItem14.Image")));
this.ribbonTabItem14.Name = "ribbonTabItem14";
@@ -5480,7 +5480,7 @@
this.dataGridViewX2.ReadOnly = true;
this.dataGridViewX2.RowHeadersVisible = false;
this.dataGridViewX2.RowTemplate.Height = 23;
- this.dataGridViewX2.Size = new System.Drawing.Size(23359, 92);
+ this.dataGridViewX2.Size = new System.Drawing.Size(23656, 92);
this.dataGridViewX2.TabIndex = 11;
//
// dataGridViewTextBoxColumn10
@@ -5574,7 +5574,7 @@
this.dataGridViewX3.ReadOnly = true;
this.dataGridViewX3.RowHeadersVisible = false;
this.dataGridViewX3.RowTemplate.Height = 23;
- this.dataGridViewX3.Size = new System.Drawing.Size(23358, 127);
+ this.dataGridViewX3.Size = new System.Drawing.Size(23655, 127);
this.dataGridViewX3.TabIndex = 5;
this.dataGridViewX3.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.dataGridViewX3_MouseDoubleClick);
//
@@ -5832,7 +5832,7 @@
this.dataGridViewX8.ReadOnly = true;
this.dataGridViewX8.RowHeadersVisible = false;
this.dataGridViewX8.RowTemplate.Height = 23;
- this.dataGridViewX8.Size = new System.Drawing.Size(133, 92);
+ this.dataGridViewX8.Size = new System.Drawing.Size(116, 92);
this.dataGridViewX8.TabIndex = 11;
//
// dataGridViewTextBoxColumn12
@@ -5927,7 +5927,7 @@
this.dataGridViewX9.ReadOnly = true;
this.dataGridViewX9.RowHeadersVisible = false;
this.dataGridViewX9.RowTemplate.Height = 23;
- this.dataGridViewX9.Size = new System.Drawing.Size(132, 127);
+ this.dataGridViewX9.Size = new System.Drawing.Size(115, 127);
this.dataGridViewX9.TabIndex = 5;
this.dataGridViewX9.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.dataGridViewX9_MouseDoubleClick);
//
diff --git a/MainFrm.resx b/MainFrm.resx
index b408d34..61fa81b 100644
--- a/MainFrm.resx
+++ b/MainFrm.resx
@@ -351,804 +351,6 @@
766, 54
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlDMzFEOUI4NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
- NEI4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlDMzFEOUI3NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
- NEI4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk5Mzk2NTZBRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz73sIMwAAADIElEQVRIS7WVa0iTYRTH56Uiysvm3TkvpLl5DRIvQYWVWl+6
- iNEVg0yhQqloQZHkLT+Y0YdAs75IpEUhzERZoZhsRpZlS7soblotsRwoxhqWeTrnYZtv+u7NsB74cZ5z
- zv89/z17HzYRAPxXeIv/EpFXcOyi4BvKhfehv4FvKBfeh+ayqIUDlIgBgT8whpRYoT2fhgvNVJKBQT9s
- hB8/QZDPpnEIjEhg0J5Pw4Vm0mwygG9T06BSqQQhTUhUMoRGpyxYT7OZwfhXC6jVakFIYzNYqN5uMGKa
- BI1GIwhpghXJaJJi13d0dEB2bj74hsWzSDlXbzfQG02g0+kEIU2wIomdovzKdVifngnFFytBeb4cLN+n
- WaSc6hfKKqB/eHTWoHfwExgMBkFII5MnQUD4WlAWloO26wVs35MDmifPmQFFyqlO/aKKqlmDp31DYDKZ
- BCGNTJ4IPqHx8LJvACbNUw7p6e2HuJQMNIhhBuaHj3vBYrEI0tb1BoIiE9kJ9h7Oh7EJM+g/jEJuwVlY
- s24ri5RTnfo5BedAIoueIYPumvomuHzjzm9cq2uCq7UNUH2rEarr7kNd0yP26Y+eKoSWtk4wfpmAg7kn
- ITY5DUorq1g8cOQEqze3aplOEhRtJoMcL1mMTixV9IgD5a/tSBVDYql8AKOBQLEJtTP08gY/jjFiktKg
- 5FIV21Ok3NazvmR2AvrFkCAJyGYk1comZAuHDM/AyLvHThfBveZ26NOPwI59eey7LsbhFCmnOvVJ5+Ef
- rrYZLEU8EZ85+HLwW7ZCLMVTFWdkHoLut+/hgbYHaE9XN31XNsupTrWV3jKVs+uS3cyAD0cLe331jW3Q
- qRt0CPUlQVHDKI+fN9iGo4W90uNnyuA2vvRtWTlQgxeg/dk7FimnOvU9/CNqUe47b7ANRwt7AfjpKvAK
- Gt18Qur35ymhRfsKKLr5hN7EyzDq7humWrrcfSfKxbz/QlwcLDck1snZJdUzYHUDmk57+K1qdXJyzsL6
- RmQD9ZmObygXB8sVIRO6fXQB4hC6eRQppzr1XXmHclnAckFomLc1Um5dItEvhZ97MQXP9N0AAAAASUVO
- RK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhDMTdBQjRENEFBRTExRTQ4QjQyODY0MDNBNTJE
- NzNCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhDMTdBQjRDNEFBRTExRTQ4QjQyODY0MDNBNTJE
- NzNCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUQyMjc4QTlBQjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4eHsDfAAAB00lEQVRIS7XVWytEURQH8HniTTNHLs0NCXNcXjTN5dH9g/gM
- 3jx590QhFDJS0gyTGmpqaqJIMW4hzlAoOaWISS7LWifntI3ddnTGrl92e/57/We/DBsA/CvuYSHZSr0t
- lvCGsriX/oI3lMW9lM/SwgF9SEHwizs08IX2vAyLZvZRgXJ+cQWv7yB0q96Ds86voT0vw6KZNJsK4Pnl
- DWKxmBBlqhpDUN0UNp2n2VrB/WMOEomEEGX0ArN5o+BGfYB0Oi1EGa8cwpKw6bxRcH6lQiaTEaKMVw5q
- rzCbNwr2z65BURQhynh8Qe0VZvNGwdZBFlRVFaKMxxfQXmE2rxc8rW3sQy6XE0puHoG7IaC9YnV9j5th
- pbZPqOCDCrbH5uIwOD7/zWgkDkNTizAyuwQjkWWIxFNQWduqmVxI/MiPz6/A8HTUuDMTTYLkbrqhgt5S
- T3PG4ZJ3HE7focElZx0u3yn+VQiG1ZLymmm7s74f88f42S6bl9zyJZ6d6Xckd+Mt5ieogH4xJORHHajt
- SzvqZPSgECpHZSiA2DztuxBlad+NgnpBEbIjusiiYboKRF+kGFHegUR5ImkFv7G0eAPzWVq8gfksLd5/
- oULiHhYS97BwwPYJlSCUgVubViQAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJEMDQyOEZBNEFEMjExRTRBN0MxRDBCNzJGRUND
- MDEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMDQyOEY5NEFEMjExRTRBN0MxRDBCNzJGRUND
- MDEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkRDRkI1RDVEMTRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz59jfe3AAAEbUlEQVRIS8WTeUybZRzHF48/pnFOuQRajkFLgQFb5iRLNJr4
- l/EPgsniUI4xZDAY1zyxwApsMJyIME61rByl3DfoYGBrgbWUY06FcZSCha4rQ8jYxkqPr2/fvkv8o2Sg
- S/wkT970eb6/T5/39z7Prv8dt/Oql4mR4HZJ3ccoXFxhVCzB9DT9JueJdSq6c1wzVZFupepVzxu34XVj
- CaEDi1jX6hF8ZQoeokl4iBVwzV9YdU1XRlIl28eVo8phCdXwGltEeOUsro6psaHVwcSDh5volc4iOO8X
- 7KuVwb1hEi7J8myq9PEQO//I85oafr0KtEpUpNSETm+AwWDAvfv3YTQaybnm/t/AyO6Ga+UonJOnIijF
- 1hA9tWI2qle9RxcI+RIpmZpTIfBULhIyyqHVahHPKcN70TmYnFFCp9OhqXcc9KwW0DOHVl3YU1aUyjJu
- F1SpfhO3EM6bMMsVt+D8Zhz2HIpC4oU6bG5uIu4cD3tfTwAjIBNypQYbGxsISquBU34PaDHiVEplGXee
- SuIjVaBv3Lz7gJg8vHg4FlZvc+ATVoLipiHsD8qCXWAO7IPK8MG5FjLXKboOeoYADkldUkplGWb7vOb4
- 4BzxIXXQE/1m59WDXdgBvxPfwz6UC4eQUth/WIBDZ2qQXj+K7IYRImeE5s5fOFrcDPvPapcJzVNmmwVY
- VxWG9U09uau1tTVymPpc0iYFLew7OEUJ4BwtALfvJpl5xMrKCu6s3cUrn5YbCM1us80CrJZZVWjXr7j3
- 4CE0y8v4IrcaH+cK4Bv+DRyPl8ApphYuia3wZ3eCUzOA1PIfcVuzjHnlIgK/vgy7mHzTG+w12yzA5E53
- edYPo1c2i/X1dQTEfwvbwDQ4hhXg8OcN4P48Df+UTrgkNIAeW4Hg3Hbo9Xq0iGSgs4ls5CUhoXnObLOA
- S8pkhG/bdZzgDZJnffT3GXieLAA9XgB2/RjZjuQqMWhxfBw824H55XWyhcfy+HDNqoB1SH4Codn6G7iw
- p3d78EaVPlXX0CaZgkqlgly1gpCiK0htHCH/IL6oFcEF3ZjT3CUvXqv0DzDSS0FPq1a/8EbYS5Rqa+if
- SAJ8KoeNR7gitEsnoVQqSbGOkJmYX1ggxaY70SabwIGMUrjn8I3WIXnBRPnWu/8nDnE9Sd7cAaP/ZSES
- 6/rRKJRArpiHXC7HzekZNIukiCyrhW9mGZgXa4w2kUVnibJnzdXbxP5URzyDO4QjxGl5i9uNpMZeKP5U
- IrywAq9yCnGAOGGMonbYxpVnEPGdyR9BO/MTj8kfgXeNFPt5IngVtoF1kQ9WcTs8qgfgmNreQMS21xZL
- 0E6Ln6ef75tg8sfgXT8O77oReAkkYNXJ4PRV/4ztyfo9VPTf4xjdf9CpQKzdxxuGe6UMbhXEmc8V6mze
- r3qNivx3HGN7UmglQ6CVDMIxXwybo5UcaunJQD8te9rhyx4JrWwItlGNUut3y5+hlp4cDhFCpl14k9jq
- nR+Y1NTjIe7NlmMnWKoHsOtvjWYcKpheqFQAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERTg4QTFENEQyMjExRTRBODEyODk0M0RBMTc5
- Qjg3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERTg4QTFDNEQyMjExRTRBODEyODk0M0RBMTc5
- Qjg3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjJGOUEyRDEyMTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6wJF34AAACl0lEQVRIS62Vy08TURSH73/QhQtXVnBhxEcMiUkhbEg0hB1R
- Q1i68C8wIW5cEqMLN7ho2Ji4YiEhWq0prYUhfULbadN3obTaChobtZEUsFY9nnPS6WM6HYowyZf87j33
- nG/amaai9geOBYA+4pTxihmBE8DcTQB4J8em/9IwSQyagmrtL+z9rMFmvnhkKvtV7tcVHPz6DVsftulA
- AckdhUg8zf19eoLKAd597iMLMItewfOxUDTN/bqCH3tVSG8VWIBZ9AoJApEk9+sKvu/uQ2IjzwJkGtH8
- OrTwy3Hu77vIAnV9mgWlcgWiqRwLjAMmkOMbPbNTKnN/JJntqJGEBZ++7oKcyLLgLN4JrU8Cms2C4pcy
- BKKZumCI18temQ/8DzSLZlBmQX7nG/jCKdpgAa0driCtY5iFHuqHSjNoFtaags1iCdzBBG+QgNY2aZ0F
- mIUe6osENAtrTUEq/7kDq9PHAszU5yYoq9f1i9cUSCD5ozxDEeTsrhAoONwyxLLb8MrhYQFmZYCHsnpd
- v3hNgQROb5hnKIK29944MAThTBEWbS4WYBZ6qC/sKSy5ZJ6BGUQg8b4Bbhjod4AZXlhXWdBa10LrIVul
- AM9ggS+aa6AIMMO8ZYUO0KeyIOMtZyaQpXpNi4LFucYzMINwhbMNcMNw5oIJMMNKIA0LNg88mZuH/ssj
- dPgBMnN+cBRmny1wrRtSMMMzWCCFMg0UAeY2Fh0+GL5xG8Zu3oHXUrCj3g0WONdTbeBm21/o1N17gPtg
- 98Xh3VoS3qzKMDI22agfglnY/Uld8NDc/ZlZwAwvl4Ngun6LGh8rdfVDViNs3rguOOzq6XOD8PDpc7g2
- OkHDH7XWtYa2It66Y4eCQ8cRfpvUNa2hTUD8A6JMaBvCyTdJAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERjY3MEZENEQyMzExRTRCNDlGQUMwMzk0OTAw
- Qzc4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERjY3MEZDNEQyMzExRTRCNDlGQUMwMzk0OTAw
- Qzc4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjhGOUEyRDEyMTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6GKmpFAAAC+UlEQVRIS63T20vTYRzH8Yforj/Ei24UiSgKIygKi8oyxZQo
- cvNYeXaesmzqPGu2POd0ulSsnIdaurTSTJ3O6UxTPGya5vCQx5AuPn39RbHop7nZxQt+z3ie93e/Z4w1
- p7nsCoBt8R6yBF/UHPv+Wb0rfFFzm99CRIwEW1gnqXzxTXxRc0ydctm4OlID2sxrw6iCtiwItC+A2P/D
- frLnjwGNSZdMq6N1WOvLwFpP4l/WdRlY6Jaio9Ab7QXba8sVoDHZGdT8PYS9THDqMGnLsKpNw0qXGCua
- BO55VZdNQ6U/DRRibVCGb+N1pH5bukoRqHmDHOIG1N8/X2F4I8WyNhtf2+9hqSsZxqZ4upbb6HsSZLHO
- Im90ym6hNVcIaktYTexZyUelGEvaHMy/jcFiZxo0xX5Y7ivGcn8JkVmA9uvlWBmqwpJeAWovs+poR99O
- eRgWtQWYVUdgrj0FH+i+F3XF3NoappZYGJrEoLaOVYpOOTY/FGJB+xjTqnDMtMTTAC/Ma/Ix/TLUKl9e
- x0JfFQpql7PykBP7lWIXzPeUYLIhHCPKCLr/AMy2ZsKoDLTKdNNdvM8TgNpRTBZwfJ885CTmaIChPhwa
- mS+GnkdhqjEWY9X+VplqvIMXEhdQ24mZeuSs0N/BNNWWj4k6EdSZHhhXxWH0aSCGFd4c4Tk7zk7XBlUM
- FKLToK4Nm+0qYnneRzqGGiSYaIiiyZdhVCdgqFSIwRJPjucZW85O1pvnRmvDkO9zFNTdy2Y6HjGp4HCF
- 5kk4xhoiURd/EROv4tBfeM0qAyUC9Mp9QM0+7o829T6LZV0/mNycS6+nFKFWfAGj9ZHozfGwil7miZYH
- 7qCmghsw+S6VpV894KuUuKFbfhNNqa749CwY3dm0toK+VABl3HlQM5obYHybwFLc7W1y/Y5BlX6FfgNn
- DNcEY0DhZZX+MiGKbh0DNR24AYYWMSfJzc6GZBApwS5skIzNODcg0dV2V36FtsJ7yBJ8UXO8hyzBFzXH
- ++H/A/YDv9/V87iOlrYAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
- RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
- ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
- s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
- uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
- xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
- iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
- qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
- GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
- NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
- KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
- qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
- HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
- wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
- 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA3MTZBNTkzNEEwMjExRTRBQjdERDhBQkEzMDEx
- MzZEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA3MTZBNTkyNEEwMjExRTRBQjdERDhBQkEzMDEx
- MzZEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTgxNjM4Q0YwMTRBRTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
- 0HWhD93n++Dbua+fK9NvoTM5+Udx5mye9NjgCZNf0HEnpN5U5RbPa9+0bdfQ+0eOPzp5ppvG96JfjFkM
- nXR/vOP0ePOu/deyCuf8JVSorJny7HQdvR9MTCUm+fUYgyehazLBVCCd8ttpJbQANtO3cDjWbO9werzd
- ruK5F9Ld3p7YBEdHCE/WMi0s0jf5mefm0e+ZCsXEf85i/98XsP4NaTpxka74X+IAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBREU3RDk2NEFCMDExRTQ4OUM5QjZFOENGQzJF
- MDk1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBREU3RDk1NEFCMDExRTQ4OUM5QjZFOENGQzJF
- MDk1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEM5Mzk2NTZBRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz52g1XsAAADeUlEQVRIS62Va0hTYRiAXzVNoQs6oUCttJu3aqatrLxr2k0n
- W6bLLlLSxTKCKLoQQUg3IbLMflSgBRGRP7JSSzGnWalYdpnV1MQu1tBWWklqvr3fp2dsOytSfOFh3/l2
- eJ7tnDMGkkmzGCqigsARhPlUQqCi8nEd9v7GEYP5mFcI4K/e/hGHeQ2B7p4+1HV8Nf6Kw4a5GGxtCHzv
- 7sU2nR4lbr4/AUBFKIeD4GKYBL79+IX6rm622U8nSgnX4SC4GCaBL50/OXwTwIUY1ohcQkCn/84ZDLBP
- I5p16TBl7XYIoaXVwI54RC4h8LG9k/OvQPIOmEZUJW2F+XRoPbBrOiKXEGj9rOdYCqi2gxXhnLQNIo6f
- n9tEa7ViI79PoojIJQSaP3RwjAOJaSAjjhL3N+9zrD+W499UVJnSeeVmWDvtlcWlgCedZnK5RC4h8KZV
- x2FryQSYmrAVjh/MnP46/57yS7VmZ9+zxr1Yr92NtQ1pWFmfiBevL9QpUqE0JhHcyWuImLsMAU1zG4et
- V6yHC1l5oe+evNmD1ZoteL9OgaW1K7GkRoF3H8ZigTocb5bFY8bZWbpoFVwh7yiCR8xdhsAz7XuOh9QD
- D2R6twyIEzG/JApz88N7z+T5d+VcDezKL43Ea4UxeCjTqyNUDpUBYeBFXjvjgOAyCdS9asXDJ3NQFj3u
- 7eWCyG/FjxR45OyMr6s3S1qCYqE8RA654Uq4dOiUV/v+E9P0i1ZA9Zwg8COnA2HyDZiLYRw4dyAjC50n
- z8awBBvNbbWyZ+8x10+By+GONARCbe1gDBPJloCvfKODluQ10mD+qDK5LWFyD6pfvOUYBzydXL0v2I+V
- rI9Mhud5BQE9i+RQPt2P30BBYrM4HmYSNf5REGS0b5CzYdKq+iaOITA44wmPiLXwaFfGhDbZMkinYxNJ
- 8CpwXxgHobQcPbhv8XegrtNyzAPsOtqHJUPeml1jm/1jYDkdM5G5hB3bDL6KhknLal9xzAN8gpMgVZHm
- oKUAuwx29H420c9O/l9KHms4bC0KLFCAY6CSHr+VoHJy88lWbEjHoqoXWPzw5ZCxGKCxkslBLo22L1+6
- ahPeUj/FwgfPh8zpSzfQ0cWrwVKAjfXcWFjjPm9isWSSbx/7JEPF0cWzcYzE7dTfAmysfSLB2z0Awm1H
- 8ycnjrD4N/kX4gEg8A9sAFSe4VuPvgAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzN0Y5NjgxNEE5MDExRTRBMzU1RUM1MkVEQTU3
- REQxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzN0Y5NjgwNEE5MDExRTRBMzU1RUM1MkVEQTU3
- REQxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUU1QUVCQUI4RjRBRTQxMUI2QTlC
- RjEwMkVGQzEyNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4Oz1B+AAABO0lEQVRIS7WUP0sDQRDFt0snIcEiklhGJLH3k6bNp0ifYCUo
- KWwMIRCx0EYxEEL+IOPO4SxzczN7d7gGfuzd7Hszd9nHOQD4V9RiStRiStQi0b68GXkgwkjzcdQigU1O
- 32CC+9IjUYsENvjY7EySDHhev5skGXA3X5r8aYA3lx0wET1otYgmNMcOku+jXtMg4QJFJMb1a7uPmjUd
- rVzHDfDy9pmJaZViCe5rPq7hYpgvXjPw2hNtTqBOevk+F8L0YRGQQosyHxfSf0jUegPLZwkrNedYfi6o
- 9Y2RWP6cACPHYnf4XauQablfHYAxo6jt9sfwRGWgVvrVASKmdd7g2OoN4P5pVYhqbgCPmnPuzHPtua1C
- s9OHyeyxEFU+IJcCb2p4zj3dKjQvrsat3jD4CwNCIcEv14/fpAfcDwXsled4Tu6+AAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlGMEQ1RDBCNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
- MzBCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlGMEQ1RDBBNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
- MzBCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzFDMDRERTRENjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6zemTaAAABh0lEQVRIS7WUvUoDQRSFEwiBKPEHsRAkb+ArWIsv4CNYCSKI
- jRD8a1S0m9QhdTobG5uARZogBJSkiLASFJJChQiRcJ2z2bnMZtbxCnrhY3YO556z1aSI6F9JFP+SRBEs
- FFaUhoSopAyQKGIBi58jEuErcQSAhY/hyP5DL8Y7mQMcAcD8Phh+u2Tzk9cRAMz914G4wOd1BABzt/cm
- LvB5HQHA3On2xQU+ryMAmB8en8UFPq8jAJjvWk/iAp/XEQDM9WZHXODzOgKAudZoiwt8XkcAMN/U78Ml
- CcY7mQMcAWhz+FRc3zZFREXypwKYEiG/e+ykc1WYVRrCGUk8nGUHsyic6nKeetUK4dTESjjLDjZUlqaV
- hiS8lEsh0Z1LTFYs2FBazFFwcUzB+YE+T8bffD+i4LRIwSV0jdZaO5vhHXtRPmfFgg1n81mlIQnt/W1q
- bKyH34dz2XKUz1mxYBaFU5zJUG1tlXDu5TMcjuEsO5hF4exOpZWGtnLpWDiGs+xgFv9gxlmU+gIVyyIX
- YCSg/AAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVGNUQ0RjNENEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
- RkEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVGNUQ0RjNDNEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
- RkEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzUxNUY0MjEyRDRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz7jldwbAAAEyklEQVRIS6WWDUzUdRjHoeXWVktIc74MLREMUxBQV4RYkBmL
- SBwSoZIFCgULlOJFDJDxqkiAqGgoiIQ6jaFLB1EqUaC8iMgdL8cJB3fHwR13HO8Hh3x7fn+pwN01nM/2
- 2X77Pb/n+33+v/3/95zBbGOVnZM58QHhRKwgnp9KPXuQ2CtJ6ScOjGo0fcMjI93llVX55us3rqbUc49P
- zDLyw9auL4iw5l+IsMY//BRujcygdcg+ug83rpzCsVhf3C6+hHg/W+R++985BtU3pey1cCCpOYQhJzo9
- 8kPX1tZcDoS0Jp2jrCgWmakhOJMVA4GwBd1KNSQ9veiUdeNifjqyMsJxveD7f8+z2rPBlg0kNZ9gJjMj
- L8RqQlSegIbLX6CuYAcOBm9FHe8B2rt70SZTgNfehTphJ+paCaEYjSIJkmP24PaPnrhfsBP8okCcCbZ8
- RFLmxIuc6PTICV5Dh4IxNqSEemAA6adzwBdJ8VeDEL/XNqGkmo/iKh4HW5fWNCL7QiEqq2sw3N+Dijwf
- nPx6FUjKkpjLiU6P7MDVqL/gj8nJSY4bpbcQnZyK8EOJCI2Ox3dRcY+JjkNYTAIi4w4j7+JlKBQKjI+P
- 42qqJ9J832AGawkjTnR6ZPm/iXvn9+ARiWsnJjCu1YLeGshJQCKVolMs5hBLJOiSydAjl0OpUmFweBhj
- ZJAfuxVJ3ub6DTJ9LVCd40Pij6AZ01IRoWVGumE5dmZEM45RjRbnolwR72Wm3yDt85W4e2o3FVLnGg1G
- xsYwSvDEdxB03gEa6vJwSopOhkZHkRPhgkPbTfUbpOwwR+XxXdT9OM79EQ/lgBLNkjpsz1iMP5t/oU7H
- dIoz+oeGcTbUGVHblus3SPJYgfI0LxLSIPmaL4LyHOB5bClK6gswNDLKoUucoezvx+n9W3Dg49f0G8S5
- LUfZEU8MkpC8T43YQi8UVp3kutOFenAIvep+dClUkClVOPXNZoQ6L9NvEE3uN+PdMUBvRXevCgqVmjob
- gGpgEH1PwPZYTq7soy9bDolcgRNfOWL/ZhP9BpEfLsVvMW70kQ1C2qMgEyVnUiUoQ2CuPZTUra7rYYi6
- ZDi+910EvbdEv0GYkwlKIj+BijrL+jUKbdJO1LZWwD19EUrrr0Cu6tMpzhCKJcj40gEB9ov1G4RsWoLi
- UBe6V7r/n70RkPMOPDJMcLXqLPc0DF3ijBaRCOneG+H31kL9BkF2i3B9nzN1qoagQ4yDlzxQUE6/lHRd
- XfLeGbA9cbccwk4JHggegi8UIc3LDj7rFug3CNiwENcCt6CH3ojm9g7qqoN79HZpF9rpjjumYGu2x3I8
- 4UNU85pwv0WAox5vY7f1/xj42SxAkf/7kCmUuNfUiho+FTa3gtfaRh22o6lNxMHWbI/lKut5uFVdh7sN
- jTiybQN2rpmv18DQ1+rViUJfRwia+bjXLEB1YxNqyai+VUiditDY1sHB1myP5e408FFR34Cb5WVIdLXF
- Zxbz2DywJYw51WkxZ9eqebxUFyvk7rDHD24bkOhig4RZEM/4yAZhm1Ziq6lRG2mxscmm2owwdF72suOn
- ZkZCTzNjuJsaYdtT4vr63E4L4xcCSYv9IXiJU30i2BxlzmzkWRHsLp8GVsNqp2aygcHfZtZtYIryU78A
- AAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUzNzJDMjE3NEFENjExRTRCNjE0OEVEQzI4MEM0
- RTZDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUzNzJDMjE2NEFENjExRTRCNjE0OEVEQzI4MEM0
- RTZDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI3NUQ0QkNENDRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6PyaLfAAADMElEQVRIS6VUXUiTYRT+vi3Tzd+ps23+3KRigtiPkolEQReG
- UYTkhWatpWlWGkRdddfdSPImqUAJjSIT00oxLJIk0cR+tFSyzDJtgaMkDEPkdM7ZPvm2vS6jBx6es3Pe
- 8zzvtm+TohLS/ov+AACStLgEQuJyLRJWYK1yzh/+FgCoQrpnfM4fOGBhcUlIMkEVkma4H4i1y2kFcMD8
- wqKQZILKZqTqmlTAWrfvMjhgbv63Dwm0hLWQohn1eNEbzrlfPiTQAtZCKjP1GXdAIC+r4XD+9CGBFrDm
- RVJ1re6pZ0GyHHMvIawauYVNCFPfvvuQQAtYC6meKXU0amNsaGN/ZR60xIf9aIgN3cpGE9OzZCZ85nEm
- pGiWlLABmuJCnUOXrNB7chdct4TUo32ANDbp4NuielDpqWfePdaPX6GrohSK4uLhlCEo96YlZLbOFHzH
- oJXjMSBcGn4/zQGovEDqXXtzeTb+BTrKj0J3+Q54djYP7EZdTU2MPjFSK8eieQR9QtLg6GcOQPWgqKeQ
- ZyOfoK30CDw+lg2Ot3Z4VLoNqo269mCNHIa2WjYn9A1PcAAqU6m9VV3TF9psOwwPS3JgZugCdNoyocwU
- jU+RlImWBpezGz0vxzkA1YOiHvPFO7Ca1kGHLQtmXp2HdutmqN+/F6JiU+h3kOpyVeHJwBgHoLIpqajm
- 189HoaG4CNqsGTA1UAWth9Lg6r490PygGyLjUikgzuWqQlffCAegelDdUwLqigqhpXgjTPYeh+bCFCg2
- RkEk3vxuVz/P0c43oLP3DQegLhspNalSFxiNcLswHT48LYNbBUlQk7ebzenmyhm08w1o7xmiAP6hRZiT
- 70eYkzpctUuJWdHmwWs74+F1Uz7cyE+E4ohQB5mHm9a3GywpTXzektyKduIAIsKI3ISkL4rIdYle05C9
- VrZVBmvtl7eboUyv7V4jSQdwRn8FdI72iErtCUxnIuifkJ5hUqUOq9Jr7OeCNU6bTpNVqtMcDJSldOwn
- KnOk+jypJ5QANRWc0cs5SEelXr54QidfwVYAMoiHq4W/gNM6OaNCJ+diaUIqN/43+Atwg27t+9ZXBUn6
- A2MdqQeVc5pWAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUzQzNGNDI5NEQyQzExRTQ4QkE1QUNCMEVDRDZF
- MDVEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUzQzNGNDI4NEQyQzExRTQ4QkE1QUNCMEVDRDZF
- MDVEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI1NUY4OTYyQTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6IsaOmAAADF0lEQVQ4T62U/UuTURTH+0nICqRI1ERMMyNQe8N0ChqBwQhN
- yvwhEgJjVCqJ/qCibZo6tzQ339h6Nre5prapUzc1XzItX1ilzuWMLLVAen+xf6DTuTxjdxsFVj58ebjc
- c+7nnud7z3228DbpIaDFH/CfoqCn72DIDvNfPDM2KAqyr8PcJxqY+QBTb8kkjocXQTsKigGwfqYJHqIg
- 1OxHGHvlWPx4hXB1YyA3g4CBhqst+piEnrDA3rA95vBAY1x8d7lq/DVZwm5PQZNvoKYdypSgHgbVEIh1
- cLOZzOCbSSsyRQRba6uWtcpVLbPcwlglInNUCJNWWKqABqMLCGvGlfpJELaQ/V1Vd1lujAhe0chtUrH5
- ZExnmJ85MdomEa+qZMbIEF2BHGunILSjdZwYgTt4gJqjjj0Rltml1Zq9AeL0Mn71Wn2mtDU80MIvsFTw
- O+KPIoWC8BNYRIUaqrRQroJKjQOk9N+xLBF2pXJFKfnsDGYa8gS6xOO2whyMuoHaHpGzZ/pBM0IMrtXD
- nT4HqNHXe0lYoogMFeQP4jbSDkCPTUyXmnNoPutSo+9WN5DEQDyeWCWnhqm4p7Oimt3b54rzmmKPVHKz
- 0Xg0AU1pz87VJp+yXOfd9t3mBmLXsGrsJhSsDtF4iOWxKdpzyQNnuRW7vEUp13obFG05OVUBPtO5V1Sn
- k5q4SX8ENfWA6C7xHsP981Bb2sf38ZKd4JhSuXUJHPHhg/WJnAeZFw0Xzt/w8erRtLmBnB/CSmaC599I
- 2PYVRl+CXigu3R9SfCC0Pf1MZ1oqvqvjogX7gtRFJfb1n24g7GblfQcFP2fkBYm5anxqQcbLKgzyK/Df
- WRTkV5+RMTg84ZrgAOHo4ZIDVNdJw67CpsVLZ5gifj97Typlq2ZFQXj8LKh5EHpnaIar8N+Al5l9Y9Vs
- T7OiIAzjqaMsa6QJnBkeWvgOHdPkAuIV67PSeQpCYYZplsZ+KyyWLRyFF8D553EDbURY770J0rrYJbda
- SYE4iWb9NcgpRKDrOMAWwYP6d5BTaC52zyaAWDlAm/DweL8AX9zXukfxHsIAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
- NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjYzQTM5NEY4Mjg0OUU0MTE5NDBEQTc4ODZEQzk5
- N0NGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJGRTU5OEQ1NDlEQjExRTRBRUVDOTkyMjQ5NzEw
- REUwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJGRTU5OEQ0NDlEQjExRTRBRUVDOTkyMjQ5NzEw
- REUwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTY0MkI1RjlEQTQ5RTQxMUE0QzNB
- MjdEOTJBQzc3QkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjNBMzk0RjgyODQ5RTQxMTk0MERB
- Nzg4NkRDOTk3Q0YiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6B5sF9AAACe0lEQVRIS7WVb2jMcRzHL7UHanF/Mts5prE/1li3kAfu5Ak7
- 5IHNobBkSC2UIuGJkrrSWRvTmHQWK8U1T8jqUtYwkZpaGjV/Js6to5YwfXze39+fu/v23f36hXe9us+f
- 7/v9rd/dr3MQ0X/F4Zm3+K9QhWajNNlBFZqN0mQHS6lMdrCUyqSgimllUsy4XmOmp+QRDllQWbygjjq6
- uimZStOX8a+ixox3pXrM1JLCDAqYJmY7c669M0bff07mcLbtEl9QE8k6V6BH5ooXMsHZZX7ae+AY7W45
- SrPm19LbsSR9m/iRA2bYGefggVePzUgKBzeu9sQpmZ4QcG/WMtk7eLjv0WMz0kOz+TX6MUXvP6cFeNbD
- bz6YvQFm2Bk9PPByZO6jksLB5KvRTzTyLikIrG2ktsvXzd4g2hGjYP1ms4eHvb850qkl65LCQW/ntVs0
- 9HpMcPx0K1X4V1Ff/3NzhnphbVDsjBk8Lm/VE44s0ZJ1KS4Ie8uXUvPBE7Tn0ElCzTMqrV5BO/cfEaDG
- TD5X6PFFONLygsTF7jj1vxihyPkYNTS1iFrFxm37KHIhJmp43L7qZxzp0pJ1SeHhQGgLJQaH6fb9R1QX
- 2EB3Ek9FryLe95j8K9eLT/TB0FZcskOP1iRdkIh23aR7Ay9pzaZddKY9Jup8nIpeoXXhZlHD655b85Bj
- p2npLOmCML+dD/iTZhaX3+UvbRB1PpzeygFnSUUvatecRUMzisoOc+x0LZ3FixxYhQyK1cxyZhkTYhqY
- RgnM6hmcwVl4ljDI0KS4AC+Kmyli8Jv2MF7GNwXY4QzOwgNv5mWTL7CLpVQmO1hKZbKDpVR/1P8OcvwB
- lh7gOXXZq9sAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNDMTJDMTRENEFDOTExRTRCRDk4ODBFRTFERTlG
- MzY1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNDMTJDMTRDNEFDOTExRTRCRDk4ODBFRTFERTlG
- MzY1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjYwQjFGREZDNjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4rRYZ8AAACEElEQVRIS2MQltOlCP///x8vxqqJFIzNUGSMVRMpmCDApokU
- TBBg04SEpwHxfwJ4GtQo7ACoABfODY3N+P/773+82C88GWRJBtQ4TIBmKAyziCsa/L98/c5/37Ck/3Wt
- fVixT2ji//OXr/8XU9T/zy0kzQo1EhVgMRyEm0uqW//vP3Lqv5Cs9ml+CZVp/OLKs/nFleYgY0EZzQt7
- Dh7/n1/eCFLXBjUSFWAxXENZ1/r/g6evgK5P/l/d1IMXe4ck/L//+MV/RW2r/0IyWppQYxEAiwWT+qfN
- /7/7wHGQq84BXT9FQEq9S1Bas0VQWqMVFWu2ANWc2LbnyP/eKfNA6qdDjUUANMN9Tex8/j999eG/LzDy
- yuo7icIeQfH/n7x8/x+kV0hGOwBqNASgWbBt+frt/7cCXQRko2Cg9xfCXA5io8uv37bv//J124G+0NkF
- NJYRYjoQACWR8f97T99gxSA5oHIpECZCHTvIbDCAGgy34MaDF1ixo08k3LWO3hEY8jC9IBporBDEdCAA
- CqBYcPnOU4ow1AKQTyEA3YKz1x9RhKEWyEBMBwJ0C05cvocVl9R3o2BsakCYoAWHz9+mCBO0YP/pGzhx
- flUHGGOTg2GCFuw+cY0iTNCCHceuUIQJWUBMBYMX80uo7gQai9MCkJAoENsDcQiZGKQXZAYEYLEAlM1B
- CkCuIAeD9EKLCgYGAMLPWmGxemtkAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY2MzBBRkRDNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
- QTY5IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY2MzBBRkRCNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
- QTY5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjgwQjFGREZDNjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz6+q/BOAAABR0lEQVRIS7WVTUvDQBCGe/PoQQQP4s2jv8E/4W/rXxEFQRAp
- olCwfjRUJWK1ltJgNJh+6Toz7OCSzrIZFwce2LDzvs8hkDSMMf/K7wFmbWunCRgFTQp6RhKY+ZephSvh
- Du7hoWf3AgPT+XcteLcqcUcUlNMFYYNLuPeVXZK4IwqKckZMZgsveO/u8jNKqMiOKHgrJrWQdqsSUTDO
- Pwm7LBK6pzIYUTDMPoi8KGvB+4wVrGCfKHge5VFYwTr2iYLHQUbgWYObg6pN7BMFd/0RMczeVXAuKOim
- r1EEBVf3LwSeNbg5qPIL2skTkQ7GKjgXFJzfpFEEBa3LBwLPGtwcVPkFJ+0ekcAL08C5oOD4IokiKDg6
- uyXwrMHNQZVfcNi6Jjq9vgrOBQX7p50oQgLtT3+J1Y3tA6iSBXbwS7gL7P0RzNqvqWn8AE4SSnpUkJk6
- AAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFGMTBBQzY2NEFDQTExRTRBQTYyQjA5QjRFNjBF
- MzcyIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFGMTBBQzY1NEFDQTExRTRBQTYyQjA5QjRFNjBF
- MzcyIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0EzRTc1RjdDOTRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- 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
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg2NjBEMzE2NEFGRTExRTQ4NTY1QzE4RjMzMkM0
- NEY4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg2NjBEMzE1NEFGRTExRTQ4NTY1QzE4RjMzMkM0
- NEY4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTU5NUNEQTdGQTRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz5BZhOvAAAD9ElEQVRIS7WWe0xbZRiH95+T6DQxcc7NLfrHTBaR4NyFmDAy
- ljFwwERGpmRxxmyY6QbqgogDhqluOpFLlm6AFslGRVlXKISVS7tByzgUOF1vtLUtLVBogQ4YsLoN9ec5
- 3+xXyIiJWdrkyfed9/u979PLSdsVz6wPfyQA/Cehf3DPQsiBECHkBVj4CyGBn00E9xb+DglU4L/35xIM
- 7j78qCpAlVqAg6KNkOtqMTPnx9TcLOzjFty5u4CJWR9u++/AM+NBh7WRnM3/cX/JHCqY899fwu35u/BN
- z2HM60NcURjB7hwmNX4/PjmNWzPzZL/v3FPIEK9DQskTNOudmML0rD8oiD0d9hAutxej4z6yZ3pZaA0D
- ZO8c8dDM8d9egtSxGxetMTiri8Ih8XpS79cZ4fZOBgVu7y2YrINg9QOIPvU4QcPqyWp1DJM6vwbOUivW
- QGSMgdi8E7mqSGQqIpAoXE3OmuRtuKHRwjU6HhQMe6dgG/LA4hhBVM5KJJatJmsPa8TNARup8xm+1tnd
- R9bkc88hicsllnGrcC2p1Te1QKliYLQ6SZ4KhriLYe80oaa9Ghk/JEMkqYJS3Q0DF3a4J7D9s1V4s2QN
- Nmc+hviTLyOvIgv55SeQe/4YUgu3QlRXjbbrN6A12TDoniSzqMDh9lEszjEoGQbF4u/wa+tlmOxu2Ecm
- 0dglR86FjxEteBZx2Zsgab4KhaoH17lXJFO04nKLDCrus+L7A7OowOLyUsxODwy2EaTm78BrWU/io6KD
- YE126KxDaFDKEZ4Rhg8E+1HbKAOjNZP6TYsL0mtNaFYrUCmrAGu2YWBwLCgw2Ecf4qeGakRmPo203D1Q
- dPWjz8TdBGYX0guSIK5vgLyDQa/BDr3NTdAYrYg68iI2HliJiitV6DM6ggLWwt0p/8J9PeFMsRDnJSLE
- H38DsXEJSEhKAaOzod88hMjXt+KTz/PQ2WtCLyfl8wE2RbyKkyWFqJLUQdqu4ASvPBBojE4KH9wVtxel
- v5Tj5zopuU5MSQOjt6NG0swJtmHtCxtwrUePHsMDQaA3J/9rfJpTgDY1CwWjDwq6dHYK37BzdwJqZe3I
- E3yP9ENHsG//u+TsvcNH8dXZMryVlo4ioYjmA73ZnCA7T4BO1gqV1hp8izr6f6fwDafOlKLgdAlidsXj
- 29JKJHOCFrWOnAXga4F8gIjN21Df1k1nUYFSY6bwwUvSVjy/bgN2cILKmnokvf0O8r8pRvr7H5JMcwdL
- zvkcn1/cvxgqaGVMFL6BX6Nj9+BLQREuXLyCvSkHEB65BcXll2ju8LETyPqikOaXgwqudhlCQkAQ8p/M
- R2K5fxKLWbbp/7Dc0CBY8Q+pPmOq0VkzzQAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
- MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIxNUQ2NkYyNEQyRDExRTQ5N0NDRjdBNTBDQjc0
- MUY3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNUQ2NkYxNEQyRDExRTQ5N0NDRjdBNTBDQjc0
- MUY3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkU1NUY4OTYyQTRERTQxMUIzNkJE
- NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
- NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4lOJsMAAADqUlEQVRIS6WTf0hVdxjGj2beulPvD52aU6Np6tKBhUWsYjIH
- prDYSlZjNPsjlUnkMmSx6eJqS/u5zXGtoKKEMaEt2lpZ20RX01Bjad31A8UakdZ0SyrLJfHueU7H0zl6
- U8QXPvCe933e5/3e8z1XCY5+dVKIyJh4HZoI48bQE5kU44a3ISM45TxQCTxgQIM5a/M0m+eHN1OC4TfB
- 96mZ78reg9+I50qn3HvwSIU5a+xBcwyka3ajY3DoySgwUJ44P02O/vSz4HlMfqitk7mLlnLRNs3SHAOD
- QzoQOYF7de4Gud17V1DTuf/wP7nScUOFubF3559+4QxngUOzfhr9DwZV0AgHVZ99/oXcvf9IUNPZd6hG
- 5qS8Ic7IOb2EOWtGDWdKtuzmkj300uwVpa9/gOZTae6qqBQ8myjb4RZbeEyjJcBROt0W6rLaw4unBYYU
- 2mfMrmNvpJ4ewdFJe+Hnry7o7rvHBV+v/7hUkJtoab8qobOSZarlhfX2iLhjS5d/IBkrsvlLDmPJEvao
- GTlXsKmMS9zqApjnZWatkeu3+uSvnn9NlO2skqCwl2tt4bH7N7l26nXmzqgkFxZVUWOcIfSiZ3BU0odc
- 0Hay/px03Px7FOuKXBIUOms/zDwn6pr0OnOcsN0ZlVhEjXFmGHpCc0n9BenvZMulzlvyZ1ePiZLySsG7
- /hYn3VpYXKHXmdtnxLmx4CtqjDOEXunLs3F3sS7lwrWbCoT71hYUC3ITJxta1TsIDImOh+ZA2rL3hdjC
- Yhr8pwdlsUfNyLkceEFThxt4TWnxXFf8rTab46WEmo8+KRc8m9jwaQXed2I1Trw4IDgqx2oPK8EFb4T+
- KHsj9fSA+Rkf3ynvYUGi0tjWybv2DXBGxjsiEo7kF5XJ7xc6BHWdzdv3yOzk1/lOu3BxN5izZtRwJr+o
- VDX3s1jz4ZkCHErD+WsqiCn4xuPsEfHfvbUqV2rPtgnqOvWtV6Xm+G8qzI09ajmjmvtPy4PXQhBCT+XX
- 5ss6CD/wIl5H9SspaVLhrhbUx4QaavG1/YLZVWABPTQvRTnV5DGhNZyBITPz8cqaU1KXSeHmXXLgyGn5
- seEPFeassYfDXLTawr7EzNsgmbOax9M4cfbiKBC+IBDEYjgXn9spfKrduIPHBHkPXke9JcBZCs1KkEqt
- NsPZZ4H/gVcQPsAC+HMTwCKQAXhSwpw19qihljPm8GZuBDG8yAZCQYQGc9a8Gw+HN9OJMG54G5oIY4ei
- /A9dc78cqtG90gAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
- LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
- Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
- cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
- RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
- cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
- bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
- ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
- TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
- RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
- MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
- OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
- QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
- eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
- ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
- s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
- uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
- xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
- iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
- qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
- GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
- NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
- KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
- qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
- HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
- wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
- 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
-
-
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -4803,6 +4005,804 @@
++H/A/YDv9/V87iOlrYAAAAASUVORK5CYII=
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlDMzFEOUI4NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
+ NEI4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlDMzFEOUI3NEFBRjExRTQ4OTA5OUYwQ0QzM0Q2
+ NEI4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk5Mzk2NTZBRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz73sIMwAAADIElEQVRIS7WVa0iTYRTH56Uiysvm3TkvpLl5DRIvQYWVWl+6
+ iNEVg0yhQqloQZHkLT+Y0YdAs75IpEUhzERZoZhsRpZlS7soblotsRwoxhqWeTrnYZtv+u7NsB74cZ5z
+ zv89/z17HzYRAPxXeIv/EpFXcOyi4BvKhfehv4FvKBfeh+ayqIUDlIgBgT8whpRYoT2fhgvNVJKBQT9s
+ hB8/QZDPpnEIjEhg0J5Pw4Vm0mwygG9T06BSqQQhTUhUMoRGpyxYT7OZwfhXC6jVakFIYzNYqN5uMGKa
+ BI1GIwhpghXJaJJi13d0dEB2bj74hsWzSDlXbzfQG02g0+kEIU2wIomdovzKdVifngnFFytBeb4cLN+n
+ WaSc6hfKKqB/eHTWoHfwExgMBkFII5MnQUD4WlAWloO26wVs35MDmifPmQFFyqlO/aKKqlmDp31DYDKZ
+ BCGNTJ4IPqHx8LJvACbNUw7p6e2HuJQMNIhhBuaHj3vBYrEI0tb1BoIiE9kJ9h7Oh7EJM+g/jEJuwVlY
+ s24ri5RTnfo5BedAIoueIYPumvomuHzjzm9cq2uCq7UNUH2rEarr7kNd0yP26Y+eKoSWtk4wfpmAg7kn
+ ITY5DUorq1g8cOQEqze3aplOEhRtJoMcL1mMTixV9IgD5a/tSBVDYql8AKOBQLEJtTP08gY/jjFiktKg
+ 5FIV21Ok3NazvmR2AvrFkCAJyGYk1comZAuHDM/AyLvHThfBveZ26NOPwI59eey7LsbhFCmnOvVJ5+Ef
+ rrYZLEU8EZ85+HLwW7ZCLMVTFWdkHoLut+/hgbYHaE9XN31XNsupTrWV3jKVs+uS3cyAD0cLe331jW3Q
+ qRt0CPUlQVHDKI+fN9iGo4W90uNnyuA2vvRtWTlQgxeg/dk7FimnOvU9/CNqUe47b7ANRwt7AfjpKvAK
+ Gt18Qur35ymhRfsKKLr5hN7EyzDq7humWrrcfSfKxbz/QlwcLDck1snZJdUzYHUDmk57+K1qdXJyzsL6
+ RmQD9ZmObygXB8sVIRO6fXQB4hC6eRQppzr1XXmHclnAckFomLc1Um5dItEvhZ97MQXP9N0AAAAASUVO
+ RK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhDMTdBQjRENEFBRTExRTQ4QjQyODY0MDNBNTJE
+ NzNCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhDMTdBQjRDNEFBRTExRTQ4QjQyODY0MDNBNTJE
+ NzNCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUQyMjc4QTlBQjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4eHsDfAAAB00lEQVRIS7XVWytEURQH8HniTTNHLs0NCXNcXjTN5dH9g/gM
+ 3jx590QhFDJS0gyTGmpqaqJIMW4hzlAoOaWISS7LWifntI3ddnTGrl92e/57/We/DBsA/CvuYSHZSr0t
+ lvCGsriX/oI3lMW9lM/SwgF9SEHwizs08IX2vAyLZvZRgXJ+cQWv7yB0q96Ds86voT0vw6KZNJsK4Pnl
+ DWKxmBBlqhpDUN0UNp2n2VrB/WMOEomEEGX0ArN5o+BGfYB0Oi1EGa8cwpKw6bxRcH6lQiaTEaKMVw5q
+ rzCbNwr2z65BURQhynh8Qe0VZvNGwdZBFlRVFaKMxxfQXmE2rxc8rW3sQy6XE0puHoG7IaC9YnV9j5th
+ pbZPqOCDCrbH5uIwOD7/zWgkDkNTizAyuwQjkWWIxFNQWduqmVxI/MiPz6/A8HTUuDMTTYLkbrqhgt5S
+ T3PG4ZJ3HE7focElZx0u3yn+VQiG1ZLymmm7s74f88f42S6bl9zyJZ6d6Xckd+Mt5ieogH4xJORHHajt
+ SzvqZPSgECpHZSiA2DztuxBlad+NgnpBEbIjusiiYboKRF+kGFHegUR5ImkFv7G0eAPzWVq8gfksLd5/
+ oULiHhYS97BwwPYJlSCUgVubViQAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJEMDQyOEZBNEFEMjExRTRBN0MxRDBCNzJGRUND
+ MDEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMDQyOEY5NEFEMjExRTRBN0MxRDBCNzJGRUND
+ MDEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkRDRkI1RDVEMTRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz59jfe3AAAEbUlEQVRIS8WTeUybZRzHF48/pnFOuQRajkFLgQFb5iRLNJr4
+ l/EPgsniUI4xZDAY1zyxwApsMJyIME61rByl3DfoYGBrgbWUY06FcZSCha4rQ8jYxkqPr2/fvkv8o2Sg
+ S/wkT970eb6/T5/39z7Prv8dt/Oql4mR4HZJ3ccoXFxhVCzB9DT9JueJdSq6c1wzVZFupepVzxu34XVj
+ CaEDi1jX6hF8ZQoeokl4iBVwzV9YdU1XRlIl28eVo8phCdXwGltEeOUsro6psaHVwcSDh5volc4iOO8X
+ 7KuVwb1hEi7J8myq9PEQO//I85oafr0KtEpUpNSETm+AwWDAvfv3YTQaybnm/t/AyO6Ga+UonJOnIijF
+ 1hA9tWI2qle9RxcI+RIpmZpTIfBULhIyyqHVahHPKcN70TmYnFFCp9OhqXcc9KwW0DOHVl3YU1aUyjJu
+ F1SpfhO3EM6bMMsVt+D8Zhz2HIpC4oU6bG5uIu4cD3tfTwAjIBNypQYbGxsISquBU34PaDHiVEplGXee
+ SuIjVaBv3Lz7gJg8vHg4FlZvc+ATVoLipiHsD8qCXWAO7IPK8MG5FjLXKboOeoYADkldUkplGWb7vOb4
+ 4BzxIXXQE/1m59WDXdgBvxPfwz6UC4eQUth/WIBDZ2qQXj+K7IYRImeE5s5fOFrcDPvPapcJzVNmmwVY
+ VxWG9U09uau1tTVymPpc0iYFLew7OEUJ4BwtALfvJpl5xMrKCu6s3cUrn5YbCM1us80CrJZZVWjXr7j3
+ 4CE0y8v4IrcaH+cK4Bv+DRyPl8ApphYuia3wZ3eCUzOA1PIfcVuzjHnlIgK/vgy7mHzTG+w12yzA5E53
+ edYPo1c2i/X1dQTEfwvbwDQ4hhXg8OcN4P48Df+UTrgkNIAeW4Hg3Hbo9Xq0iGSgs4ls5CUhoXnObLOA
+ S8pkhG/bdZzgDZJnffT3GXieLAA9XgB2/RjZjuQqMWhxfBw824H55XWyhcfy+HDNqoB1SH4Codn6G7iw
+ p3d78EaVPlXX0CaZgkqlgly1gpCiK0htHCH/IL6oFcEF3ZjT3CUvXqv0DzDSS0FPq1a/8EbYS5Rqa+if
+ SAJ8KoeNR7gitEsnoVQqSbGOkJmYX1ggxaY70SabwIGMUrjn8I3WIXnBRPnWu/8nDnE9Sd7cAaP/ZSES
+ 6/rRKJRArpiHXC7HzekZNIukiCyrhW9mGZgXa4w2kUVnibJnzdXbxP5URzyDO4QjxGl5i9uNpMZeKP5U
+ IrywAq9yCnGAOGGMonbYxpVnEPGdyR9BO/MTj8kfgXeNFPt5IngVtoF1kQ9WcTs8qgfgmNreQMS21xZL
+ 0E6Ln6ef75tg8sfgXT8O77oReAkkYNXJ4PRV/4ztyfo9VPTf4xjdf9CpQKzdxxuGe6UMbhXEmc8V6mze
+ r3qNivx3HGN7UmglQ6CVDMIxXwybo5UcaunJQD8te9rhyx4JrWwItlGNUut3y5+hlp4cDhFCpl14k9jq
+ nR+Y1NTjIe7NlmMnWKoHsOtvjWYcKpheqFQAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERTg4QTFENEQyMjExRTRBODEyODk0M0RBMTc5
+ Qjg3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERTg4QTFDNEQyMjExRTRBODEyODk0M0RBMTc5
+ Qjg3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjJGOUEyRDEyMTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6wJF34AAACl0lEQVRIS62Vy08TURSH73/QhQtXVnBhxEcMiUkhbEg0hB1R
+ Q1i68C8wIW5cEqMLN7ho2Ji4YiEhWq0prYUhfULbadN3obTaChobtZEUsFY9nnPS6WM6HYowyZf87j33
+ nG/amaai9geOBYA+4pTxihmBE8DcTQB4J8em/9IwSQyagmrtL+z9rMFmvnhkKvtV7tcVHPz6DVsftulA
+ AckdhUg8zf19eoLKAd597iMLMItewfOxUDTN/bqCH3tVSG8VWIBZ9AoJApEk9+sKvu/uQ2IjzwJkGtH8
+ OrTwy3Hu77vIAnV9mgWlcgWiqRwLjAMmkOMbPbNTKnN/JJntqJGEBZ++7oKcyLLgLN4JrU8Cms2C4pcy
+ BKKZumCI18temQ/8DzSLZlBmQX7nG/jCKdpgAa0driCtY5iFHuqHSjNoFtaags1iCdzBBG+QgNY2aZ0F
+ mIUe6osENAtrTUEq/7kDq9PHAszU5yYoq9f1i9cUSCD5ozxDEeTsrhAoONwyxLLb8MrhYQFmZYCHsnpd
+ v3hNgQROb5hnKIK29944MAThTBEWbS4WYBZ6qC/sKSy5ZJ6BGUQg8b4Bbhjod4AZXlhXWdBa10LrIVul
+ AM9ggS+aa6AIMMO8ZYUO0KeyIOMtZyaQpXpNi4LFucYzMINwhbMNcMNw5oIJMMNKIA0LNg88mZuH/ssj
+ dPgBMnN+cBRmny1wrRtSMMMzWCCFMg0UAeY2Fh0+GL5xG8Zu3oHXUrCj3g0WONdTbeBm21/o1N17gPtg
+ 98Xh3VoS3qzKMDI22agfglnY/Uld8NDc/ZlZwAwvl4Ngun6LGh8rdfVDViNs3rguOOzq6XOD8PDpc7g2
+ OkHDH7XWtYa2It66Y4eCQ8cRfpvUNa2hTUD8A6JMaBvCyTdJAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERjY3MEZENEQyMzExRTRCNDlGQUMwMzk0OTAw
+ Qzc4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERjY3MEZDNEQyMzExRTRCNDlGQUMwMzk0OTAw
+ Qzc4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjhGOUEyRDEyMTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6GKmpFAAAC+UlEQVRIS63T20vTYRzH8Yforj/Ei24UiSgKIygKi8oyxZQo
+ cvNYeXaesmzqPGu2POd0ulSsnIdaurTSTJ3O6UxTPGya5vCQx5AuPn39RbHop7nZxQt+z3ie93e/Z4w1
+ p7nsCoBt8R6yBF/UHPv+Wb0rfFFzm99CRIwEW1gnqXzxTXxRc0ydctm4OlID2sxrw6iCtiwItC+A2P/D
+ frLnjwGNSZdMq6N1WOvLwFpP4l/WdRlY6Jaio9Ab7QXba8sVoDHZGdT8PYS9THDqMGnLsKpNw0qXGCua
+ BO55VZdNQ6U/DRRibVCGb+N1pH5bukoRqHmDHOIG1N8/X2F4I8WyNhtf2+9hqSsZxqZ4upbb6HsSZLHO
+ Im90ym6hNVcIaktYTexZyUelGEvaHMy/jcFiZxo0xX5Y7ivGcn8JkVmA9uvlWBmqwpJeAWovs+poR99O
+ eRgWtQWYVUdgrj0FH+i+F3XF3NoappZYGJrEoLaOVYpOOTY/FGJB+xjTqnDMtMTTAC/Ma/Ix/TLUKl9e
+ x0JfFQpql7PykBP7lWIXzPeUYLIhHCPKCLr/AMy2ZsKoDLTKdNNdvM8TgNpRTBZwfJ885CTmaIChPhwa
+ mS+GnkdhqjEWY9X+VplqvIMXEhdQ24mZeuSs0N/BNNWWj4k6EdSZHhhXxWH0aSCGFd4c4Tk7zk7XBlUM
+ FKLToK4Nm+0qYnneRzqGGiSYaIiiyZdhVCdgqFSIwRJPjucZW85O1pvnRmvDkO9zFNTdy2Y6HjGp4HCF
+ 5kk4xhoiURd/EROv4tBfeM0qAyUC9Mp9QM0+7o829T6LZV0/mNycS6+nFKFWfAGj9ZHozfGwil7miZYH
+ 7qCmghsw+S6VpV894KuUuKFbfhNNqa749CwY3dm0toK+VABl3HlQM5obYHybwFLc7W1y/Y5BlX6FfgNn
+ DNcEY0DhZZX+MiGKbh0DNR24AYYWMSfJzc6GZBApwS5skIzNODcg0dV2V36FtsJ7yBJ8UXO8hyzBFzXH
+ ++H/A/YDv9/V87iOlrYAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
+ RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
+ ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
+ s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
+ uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
+ xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
+ iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
+ qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
+ GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
+ NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
+ KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
+ qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
+ HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
+ wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
+ 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA3MTZBNTkzNEEwMjExRTRBQjdERDhBQkEzMDEx
+ MzZEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA3MTZBNTkyNEEwMjExRTRBQjdERDhBQkEzMDEx
+ MzZEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTgxNjM4Q0YwMTRBRTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ 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
+ 0HWhD93n++Dbua+fK9NvoTM5+Udx5mye9NjgCZNf0HEnpN5U5RbPa9+0bdfQ+0eOPzp5ppvG96JfjFkM
+ nXR/vOP0ePOu/deyCuf8JVSorJny7HQdvR9MTCUm+fUYgyehazLBVCCd8ttpJbQANtO3cDjWbO9werzd
+ ruK5F9Ld3p7YBEdHCE/WMi0s0jf5mefm0e+ZCsXEf85i/98XsP4NaTpxka74X+IAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBREU3RDk2NEFCMDExRTQ4OUM5QjZFOENGQzJF
+ MDk1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBREU3RDk1NEFCMDExRTQ4OUM5QjZFOENGQzJF
+ MDk1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEM5Mzk2NTZBRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz52g1XsAAADeUlEQVRIS62Va0hTYRiAXzVNoQs6oUCttJu3aqatrLxr2k0n
+ W6bLLlLSxTKCKLoQQUg3IbLMflSgBRGRP7JSSzGnWalYdpnV1MQu1tBWWklqvr3fp2dsOytSfOFh3/l2
+ eJ7tnDMGkkmzGCqigsARhPlUQqCi8nEd9v7GEYP5mFcI4K/e/hGHeQ2B7p4+1HV8Nf6Kw4a5GGxtCHzv
+ 7sU2nR4lbr4/AUBFKIeD4GKYBL79+IX6rm622U8nSgnX4SC4GCaBL50/OXwTwIUY1ohcQkCn/84ZDLBP
+ I5p16TBl7XYIoaXVwI54RC4h8LG9k/OvQPIOmEZUJW2F+XRoPbBrOiKXEGj9rOdYCqi2gxXhnLQNIo6f
+ n9tEa7ViI79PoojIJQSaP3RwjAOJaSAjjhL3N+9zrD+W499UVJnSeeVmWDvtlcWlgCedZnK5RC4h8KZV
+ x2FryQSYmrAVjh/MnP46/57yS7VmZ9+zxr1Yr92NtQ1pWFmfiBevL9QpUqE0JhHcyWuImLsMAU1zG4et
+ V6yHC1l5oe+evNmD1ZoteL9OgaW1K7GkRoF3H8ZigTocb5bFY8bZWbpoFVwh7yiCR8xdhsAz7XuOh9QD
+ D2R6twyIEzG/JApz88N7z+T5d+VcDezKL43Ea4UxeCjTqyNUDpUBYeBFXjvjgOAyCdS9asXDJ3NQFj3u
+ 7eWCyG/FjxR45OyMr6s3S1qCYqE8RA654Uq4dOiUV/v+E9P0i1ZA9Zwg8COnA2HyDZiLYRw4dyAjC50n
+ z8awBBvNbbWyZ+8x10+By+GONARCbe1gDBPJloCvfKODluQ10mD+qDK5LWFyD6pfvOUYBzydXL0v2I+V
+ rI9Mhud5BQE9i+RQPt2P30BBYrM4HmYSNf5REGS0b5CzYdKq+iaOITA44wmPiLXwaFfGhDbZMkinYxNJ
+ 8CpwXxgHobQcPbhv8XegrtNyzAPsOtqHJUPeml1jm/1jYDkdM5G5hB3bDL6KhknLal9xzAN8gpMgVZHm
+ oKUAuwx29H420c9O/l9KHms4bC0KLFCAY6CSHr+VoHJy88lWbEjHoqoXWPzw5ZCxGKCxkslBLo22L1+6
+ ahPeUj/FwgfPh8zpSzfQ0cWrwVKAjfXcWFjjPm9isWSSbx/7JEPF0cWzcYzE7dTfAmysfSLB2z0Awm1H
+ 8ycnjrD4N/kX4gEg8A9sAFSe4VuPvgAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzN0Y5NjgxNEE5MDExRTRBMzU1RUM1MkVEQTU3
+ REQxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzN0Y5NjgwNEE5MDExRTRBMzU1RUM1MkVEQTU3
+ REQxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUU1QUVCQUI4RjRBRTQxMUI2QTlC
+ RjEwMkVGQzEyNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4Oz1B+AAABO0lEQVRIS7WUP0sDQRDFt0snIcEiklhGJLH3k6bNp0ifYCUo
+ KWwMIRCx0EYxEEL+IOPO4SxzczN7d7gGfuzd7Hszd9nHOQD4V9RiStRiStQi0b68GXkgwkjzcdQigU1O
+ 32CC+9IjUYsENvjY7EySDHhev5skGXA3X5r8aYA3lx0wET1otYgmNMcOku+jXtMg4QJFJMb1a7uPmjUd
+ rVzHDfDy9pmJaZViCe5rPq7hYpgvXjPw2hNtTqBOevk+F8L0YRGQQosyHxfSf0jUegPLZwkrNedYfi6o
+ 9Y2RWP6cACPHYnf4XauQablfHYAxo6jt9sfwRGWgVvrVASKmdd7g2OoN4P5pVYhqbgCPmnPuzHPtua1C
+ s9OHyeyxEFU+IJcCb2p4zj3dKjQvrsat3jD4CwNCIcEv14/fpAfcDwXsled4Tu6+AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlGMEQ1RDBCNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
+ MzBCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlGMEQ1RDBBNEFENzExRTRBNTYzOUQ5RUQ0RTQ0
+ MzBCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzFDMDRERTRENjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6zemTaAAABh0lEQVRIS7WUvUoDQRSFEwiBKPEHsRAkb+ArWIsv4CNYCSKI
+ jRD8a1S0m9QhdTobG5uARZogBJSkiLASFJJChQiRcJ2z2bnMZtbxCnrhY3YO556z1aSI6F9JFP+SRBEs
+ FFaUhoSopAyQKGIBi58jEuErcQSAhY/hyP5DL8Y7mQMcAcD8Phh+u2Tzk9cRAMz914G4wOd1BABzt/cm
+ LvB5HQHA3On2xQU+ryMAmB8en8UFPq8jAJjvWk/iAp/XEQDM9WZHXODzOgKAudZoiwt8XkcAMN/U78Ml
+ CcY7mQMcAWhz+FRc3zZFREXypwKYEiG/e+ykc1WYVRrCGUk8nGUHsyic6nKeetUK4dTESjjLDjZUlqaV
+ hiS8lEsh0Z1LTFYs2FBazFFwcUzB+YE+T8bffD+i4LRIwSV0jdZaO5vhHXtRPmfFgg1n81mlIQnt/W1q
+ bKyH34dz2XKUz1mxYBaFU5zJUG1tlXDu5TMcjuEsO5hF4exOpZWGtnLpWDiGs+xgFv9gxlmU+gIVyyIX
+ YCSg/AAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6npMy1AAAGEUlEQVRIS7WVeVDUZRjHf7Ase8ECu+wl4LIXcqyyHC783AWW
+ 5QaRFTHkMi9SQvE+UhLzwk0BUcQSgQBBgcYDzStMSzOPcpqcmo5pmqk/+rOapqb+iG/PbzfFcSz/6pn5
+ zPN739/7fp/nvZn/3TSLjj+XJy2/RaItPCT5vaBd8m1+q2Qku1lcrcvki+iXr7fFU6ZZeOx5KDU1b7jU
+ 1Z2bVPMPWNMbRXrXkWAc+ywVLbcS8fKwFjlu8VdpW0XzSc6f8PEIPzJ19dFnU3WEJdHL9P3X9O1nkdB8
+ CQrX7i3mKn9zfqsUq29ZsPfjRBx5aMO2cTMy94gm7FuF7XyJTwDJTo5GVdHxNALVgsPd5Ceye+9g8b0f
+ UXbjB8RtH4Msd+MeXS7f6twjxbILZiy7pEHDtTBsvG7BqivTUXpsClLWCbtJNpDwBlGVH3ySIFV520eW
+ nedRcf0HVJGwbeRrOHs/h2n1CGRZDe7wND/W1hiI8sEYlJ4KRcVpJcrfVqByNBILhqLh3KeA+UXBOpL2
+ jkRZduARPGXZ/vH4pnMou/gd7INfIPn4QyQc/RSOzk9hrBtEiKPerUn1Y5PXBaDojWlwdgUjr0+G/H4Z
+ cnpCUNJrQNZ+LeLrBD/LYnixFEDAKFz7vJQ0r49dO4zikS8x8/ADxLd9jIT2B5ix/z7SX78Pw+K3EJy2
+ wq1M4rEz6sRwthgw82Ag2KNS2I5JPZ4rZx00ImGNHIZSfisFkDGhxbs5AkKLd/3kaLkDlgTjXrsNc/Md
+ mPfeQeyOD2HbcRu6yi4E2Wrd8ngeG71IBPtePWa4JUhsD0DykQAkHQqApUWCFLcGyZvDoZ/P/5oCTGXk
+ hU2MvGB7rbGmG47dd2Fa+x6iX/kAMa/eQvS2m4jaeAPspvcROb8TQexid3CcL2usFCJjnwE5nQYU9RhR
+ PGDC7D4TCrqMyDqkR9oePbRz/SZEKh8rI8vdyshyXhmzLD8DS/1VGOquwtgw7glkXH0Nhvp3kbL2GrSl
+ hyC11ril03xZfbkQKZuVsDeq4NihRtYuDbJ2auBoUsO2TQXrJiWMlWIExflWMiHOjRzfJy0bg776HCKX
+ vANd7WXol1/xeN3Si7A2XIXW1YbAxAq3UO0zPTSd1yG38bplLK//vxBrffKY4PQ1HH9aKk8jonQUUyvO
+ Qlt9HtqaCx4/tXIMyXWXMXXOAQTEv+D2zCvDhBBTCN1zCGOCZq3k+DXO1YcpRYOY4hpF2LzTCCs74/VE
+ 3IvnEVd1EhGFblBbWot6BKXWQZq64tlYa2+TuJwQM9KU5cRL35hyOxCe2w913hA0hcPQFI16KRzxEFtO
+ a1Q9htSVN5C+5S5x7x/uIm3DR7CvuomUReOImt1FU7nwEolHECImMGkJE5i46EJkejNM+X1QOPqhzBqC
+ KvskVDmnJuHKT/K4bgjKzBMItXcjJv84NOwWiKPndJK40TOCgPgaRmIur1dZ1yM6txvyWT0ITR+AImOQ
+ gg39N1ybDBJP60PorC5My3oTwQm18FdNryBxbq0EJL6AEUTYZBTkF0NGKyKdvZDb3qJOAxSIOqcP/jtp
+ JyC3D1BSvYgp6EN4aiNlP/cTEk4gFASPEUeXkWd8RaY5jcrEBkTn9UCT4Q3gzfBfRvJE9rrsfpicHSRe
+ NsFXmJeSXhTBXXY+jMjk8uArVkpExuKb6pkbYJ7L7Ria37xTUBeMeCkcncRTN0z/TyLKNYy4khNQJq2G
+ IMLBXdUWQkXwCYYR6md7IPP1k8WEC3UFDzSpG2BZeAZJtXQWFpyls3HOC50JzkdQnbFqDInLLiC2rBcq
+ 6xoSzzzP+NDVwDBaQkx4XzahNv8xZH48sVotCHeOUnnCWNJG18Q4UjddB7vlfbBbPwC7+YannLTyIrS5
+ OyHU5v3hr07poL7JBHe4Jh8bzgQROY8h46IKCAVfbi73D3PcpfoJlX0VtEVN0JXsQlj2ZoRaaynj7N/8
+ NfZLPLFmHrXnpiWSCCL8iMl32T/M6YGMq+R+covD7QADwfoIgqt4QVGtfvIZJ4lRv5CY4zypbjfjy+eE
+ M4l4gtuSwYSQ4DS4EZAew/wNiCYQJlvQU3cAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVGNUQ0RjNENEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
+ RkEzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVGNUQ0RjNDNEQyRDExRTRBQ0ZFOEVGNkU4Rjcw
+ RkEzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzUxNUY0MjEyRDRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz7jldwbAAAEyklEQVRIS6WWDUzUdRjHoeXWVktIc74MLREMUxBQV4RYkBmL
+ SBwSoZIFCgULlOJFDJDxqkiAqGgoiIQ6jaFLB1EqUaC8iMgdL8cJB3fHwR13HO8Hh3x7fn+pwN01nM/2
+ 2X77Pb/n+33+v/3/95zBbGOVnZM58QHhRKwgnp9KPXuQ2CtJ6ScOjGo0fcMjI93llVX55us3rqbUc49P
+ zDLyw9auL4iw5l+IsMY//BRujcygdcg+ug83rpzCsVhf3C6+hHg/W+R++985BtU3pey1cCCpOYQhJzo9
+ 8kPX1tZcDoS0Jp2jrCgWmakhOJMVA4GwBd1KNSQ9veiUdeNifjqyMsJxveD7f8+z2rPBlg0kNZ9gJjMj
+ L8RqQlSegIbLX6CuYAcOBm9FHe8B2rt70SZTgNfehTphJ+paCaEYjSIJkmP24PaPnrhfsBP8okCcCbZ8
+ RFLmxIuc6PTICV5Dh4IxNqSEemAA6adzwBdJ8VeDEL/XNqGkmo/iKh4HW5fWNCL7QiEqq2sw3N+Dijwf
+ nPx6FUjKkpjLiU6P7MDVqL/gj8nJSY4bpbcQnZyK8EOJCI2Ox3dRcY+JjkNYTAIi4w4j7+JlKBQKjI+P
+ 42qqJ9J832AGawkjTnR6ZPm/iXvn9+ARiWsnJjCu1YLeGshJQCKVolMs5hBLJOiSydAjl0OpUmFweBhj
+ ZJAfuxVJ3ub6DTJ9LVCd40Pij6AZ01IRoWVGumE5dmZEM45RjRbnolwR72Wm3yDt85W4e2o3FVLnGg1G
+ xsYwSvDEdxB03gEa6vJwSopOhkZHkRPhgkPbTfUbpOwwR+XxXdT9OM79EQ/lgBLNkjpsz1iMP5t/oU7H
+ dIoz+oeGcTbUGVHblus3SPJYgfI0LxLSIPmaL4LyHOB5bClK6gswNDLKoUucoezvx+n9W3Dg49f0G8S5
+ LUfZEU8MkpC8T43YQi8UVp3kutOFenAIvep+dClUkClVOPXNZoQ6L9NvEE3uN+PdMUBvRXevCgqVmjob
+ gGpgEH1PwPZYTq7soy9bDolcgRNfOWL/ZhP9BpEfLsVvMW70kQ1C2qMgEyVnUiUoQ2CuPZTUra7rYYi6
+ ZDi+910EvbdEv0GYkwlKIj+BijrL+jUKbdJO1LZWwD19EUrrr0Cu6tMpzhCKJcj40gEB9ov1G4RsWoLi
+ UBe6V7r/n70RkPMOPDJMcLXqLPc0DF3ijBaRCOneG+H31kL9BkF2i3B9nzN1qoagQ4yDlzxQUE6/lHRd
+ XfLeGbA9cbccwk4JHggegi8UIc3LDj7rFug3CNiwENcCt6CH3ojm9g7qqoN79HZpF9rpjjumYGu2x3I8
+ 4UNU85pwv0WAox5vY7f1/xj42SxAkf/7kCmUuNfUiho+FTa3gtfaRh22o6lNxMHWbI/lKut5uFVdh7sN
+ jTiybQN2rpmv18DQ1+rViUJfRwia+bjXLEB1YxNqyai+VUiditDY1sHB1myP5e408FFR34Cb5WVIdLXF
+ Zxbz2DywJYw51WkxZ9eqebxUFyvk7rDHD24bkOhig4RZEM/4yAZhm1Ziq6lRG2mxscmm2owwdF72suOn
+ ZkZCTzNjuJsaYdtT4vr63E4L4xcCSYv9IXiJU30i2BxlzmzkWRHsLp8GVsNqp2aygcHfZtZtYIryU78A
+ AAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUzNzJDMjE3NEFENjExRTRCNjE0OEVEQzI4MEM0
+ RTZDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUzNzJDMjE2NEFENjExRTRCNjE0OEVEQzI4MEM0
+ RTZDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI3NUQ0QkNENDRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6PyaLfAAADMElEQVRIS6VUXUiTYRT+vi3Tzd+ps23+3KRigtiPkolEQReG
+ UYTkhWatpWlWGkRdddfdSPImqUAJjSIT00oxLJIk0cR+tFSyzDJtgaMkDEPkdM7ZPvm2vS6jBx6es3Pe
+ 8zzvtm+TohLS/ov+AACStLgEQuJyLRJWYK1yzh/+FgCoQrpnfM4fOGBhcUlIMkEVkma4H4i1y2kFcMD8
+ wqKQZILKZqTqmlTAWrfvMjhgbv63Dwm0hLWQohn1eNEbzrlfPiTQAtZCKjP1GXdAIC+r4XD+9CGBFrDm
+ RVJ1re6pZ0GyHHMvIawauYVNCFPfvvuQQAtYC6meKXU0amNsaGN/ZR60xIf9aIgN3cpGE9OzZCZ85nEm
+ pGiWlLABmuJCnUOXrNB7chdct4TUo32ANDbp4NuielDpqWfePdaPX6GrohSK4uLhlCEo96YlZLbOFHzH
+ oJXjMSBcGn4/zQGovEDqXXtzeTb+BTrKj0J3+Q54djYP7EZdTU2MPjFSK8eieQR9QtLg6GcOQPWgqKeQ
+ ZyOfoK30CDw+lg2Ot3Z4VLoNqo269mCNHIa2WjYn9A1PcAAqU6m9VV3TF9psOwwPS3JgZugCdNoyocwU
+ jU+RlImWBpezGz0vxzkA1YOiHvPFO7Ca1kGHLQtmXp2HdutmqN+/F6JiU+h3kOpyVeHJwBgHoLIpqajm
+ 189HoaG4CNqsGTA1UAWth9Lg6r490PygGyLjUikgzuWqQlffCAegelDdUwLqigqhpXgjTPYeh+bCFCg2
+ RkEk3vxuVz/P0c43oLP3DQegLhspNalSFxiNcLswHT48LYNbBUlQk7ebzenmyhm08w1o7xmiAP6hRZiT
+ 70eYkzpctUuJWdHmwWs74+F1Uz7cyE+E4ohQB5mHm9a3GywpTXzektyKduIAIsKI3ISkL4rIdYle05C9
+ VrZVBmvtl7eboUyv7V4jSQdwRn8FdI72iErtCUxnIuifkJ5hUqUOq9Jr7OeCNU6bTpNVqtMcDJSldOwn
+ KnOk+jypJ5QANRWc0cs5SEelXr54QidfwVYAMoiHq4W/gNM6OaNCJ+diaUIqN/43+Atwg27t+9ZXBUn6
+ A2MdqQeVc5pWAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUzQzNGNDI5NEQyQzExRTQ4QkE1QUNCMEVDRDZF
+ MDVEIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUzQzNGNDI4NEQyQzExRTQ4QkE1QUNCMEVDRDZF
+ MDVEIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkI1NUY4OTYyQTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6IsaOmAAADF0lEQVQ4T62U/UuTURTH+0nICqRI1ERMMyNQe8N0ChqBwQhN
+ yvwhEgJjVCqJ/qCibZo6tzQ339h6Nre5prapUzc1XzItX1ilzuWMLLVAen+xf6DTuTxjdxsFVj58ebjc
+ c+7nnud7z3228DbpIaDFH/CfoqCn72DIDvNfPDM2KAqyr8PcJxqY+QBTb8kkjocXQTsKigGwfqYJHqIg
+ 1OxHGHvlWPx4hXB1YyA3g4CBhqst+piEnrDA3rA95vBAY1x8d7lq/DVZwm5PQZNvoKYdypSgHgbVEIh1
+ cLOZzOCbSSsyRQRba6uWtcpVLbPcwlglInNUCJNWWKqABqMLCGvGlfpJELaQ/V1Vd1lujAhe0chtUrH5
+ ZExnmJ85MdomEa+qZMbIEF2BHGunILSjdZwYgTt4gJqjjj0Rltml1Zq9AeL0Mn71Wn2mtDU80MIvsFTw
+ O+KPIoWC8BNYRIUaqrRQroJKjQOk9N+xLBF2pXJFKfnsDGYa8gS6xOO2whyMuoHaHpGzZ/pBM0IMrtXD
+ nT4HqNHXe0lYoogMFeQP4jbSDkCPTUyXmnNoPutSo+9WN5DEQDyeWCWnhqm4p7Oimt3b54rzmmKPVHKz
+ 0Xg0AU1pz87VJp+yXOfd9t3mBmLXsGrsJhSsDtF4iOWxKdpzyQNnuRW7vEUp13obFG05OVUBPtO5V1Sn
+ k5q4SX8ENfWA6C7xHsP981Bb2sf38ZKd4JhSuXUJHPHhg/WJnAeZFw0Xzt/w8erRtLmBnB/CSmaC599I
+ 2PYVRl+CXigu3R9SfCC0Pf1MZ1oqvqvjogX7gtRFJfb1n24g7GblfQcFP2fkBYm5anxqQcbLKgzyK/Df
+ WRTkV5+RMTg84ZrgAOHo4ZIDVNdJw67CpsVLZ5gifj97Typlq2ZFQXj8LKh5EHpnaIar8N+Al5l9Y9Vs
+ T7OiIAzjqaMsa6QJnBkeWvgOHdPkAuIV67PSeQpCYYZplsZ+KyyWLRyFF8D553EDbURY770J0rrYJbda
+ SYE4iWb9NcgpRKDrOMAWwYP6d5BTaC52zyaAWDlAm/DweL8AX9zXukfxHsIAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENUYwQThBNEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENUYwQTg5NEQyOTExRTQ5QzUzQzdFMkFGQkQy
+ NTA1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkRGNkEzOUYyOTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ 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
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjYzQTM5NEY4Mjg0OUU0MTE5NDBEQTc4ODZEQzk5
+ N0NGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJGRTU5OEQ1NDlEQjExRTRBRUVDOTkyMjQ5NzEw
+ REUwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJGRTU5OEQ0NDlEQjExRTRBRUVDOTkyMjQ5NzEw
+ REUwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTY0MkI1RjlEQTQ5RTQxMUE0QzNB
+ MjdEOTJBQzc3QkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjNBMzk0RjgyODQ5RTQxMTk0MERB
+ Nzg4NkRDOTk3Q0YiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6B5sF9AAACe0lEQVRIS7WVb2jMcRzHL7UHanF/Mts5prE/1li3kAfu5Ak7
+ 5IHNobBkSC2UIuGJkrrSWRvTmHQWK8U1T8jqUtYwkZpaGjV/Js6to5YwfXze39+fu/v23f36hXe9us+f
+ 7/v9rd/dr3MQ0X/F4Zm3+K9QhWajNNlBFZqN0mQHS6lMdrCUyqSgimllUsy4XmOmp+QRDllQWbygjjq6
+ uimZStOX8a+ixox3pXrM1JLCDAqYJmY7c669M0bff07mcLbtEl9QE8k6V6BH5ooXMsHZZX7ae+AY7W45
+ SrPm19LbsSR9m/iRA2bYGefggVePzUgKBzeu9sQpmZ4QcG/WMtk7eLjv0WMz0kOz+TX6MUXvP6cFeNbD
+ bz6YvQFm2Bk9PPByZO6jksLB5KvRTzTyLikIrG2ktsvXzd4g2hGjYP1ms4eHvb850qkl65LCQW/ntVs0
+ 9HpMcPx0K1X4V1Ff/3NzhnphbVDsjBk8Lm/VE44s0ZJ1KS4Ie8uXUvPBE7Tn0ElCzTMqrV5BO/cfEaDG
+ TD5X6PFFONLygsTF7jj1vxihyPkYNTS1iFrFxm37KHIhJmp43L7qZxzp0pJ1SeHhQGgLJQaH6fb9R1QX
+ 2EB3Ek9FryLe95j8K9eLT/TB0FZcskOP1iRdkIh23aR7Ay9pzaZddKY9Jup8nIpeoXXhZlHD655b85Bj
+ p2npLOmCML+dD/iTZhaX3+UvbRB1PpzeygFnSUUvatecRUMzisoOc+x0LZ3FixxYhQyK1cxyZhkTYhqY
+ RgnM6hmcwVl4ljDI0KS4AC+Kmyli8Jv2MF7GNwXY4QzOwgNv5mWTL7CLpVQmO1hKZbKDpVR/1P8OcvwB
+ lh7gOXXZq9sAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNDMTJDMTRENEFDOTExRTRCRDk4ODBFRTFERTlG
+ MzY1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNDMTJDMTRDNEFDOTExRTRCRDk4ODBFRTFERTlG
+ MzY1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjYwQjFGREZDNjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4rRYZ8AAACEElEQVRIS2MQltOlCP///x8vxqqJFIzNUGSMVRMpmCDApokU
+ TBBg04SEpwHxfwJ4GtQo7ACoABfODY3N+P/773+82C88GWRJBtQ4TIBmKAyziCsa/L98/c5/37Ck/3Wt
+ fVixT2ji//OXr/8XU9T/zy0kzQo1EhVgMRyEm0uqW//vP3Lqv5Cs9ml+CZVp/OLKs/nFleYgY0EZzQt7
+ Dh7/n1/eCFLXBjUSFWAxXENZ1/r/g6evgK5P/l/d1IMXe4ck/L//+MV/RW2r/0IyWppQYxEAiwWT+qfN
+ /7/7wHGQq84BXT9FQEq9S1Bas0VQWqMVFWu2ANWc2LbnyP/eKfNA6qdDjUUANMN9Tex8/j999eG/LzDy
+ yuo7icIeQfH/n7x8/x+kV0hGOwBqNASgWbBt+frt/7cCXQRko2Cg9xfCXA5io8uv37bv//J124G+0NkF
+ NJYRYjoQACWR8f97T99gxSA5oHIpECZCHTvIbDCAGgy34MaDF1ixo08k3LWO3hEY8jC9IBporBDEdCAA
+ CqBYcPnOU4ow1AKQTyEA3YKz1x9RhKEWyEBMBwJ0C05cvocVl9R3o2BsakCYoAWHz9+mCBO0YP/pGzhx
+ flUHGGOTg2GCFuw+cY0iTNCCHceuUIQJWUBMBYMX80uo7gQai9MCkJAoENsDcQiZGKQXZAYEYLEAlM1B
+ CkCuIAeD9EKLCgYGAMLPWmGxemtkAAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY2MzBBRkRDNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
+ QTY5IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY2MzBBRkRCNEFDOTExRTQ5Q0JEQkU0NDNBNTYy
+ QTY5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjgwQjFGREZDNjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz6+q/BOAAABR0lEQVRIS7WVTUvDQBCGe/PoQQQP4s2jv8E/4W/rXxEFQRAp
+ olCwfjRUJWK1ltJgNJh+6Toz7OCSzrIZFwce2LDzvs8hkDSMMf/K7wFmbWunCRgFTQp6RhKY+ZephSvh
+ Du7hoWf3AgPT+XcteLcqcUcUlNMFYYNLuPeVXZK4IwqKckZMZgsveO/u8jNKqMiOKHgrJrWQdqsSUTDO
+ Pwm7LBK6pzIYUTDMPoi8KGvB+4wVrGCfKHge5VFYwTr2iYLHQUbgWYObg6pN7BMFd/0RMczeVXAuKOim
+ r1EEBVf3LwSeNbg5qPIL2skTkQ7GKjgXFJzfpFEEBa3LBwLPGtwcVPkFJ+0ekcAL08C5oOD4IokiKDg6
+ uyXwrMHNQZVfcNi6Jjq9vgrOBQX7p50oQgLtT3+J1Y3tA6iSBXbwS7gL7P0RzNqvqWn8AE4SSnpUkJk6
+ AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFGMTBBQzY2NEFDQTExRTRBQTYyQjA5QjRFNjBF
+ MzcyIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFGMTBBQzY1NEFDQTExRTRBQTYyQjA5QjRFNjBF
+ MzcyIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0EzRTc1RjdDOTRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ 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
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg2NjBEMzE2NEFGRTExRTQ4NTY1QzE4RjMzMkM0
+ NEY4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg2NjBEMzE1NEFGRTExRTQ4NTY1QzE4RjMzMkM0
+ NEY4IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTU5NUNEQTdGQTRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz5BZhOvAAAD9ElEQVRIS7WWe0xbZRiH95+T6DQxcc7NLfrHTBaR4NyFmDAy
+ ljFwwERGpmRxxmyY6QbqgogDhqluOpFLlm6AFslGRVlXKISVS7tByzgUOF1vtLUtLVBogQ4YsLoN9ec5
+ 3+xXyIiJWdrkyfed9/u979PLSdsVz6wPfyQA/Cehf3DPQsiBECHkBVj4CyGBn00E9xb+DglU4L/35xIM
+ 7j78qCpAlVqAg6KNkOtqMTPnx9TcLOzjFty5u4CJWR9u++/AM+NBh7WRnM3/cX/JHCqY899fwu35u/BN
+ z2HM60NcURjB7hwmNX4/PjmNWzPzZL/v3FPIEK9DQskTNOudmML0rD8oiD0d9hAutxej4z6yZ3pZaA0D
+ ZO8c8dDM8d9egtSxGxetMTiri8Ih8XpS79cZ4fZOBgVu7y2YrINg9QOIPvU4QcPqyWp1DJM6vwbOUivW
+ QGSMgdi8E7mqSGQqIpAoXE3OmuRtuKHRwjU6HhQMe6dgG/LA4hhBVM5KJJatJmsPa8TNARup8xm+1tnd
+ R9bkc88hicsllnGrcC2p1Te1QKliYLQ6SZ4KhriLYe80oaa9Ghk/JEMkqYJS3Q0DF3a4J7D9s1V4s2QN
+ Nmc+hviTLyOvIgv55SeQe/4YUgu3QlRXjbbrN6A12TDoniSzqMDh9lEszjEoGQbF4u/wa+tlmOxu2Ecm
+ 0dglR86FjxEteBZx2Zsgab4KhaoH17lXJFO04nKLDCrus+L7A7OowOLyUsxODwy2EaTm78BrWU/io6KD
+ YE126KxDaFDKEZ4Rhg8E+1HbKAOjNZP6TYsL0mtNaFYrUCmrAGu2YWBwLCgw2Ecf4qeGakRmPo203D1Q
+ dPWjz8TdBGYX0guSIK5vgLyDQa/BDr3NTdAYrYg68iI2HliJiitV6DM6ggLWwt0p/8J9PeFMsRDnJSLE
+ H38DsXEJSEhKAaOzod88hMjXt+KTz/PQ2WtCLyfl8wE2RbyKkyWFqJLUQdqu4ASvPBBojE4KH9wVtxel
+ v5Tj5zopuU5MSQOjt6NG0swJtmHtCxtwrUePHsMDQaA3J/9rfJpTgDY1CwWjDwq6dHYK37BzdwJqZe3I
+ E3yP9ENHsG//u+TsvcNH8dXZMryVlo4ioYjmA73ZnCA7T4BO1gqV1hp8izr6f6fwDafOlKLgdAlidsXj
+ 29JKJHOCFrWOnAXga4F8gIjN21Df1k1nUYFSY6bwwUvSVjy/bgN2cILKmnokvf0O8r8pRvr7H5JMcwdL
+ zvkcn1/cvxgqaGVMFL6BX6Nj9+BLQREuXLyCvSkHEB65BcXll2ju8LETyPqikOaXgwqudhlCQkAQ8p/M
+ R2K5fxKLWbbp/7Dc0CBY8Q+pPmOq0VkzzQAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGQzkyMzc0Rjk0OUU0MTE5NjNCQjRENDMzQjlC
+ MUM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIxNUQ2NkYyNEQyRDExRTQ5N0NDRjdBNTBDQjc0
+ MUY3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNUQ2NkYxNEQyRDExRTQ5N0NDRjdBNTBDQjc0
+ MUY3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkU1NUY4OTYyQTRERTQxMUIzNkJE
+ NUVDQjU5MzE1NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkZDOTIzNzRGOTQ5RTQxMTk2M0JC
+ NEQ0MzNCOUIxQzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4lOJsMAAADqUlEQVRIS6WTf0hVdxjGj2beulPvD52aU6Np6tKBhUWsYjIH
+ prDYSlZjNPsjlUnkMmSx6eJqS/u5zXGtoKKEMaEt2lpZ20RX01Bjad31A8UakdZ0SyrLJfHueU7H0zl6
+ U8QXPvCe933e5/3e8z1XCY5+dVKIyJh4HZoI48bQE5kU44a3ISM45TxQCTxgQIM5a/M0m+eHN1OC4TfB
+ 96mZ78reg9+I50qn3HvwSIU5a+xBcwyka3ajY3DoySgwUJ44P02O/vSz4HlMfqitk7mLlnLRNs3SHAOD
+ QzoQOYF7de4Gud17V1DTuf/wP7nScUOFubF3559+4QxngUOzfhr9DwZV0AgHVZ99/oXcvf9IUNPZd6hG
+ 5qS8Ic7IOb2EOWtGDWdKtuzmkj300uwVpa9/gOZTae6qqBQ8myjb4RZbeEyjJcBROt0W6rLaw4unBYYU
+ 2mfMrmNvpJ4ewdFJe+Hnry7o7rvHBV+v/7hUkJtoab8qobOSZarlhfX2iLhjS5d/IBkrsvlLDmPJEvao
+ GTlXsKmMS9zqApjnZWatkeu3+uSvnn9NlO2skqCwl2tt4bH7N7l26nXmzqgkFxZVUWOcIfSiZ3BU0odc
+ 0Hay/px03Px7FOuKXBIUOms/zDwn6pr0OnOcsN0ZlVhEjXFmGHpCc0n9BenvZMulzlvyZ1ePiZLySsG7
+ /hYn3VpYXKHXmdtnxLmx4CtqjDOEXunLs3F3sS7lwrWbCoT71hYUC3ITJxta1TsIDImOh+ZA2rL3hdjC
+ Yhr8pwdlsUfNyLkceEFThxt4TWnxXFf8rTab46WEmo8+KRc8m9jwaQXed2I1Trw4IDgqx2oPK8EFb4T+
+ KHsj9fSA+Rkf3ynvYUGi0tjWybv2DXBGxjsiEo7kF5XJ7xc6BHWdzdv3yOzk1/lOu3BxN5izZtRwJr+o
+ VDX3s1jz4ZkCHErD+WsqiCn4xuPsEfHfvbUqV2rPtgnqOvWtV6Xm+G8qzI09ajmjmvtPy4PXQhBCT+XX
+ 5ss6CD/wIl5H9SspaVLhrhbUx4QaavG1/YLZVWABPTQvRTnV5DGhNZyBITPz8cqaU1KXSeHmXXLgyGn5
+ seEPFeassYfDXLTawr7EzNsgmbOax9M4cfbiKBC+IBDEYjgXn9spfKrduIPHBHkPXke9JcBZCs1KkEqt
+ NsPZZ4H/gVcQPsAC+HMTwCKQAXhSwpw19qihljPm8GZuBDG8yAZCQYQGc9a8Gw+HN9OJMG54G5oIY4ei
+ /A9dc78cqtG90gAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADZmlUWHRYTUw6Y29tLmFkb2Jl
+ LnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi
+ Pz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
+ cmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJE
+ RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
+ cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
+ bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
+ ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1w
+ TU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkVGN0NDMDNDRTA0QUU0MTE5NzRBQ0FBRUI0QjM1
+ RDZFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRUUzNDdFNEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRUUzNDdENEFGMTExRTQ5M0I5QzUwRjVCODdC
+ MERFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1N
+ OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkI0NEVFQkRFRjRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUY3Q0MwM0NFMDRBRTQxMTk3NEFD
+ QUFFQjRCMzVENkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
+ eHBhY2tldCBlbmQ9InIiPz4Ym8PVAAAC+UlEQVRIS6WVbUhTYRTHr5tuc073YoSmmyuwNPWLKdaHEgpL
+ ISg/VB8Ugj5oRi9C9iEDe8UKMzDKKRVIRfRCaR8Ko8xEK6PMbDInmqlroKit+YYiejrnaa47dreye+DH
+ s+f8z/M/57lw77jPV3Wi8BcAwHFtFdqlgqe4IERCe3/BGrwv1y4VIPC8CpEwJx/BGrRc1PwrAYjsTZkW
+ uh6vBPz91yaswatzal8oXp5R72k4q65FBnEPjaUasNTFgfNrGpjvxQDl0MdnE9ag/mSYF89KwnbiOvCx
+ xgj9zSkwZk2HKXsWTH7PhElbBoyZY+GHJQU+3dID1vm/yZPiUA/qjocewHWhr2kdTroZbO9SoeNBLDRd
+ iYCnpzTQdjsGRtqTofVmNGAdaFesAV30WgjXJ0K4IanSZfsnHhap3Nw/qsrFdWEQTTtr46G+dBncLVRZ
+ qvJDTBuSjdDd1QG1xWpoMUUB1oG1uwcGbHZwOCdgdm6eGtBtPOPO4ZBFopDxL48SANf5qjxl3aEseTaW
+ GDSRq2t00fFsUtQYGpxcGxUHOn0CM3ajT6z+7eyKG/uVjOv5StPrKiNU5ym78zPkO1EyIMuRMB1e/+fE
+ NIxPzQDWQu+3AcbwqAMmpmdhambOjdctru0LJpTIeMXe4IYkgzQO05GIGpHjRCb+hNSMbuI1OR/+LS7n
+ KrhLOYrs8hxFe5JeasQUTR2CSEmjA2POaTcjjkkYGnWylZ/nQ2fIm8WF3XLu/C552ZGtsjTc0sdFiUiw
+ qNI90f9TyZ3OlnElO2QFaEpTk7mUclRgG3aIgjy4E9tlXFGmLBWNFUgg7QkS++yjomANjm0L4vI2BWrI
+ HJHQniDR2j8kCtagcEsgt36VhF7zAIL2BInmXrsoWIOD6VJBSGzrGhQFa1CwUSoIia3mPg8o5w+henwq
+ wkFic3uPB0K5RXzVu+y8g8TGD1YPKOcPoXqXnXeQ+KLV4gHfTAihepedd5BY/7ZTFKwB/a3xWQwURX8q
+ 1BGxz38BvCwLsyQ3iHgAAAAASUVORK5CYII=
+
+
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
diff --git a/TreeUtils.cs b/TreeUtils.cs
new file mode 100644
index 0000000..e3c3615
--- /dev/null
+++ b/TreeUtils.cs
@@ -0,0 +1,128 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using GeoScene.Globe;
+
+namespace Cyberpipe
+{
+ public class TreeUtils
+ {
+ ///
+ /// 构造tree,最多解析三层,可放在工具类中
+ ///
+ /// 所属地球
+ /// 要加载的树
+ /// 数据来源,实测数据/施工数据/规划数据/红线数据,为空则展示全部
+ public static void initTree(GSOGlobeControl gsoGlobeControl, TreeView treeView, string viewDatasrc)
+ {
+// treeView.Nodes.Clear();
+ LayerConfig layerConfig = Utility.layerConfig;
+ List datasrcs = layerConfig.datasrcs;
+ foreach (DataSrc datasrc in datasrcs)
+ {
+ if (viewDatasrc != null && !viewDatasrc.Trim().Equals("") && !datasrc.label.Equals(viewDatasrc)) continue;
+ TreeNode rootNode = treeView.Nodes.Add(datasrc.label);
+ List layerTypes = datasrc.layertypes;
+ foreach (LayerType layerType in layerTypes)
+ {
+ TreeNode secNode = rootNode.Nodes.Add(layerType.label);
+ List layers = layerType.layers;
+ foreach (Layer layer in layers)
+ {
+ GSOLayer gsoLayer = gsoGlobeControl.Globe.Layers.GetLayerByCaption(layer.layer);
+ if (gsoLayer == null) continue;//将不存在的去除
+ TreeNode node = new TreeNode();
+ node.Tag = gsoLayer;
+ node.Text = layer.label;
+ node.Checked = gsoLayer.Visible;
+ if (gsoLayer.Visible)
+ {
+ secNode.Checked = true;
+ rootNode.Checked = true;
+ }
+ secNode.Nodes.Add(node);
+ }
+ }
+ }
+ }
+
+
+ ///
+ /// TreeNode选中状态改变,对其子节点和父节点的选中状态做相应改变
+ ///
+ ///
+ ///
+ public static void treeNodeCheckedChange(GSOGlobeControl globeControl, TreeNode node)
+ {
+ if (node.Tag != null)
+ {
+ if (node.Tag is GSOLayer)
+ {
+ GSOLayer layer = node.Tag as GSOLayer;
+ layer.Visible = node.Checked;
+ globeControl.Globe.Refresh();
+ }
+ else if (node.Tag is GSOTerrain)
+ {
+ GSOTerrain feat = node.Tag as GSOTerrain;
+ feat.Visible = node.Checked;
+ globeControl.Globe.Refresh();
+ }
+ }
+
+ CheckParentNode(node);
+ if (node.Nodes.Count > 0)
+ checkChildrenNode(globeControl, node, node.Checked);
+ }
+ ///
+ /// 树形结构中,根据parentNode的选中状态,更改其子节点的选中状态
+ ///
+ ///
+ ///
+ ///
+ public static void checkChildrenNode(GSOGlobeControl globeControl, TreeNode parentNode, bool isChecked)
+ {
+ foreach (TreeNode childNode in parentNode.Nodes)
+ {
+ childNode.Checked = isChecked;
+ if (childNode.Tag is GSOLayer)
+ {
+ GSOLayer layer = childNode.Tag as GSOLayer;
+ layer.Visible = isChecked;
+ globeControl.Globe.Refresh();
+ }
+ else if (childNode.Tag is GSOTerrain)
+ {
+ GSOTerrain feat = childNode.Tag as GSOTerrain;
+ feat.Visible = isChecked;
+ globeControl.Globe.Refresh();
+ }
+ if (childNode.Nodes.Count > 0)
+ checkChildrenNode(globeControl, childNode, isChecked);
+ }
+ }
+
+ ///
+ /// 子节点则父节点:一选则选,全不选才不选
+ /// 改变父节点的选中状态,此处为所有子节点不选中时才取消父节点选中,可以根据需要修改
+ ///
+ /// 要检查的节点,更改其父节点状态
+ public static void CheckParentNode(TreeNode curNode)
+ {
+
+ if (curNode.Parent == null) return;
+ bool bChecked = false;
+ foreach (TreeNode node in curNode.Parent.Nodes)
+ {
+ if (!node.Checked) continue;
+ bChecked = true;
+ break;
+ }
+ curNode.Parent.Checked = bChecked;
+ CheckParentNode(curNode.Parent);
+
+ }
+ }
+}