From e42c3cea5c121d38d98504bacd76c8a15ebb2b3d Mon Sep 17 00:00:00 2001 From: Rich Date: Wed, 21 May 2008 21:00:07 +0000 Subject: [PATCH] Save WindowState - Maximize, Minimize, Normal by user. Load all at once code to support print. Open Command from the Start (PROMS2010) Menu. Enter key on treeview executes Open. The Treeview was retaining focus after opening procedures or accessory documents. This was fixed. Tab Bar initialized to the full width. Items were not always being displayed after the tree was clicked. The RO and Transition Info tabs are made invisible for accessory documents. The Tags, RO and Transition tabs are made invisible when no doucment is selected. Enter the DSO Framer window when it is created. Enter the Accessory page editor or step editor when a tab is selected. Remember the last selection in a step editor page when you return. Activate one of the remaining tabs when a tab is closed. Embed the pushpin images. --- PROMS/VEPROMS User Interface/App.config | 9 +- .../Properties/Settings.Designer.cs | 14 +- .../Properties/Settings.settings | 3 + .../frmVEPROMS.Designer.cs | 11 +- PROMS/VEPROMS User Interface/frmVEPROMS.cs | 252 ++++++------- PROMS/VEPROMS User Interface/frmVEPROMS.resx | 357 +++++++++--------- .../Extension/ContentExt.cs | 49 +++ .../Extension/FormatExt.cs | 4 +- .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 322 ++++++++++++++-- .../VEPROMS.CSLA.Library/Extension/PartExt.cs | 64 +++- PROMS/Volian.Controls.Library/DSOTabPanel.cs | 32 +- .../DisplayTabControl.cs | 32 +- .../Volian.Controls.Library/DisplayTabItem.cs | 42 ++- PROMS/Volian.Controls.Library/StepItem.cs | 2 + PROMS/Volian.Controls.Library/StepPanel.cs | 14 + PROMS/Volian.Controls.Library/StepRTB.cs | 7 +- PROMS/Volian.Controls.Library/StepTabPanel.cs | 13 +- 17 files changed, 869 insertions(+), 358 deletions(-) diff --git a/PROMS/VEPROMS User Interface/App.config b/PROMS/VEPROMS User Interface/App.config index fa7e7415..35bcef4f 100644 --- a/PROMS/VEPROMS User Interface/App.config +++ b/PROMS/VEPROMS User Interface/App.config @@ -67,7 +67,11 @@ + value="http://localhost/Proms2010RemotingHost/RemotingPortal.rem"/> + + False + + Normal + True diff --git a/PROMS/VEPROMS User Interface/Properties/Settings.Designer.cs b/PROMS/VEPROMS User Interface/Properties/Settings.Designer.cs index 91a93192..c748b36f 100644 --- a/PROMS/VEPROMS User Interface/Properties/Settings.Designer.cs +++ b/PROMS/VEPROMS User Interface/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.1433 +// Runtime Version:2.0.50727.1434 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -172,6 +172,18 @@ namespace VEPROMS.Properties { } } + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState WindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["WindowState"])); + } + set { + this["WindowState"] = value; + } + } + [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("True")] diff --git a/PROMS/VEPROMS User Interface/Properties/Settings.settings b/PROMS/VEPROMS User Interface/Properties/Settings.settings index 7aa5e4eb..f929bc1b 100644 --- a/PROMS/VEPROMS User Interface/Properties/Settings.settings +++ b/PROMS/VEPROMS User Interface/Properties/Settings.settings @@ -41,6 +41,9 @@ False + + Normal + True diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs index f40b0372..e6ac7ea3 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs @@ -279,6 +279,7 @@ namespace VEPROMS this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.buttonItem1 = new DevComponents.DotNetBar.ButtonItem(); this.tc = new Volian.Controls.Library.DisplayTabControl(); + this.tmrTreeView = new System.Windows.Forms.Timer(this.components); this.ribbonControl1.SuspendLayout(); this.ribbonPanel2.SuspendLayout(); this.ribbonPanel1.SuspendLayout(); @@ -1780,6 +1781,7 @@ namespace VEPROMS this.btnOpen.Name = "btnOpen"; this.btnOpen.SubItemsExpandWidth = 24; this.btnOpen.Text = "&Open..."; + this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click); // // btnSave // @@ -2454,7 +2456,8 @@ namespace VEPROMS this.tv.Size = new System.Drawing.Size(30, 374); this.tv.TabIndex = 1; this.tv.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.tv_BeforeExpand); - this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect); + this.tv.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.tv_KeyPress); + this.tv.Click += new System.EventHandler(this.tv_Click); // // infoPanel // @@ -3189,6 +3192,11 @@ namespace VEPROMS this.tc.LinkModifyTran += new Volian.Controls.Library.StepPanelLinkEvent(this.tc_LinkModifyTran); this.tc.LinkModifyRO += new Volian.Controls.Library.StepPanelLinkEvent(this.tc_LinkModifyRO); // + // tmrTreeView + // + this.tmrTreeView.Interval = 10; + this.tmrTreeView.Tick += new System.EventHandler(this.tmrTreeView_Tick); + // // frmVEPROMS // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); @@ -3498,6 +3506,7 @@ namespace VEPROMS private DevComponents.DotNetBar.PanelEx panelAnnoEditBtns; private DevComponents.DotNetBar.ButtonX btnAnnoDetailsPushPin; private DevComponents.DotNetBar.ButtonItem buttonItem1; + private System.Windows.Forms.Timer tmrTreeView; } } diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 2e8a6eba..ff9ed8fe 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -78,8 +78,12 @@ namespace VEPROMS private void frmVEPROMS_FormClosing(object sender, FormClosingEventArgs e) { // Save the location and size of the VE-PROMS appication for this user - Settings.Default.Location = this.Location; - Settings.Default.Size = this.Size; + if (this.WindowState == FormWindowState.Normal) + { + Settings.Default.Location = this.Location; + Settings.Default.Size = this.Size; + } + Settings.Default.WindowState = this.WindowState; SaveMRU(); //Settings.Default.Save(); } @@ -96,10 +100,10 @@ namespace VEPROMS // get the saved location and size of the VE-PROMS appication for this user if (Settings.Default["Location"] != null) this.Location = Settings.Default.Location; if (Settings.Default["Size"] != null) this.Size = Settings.Default.Size; + if (Settings.Default["WindowState"] != null) this.WindowState = Settings.Default.WindowState; ShutDownRibbons(); _MyMRIList = MostRecentItemList.GetMRILst((System.Collections.Specialized.StringCollection)(Properties.Settings.Default["MRIList"])); _MyBookMarks = MostRecentItemList.GetMRILst((System.Collections.Specialized.StringCollection)(Properties.Settings.Default["BookMarks"])); - SetupMRU(); SetupBookMarks(); SetupAnnotations(); @@ -189,8 +193,8 @@ namespace VEPROMS /// VETreeNode void SetupNodes(VETreeNode node) { - if (!node.Equals(_LastTreeNode)) - { + //if (!node.Equals(_LastTreeNode)) + //{ _LastTreeNode = node; _LastFolderInfo = null; _LastFolder = null; @@ -198,8 +202,8 @@ namespace VEPROMS _LastProcedure = null; _LastSection = null; _LastStep = null; - //epAnnotations.Expanded = false; - //rtxbComment.Text = ""; + epAnnotations.Expanded = false; + rtxbComment.Text = ""; epAnnotations.TitleStyle.BackColor1.Color = _CommentTitleBckColor; if (_MyMRIList.Add(node.VEObject) != null) SetupMRU(); @@ -260,8 +264,24 @@ namespace VEPROMS //default: //break; //} - setupRibbonTabs(node); + SetCaption((VETreeNode)node); + //} + } + + private void SetCaption(VETreeNode tn) + { + StringBuilder caption = new StringBuilder(); + string sep = string.Empty; + while (tn != null) + { + if (tn.VEObject.GetType() == typeof(FolderInfo) || tn.VEObject.GetType() == typeof(DocVersionInfo)) + { + caption.Append(sep + tn.Text); + sep = " - "; + } + tn = (VETreeNode)tn.Parent; } + this.Text = caption.ToString(); } bool tv_NodeDelete(object sender, Volian.Controls.Library.vlnTreeEventArgs args) @@ -277,7 +297,7 @@ namespace VEPROMS if (_LastFolderInfo != null) { DialogResult result = MessageBox.Show("Are you sure you want to delete " + _LastFolderInfo.Name, "Verify Folder Delete", - MessageBoxButtons.YesNo, MessageBoxIcon.Question); + MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { Folder.Delete(_LastFolderInfo.FolderID); @@ -355,12 +375,40 @@ namespace VEPROMS } } } - private void SaveIfChanged2(Item tmp) { SaveIfChanged(tmp); } - + /// + /// When the treeview is clicked - a timer is set + /// This is done because the focus is returned to the treeview after the click event + /// + /// + /// + private void tv_Click(object sender, EventArgs e) + { + tmrTreeView.Enabled = true; + } + /// + /// This event is fired from the timer after the treeview click event completes + /// + /// + /// + private void tmrTreeView_Tick(object sender, EventArgs e) + { + tmrTreeView.Enabled = false; // Timer has now fired + SaveIfChanged(); + VETreeNode tn = tv.SelectedNode as VETreeNode; + if (tn != null) SetupNodes(tn); + } + private void tv_KeyPress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == '\r') + { + tv_Click(sender, new EventArgs()); + e.Handled = true; + } + } private void tv_BeforeExpand(object sender, TreeViewCancelEventArgs e) { VETreeNode tn = ((VETreeNode)e.Node); @@ -371,35 +419,11 @@ namespace VEPROMS tn.LoadChildren(true); } - private void tv_AfterSelect(object sender, TreeViewEventArgs e) - { - string caption = null; - SaveIfChanged(); - SetupNodes((VETreeNode)e.Node); -// this.Text = "VE-PROMS - " + e.Node.Text; // build and display window caption - caption = ""; - VETreeNode tn = (VETreeNode)e.Node; - while (tn != null) - { - if (tn.VEObject.GetType() == typeof(FolderInfo) || tn.VEObject.GetType() == typeof(DocVersionInfo)) - { - if (caption.Equals("")) - caption = tn.Text; - else - caption = tn.Text + " - " + caption; - } - tn = (VETreeNode)tn.Parent; - } - this.Text = caption; - } - void tv_NodeProperties(object sender, Volian.Controls.Library.vlnTreeEventArgs args) { DisplayProperties(); } - #endregion - #region Property Page and Grid /// @@ -438,7 +462,7 @@ namespace VEPROMS /// private static Color cGetColor(string strColor) { - // This was copied from frmFolderProperties.CS + // This was copied from frmFolderProperties.CS Color rtnColor; if (strColor == null || strColor.Equals("")) rtnColor = Color.White; @@ -566,7 +590,6 @@ namespace VEPROMS } #endregion - #region Table Insert Sample Code private void btnInsTable_Click(object sender, EventArgs e) { @@ -597,7 +620,6 @@ namespace VEPROMS //} } #endregion - #region Edit/View Modes /// /// Edit Mode button on the bottom tool bar @@ -640,7 +662,6 @@ namespace VEPROMS } #endregion - #region Multi User /// @@ -666,7 +687,6 @@ namespace VEPROMS } #endregion - #region Progress Bar /// @@ -725,14 +745,14 @@ namespace VEPROMS public string ProgBarText { get { return bottomProgBar.Text; } - set { + set + { bottomProgBar.TextVisible = true; - bottomProgBar.Text = value; + bottomProgBar.Text = value; } } #endregion - #region Views: Procedure Background Deviation /// /// Procedure Step View button on the bottom tool bar @@ -764,7 +784,6 @@ namespace VEPROMS btnViewTypes.Text = btnViewDev.Text; } #endregion - #region Bookmarks /// @@ -826,15 +845,15 @@ namespace VEPROMS { _MyBookMarks.RemoveAt(lbxBookMarks.SelectedIndex); RefreshBookMarkData(); - // lbxBookMarks.Items.RemoveAt(lbxBookMarks.SelectedIndex); - // if (lbxBookMarks.Items.Count == 0) - // { - // //lbxBookMarks.Enabled = false; - // btnPrevPos.Enabled = false; - // btnClrBookMrks.Enabled = (lbxBookMarks.Items.Count > 0); - // //btnRmvCurBookMrk.Enabled = (lbxBookMarks.SelectedIndex >= 0); - // _PrevBookMark = null; - // } + // lbxBookMarks.Items.RemoveAt(lbxBookMarks.SelectedIndex); + // if (lbxBookMarks.Items.Count == 0) + // { + // //lbxBookMarks.Enabled = false; + // btnPrevPos.Enabled = false; + // btnClrBookMrks.Enabled = (lbxBookMarks.Items.Count > 0); + // //btnRmvCurBookMrk.Enabled = (lbxBookMarks.SelectedIndex >= 0); + // _PrevBookMark = null; + // } } /// @@ -867,7 +886,6 @@ namespace VEPROMS } #endregion - #region DisplayPanel /// @@ -940,7 +958,6 @@ namespace VEPROMS // } //} #endregion - #region Font /// @@ -973,7 +990,6 @@ namespace VEPROMS btnUline.Checked = !btnUline.Checked; } #endregion - #region Find/Replace and Search /// @@ -1002,7 +1018,6 @@ namespace VEPROMS } #endregion - #region Similar Steps /// @@ -1019,7 +1034,6 @@ namespace VEPROMS } #endregion - #region Help/About /// @@ -1049,54 +1063,38 @@ namespace VEPROMS #endregion #region Ribbon - /// - /// Hide and Unhide ribbon tabs based on the type of tree node selected + /// This Opens the treeView or opens the selected item in the TreeView /// - /// - private void setupRibbonTabs(VETreeNode node) + /// + /// + private void btnOpen_Click(object sender, EventArgs e) { - //switch (node.VEObject.GetType().Name) // Change to else if & typeof - //{ - // case "FolderInfo": - // rtabEdit.Visible = false; - // rtabTools.Visible = false; - // rbnPrint.Visible = false; - // ribbonControl1.SelectedRibbonTabItem = rtabHome; - // break; - // case "DocVersionInfo": - // rtabEdit.Visible = false; - // rtabTools.Visible = false; - // rbnPrint.Visible = false; - // ribbonControl1.SelectedRibbonTabItem = rtabHome; - // break; - // case "ProcedureInfo": - // rtabEdit.Visible = true; - // rtabTools.Visible = true; - // rbnPrint.Visible = true; - // ribbonControl1.SelectedRibbonTabItem = rtabEdit; - // break; - // case "SectionInfo": - // rtabEdit.Visible = true; - // rtabTools.Visible = true; - // rbnPrint.Visible = true; - // ribbonControl1.SelectedRibbonTabItem = rtabEdit; - // break; - // case "StepInfo": - // rtabEdit.Visible = true; - // rtabTools.Visible = true; - // rbnPrint.Visible = true; - // ribbonControl1.SelectedRibbonTabItem = rtabEdit; - // break; - // default: - // rtabEdit.Visible = false; - // rtabTools.Visible = false; - // rbnPrint.Visible = false; - // ribbonControl1.SelectedRibbonTabItem = rtabHome; - // break; - //} + if (!expandablePanel2.Expanded) // If panel not expanded - expand it. + { + expandablePanel2.Expanded = true; + if(tv.Nodes.Count > 0)tv.SelectedNode = tv.Nodes[0]; + tv.Focus(); + } + else + { + VETreeNode tn = (VETreeNode)(tv.SelectedNode); + if (tn != null) + { + if (tn.VEObject.GetType() == typeof(FolderInfo) || tn.VEObject.GetType() == typeof(DocVersionInfo)) + { + if (tn.Nodes.Count > 0) + { + tn.Expand(); + tv.SelectedNode = tn.Nodes[0]; + tv.Focus(); + } + } + else + SetupNodes(tn); + } + } } - /// /// Options button on the dialog that appears when the V icon is clicked (top left of application window) /// note that the "V icon" is also called the Office 2007 Start Button @@ -1152,10 +1150,10 @@ namespace VEPROMS displayTransition.CurTrans = null; } #endregion -private AnnotationInfoList _Annotations; + private AnnotationInfoList _Annotations; private ItemInfo _CurrentItem = null; - private void tc_ItemSelectedChanged(object sender,ItemSelectedChangedEventArgs args) + private void tc_ItemSelectedChanged(object sender, ItemSelectedChangedEventArgs args) { //CurrentAnnotation = null; if (args == null) @@ -1165,28 +1163,22 @@ private AnnotationInfoList _Annotations; _Annotations = null; itemAnnotationsBindingSource.DataSource = _Annotations; AnnotationPanelView(); + infotabRO.Visible = infotabTransition.Visible = infotabTags.Visible = false; return; } if (_CurrentItem != args.MyItemInfo) _CurrentItem = args.MyItemInfo; //tc.SelectedDisplayTabItem.MyItemInfo; - vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}",_CurrentItem); + //vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}", _CurrentItem); if (args.MyStepItem == null) { - //itemAnnotationsBindingSource.DataSource = null; - //_Annotations = null; - //UpdateAnnotationGrid(); - //_CurrentItem = args.MyItemInfo; //tc.SelectedDisplayTabItem.MyItemInfo; + infotabRO.Visible = infotabTransition.Visible = false; + infotabTags.Visible = true; //vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}", _CurrentItem); } else { - //_CurrentItem = args.MyItemInfo; //vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}", _CurrentItem); - //UpdateAnnotationGrid(); - //StepTabPanel dtp = ((DisplayTabItem)tc.SelectedDisplayTabItem).MyStepTabPanel; - //if (dtp == null) return; - //displayTransition.MyRTB = dtp.MyStepPanel.SelectedStepRTB; - //displayRO.MyRTB = dtp.MyStepPanel.SelectedStepItem.MyStepRTB; + infotabRO.Visible = infotabTransition.Visible = infotabTags.Visible = true; displayTransition.MyRTB = args.MyStepItem.MyStepRTB; displayRO.MyRTB = args.MyStepItem.MyStepRTB; } @@ -1229,7 +1221,7 @@ private AnnotationInfoList _Annotations; } } } - Console.WriteLine("Row = {0}",row); + //Console.WriteLine("Row = {0}", row); c1AnnotationGrid.Select(row, 0, true); } //private void ShowItemAnnotations(string title) @@ -1238,13 +1230,13 @@ private AnnotationInfoList _Annotations; //} //private void itemAnnotationsBindingSource_DataSourceChanged(object sender, EventArgs e) //{ - //_LoadingGrid = true; - //Console.WriteLine("itemAnnotationsBindingSource_DataSourceChanged 1"); - //AnnotationInfoList myAnnotations = itemAnnotationsBindingSource.DataSource as AnnotationInfoList; - //Console.WriteLine("itemAnnotationsBindingSource_DataSourceChanged 2"); - //AnnotationPannelView(_Annotations); - //Console.WriteLine("itemAnnotationsBindingSource_DataSourceChanged 3"); - //_LoadingGrid = false; + //_LoadingGrid = true; + //Console.WriteLine("itemAnnotationsBindingSource_DataSourceChanged 1"); + //AnnotationInfoList myAnnotations = itemAnnotationsBindingSource.DataSource as AnnotationInfoList; + //Console.WriteLine("itemAnnotationsBindingSource_DataSourceChanged 2"); + //AnnotationPannelView(_Annotations); + //Console.WriteLine("itemAnnotationsBindingSource_DataSourceChanged 3"); + //_LoadingGrid = false; //} private void AnnotationPanelView() { @@ -1274,7 +1266,7 @@ private AnnotationInfoList _Annotations; if (_CurrentAnnotation == null && value == null) return; // No Change if (_CurrentAnnotation != null && value != null) if (_CurrentAnnotation.AnnotationID == value.AnnotationID) return; // No Change - vlnStackTrace.ShowStack("CurrentAnnotation = '{0}' Old = '{1}'", value, _CurrentAnnotation); + //vlnStackTrace.ShowStack("CurrentAnnotation = '{0}' Old = '{1}'", value, _CurrentAnnotation); if (_CurrentAnnotation != null || _AddingAnnotation) { //if (_CurrentAnnotation.TypeID != (int)cbGridAnnoType.SelectedValue) SaveAnnotation(); @@ -1331,7 +1323,7 @@ private AnnotationInfoList _Annotations; private void btnSave_Click(object sender, EventArgs e) { - + } private void tc_LinkActiveChanged(object sender, StepPanelLinkEventArgs args) { @@ -1398,7 +1390,7 @@ private AnnotationInfoList _Annotations; _LoadingList = false; } - private int LastResultsMouseOverIndex=-1; + private int LastResultsMouseOverIndex = -1; void lbResults_MouseMove(object sender, MouseEventArgs e) { int ResultsMouseOverIndex = lbResults.IndexFromPoint(e.Location); @@ -1517,12 +1509,12 @@ private AnnotationInfoList _Annotations; private bool AnnotationDirty { get { return _AnnotationDirty; } - set + set { - btnRemoveAnnotation.Enabled = btnAddAnnotation.Enabled = !value; + btnRemoveAnnotation.Enabled = btnAddAnnotation.Enabled = !value; btnSaveAnnotation.Enabled = btnCancelAnnoation.Enabled = value; _AddingAnnotation = value && (CurrentAnnotation == null); - _AnnotationDirty = value; + _AnnotationDirty = value; } } @@ -1587,7 +1579,5 @@ private AnnotationInfoList _Annotations; } } - - } } diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.resx b/PROMS/VEPROMS User Interface/frmVEPROMS.resx index 60789d6b..7886f2c5 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.resx +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.resx @@ -122,10 +122,10 @@ Qk1mAQAAAAAAAHYAAAAoAAAAFAAAABQAAAABAAQAAAAAAAAAAAB0EgAAdBIAABAAAAAQAAAAAAAA/wAA gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+AgID/AAD//wD/AP8A/////wAA//8A/////wD//////3d3 - d3d3d3d3d3eAP3d3d3d3d3d3d3eAP3d3d3d3d3d3d3eAP3d3d3R3d3d3d3eAP3d3d0RHd3d3d3eAP3d3 - dERHd3d3d3eAP3d3REdEd3d3d3eAP3d0RHd0R3d3d3eAP3d3R3d3R3d3d3eAP3d3d3d3dHd3d3eAP3d3 - d3d3d0d3d3eAP3d3d3d3d3R3d3eAP3dwcHAHdwBHd3eAP3dwcHBwcHd0d3eAP3dwAHAHcHd3R3eAP3dw - cHBwcHd3d3eAP3d3B3AHdwB3d3eAP3d3d3d3d3d3d3eAP3d3d3d3d3d3d3eAP3d3d3d3d3d3d3eAPw== + d3d3d3d3d3cBAXd3d3d3d3d3d3cBAXd3d3d3d3d3d3cBAXd3d3R3d3d3d3cBAXd3d0RHd3d3d3cBAXd3 + dERHd3d3d3cBAXd3REdEd3d3d3cBAXd0RHd0R3d3d3cBAXd3R3d3R3d3d3cBAXd3d3d3dHd3d3cBAXd3 + d3d3d0d3d3cBAXd3d3d3d3R3d3cBAXdwcHAHdwBHd3cBAXdwcHBwcHd0d3cBAXdwAHAHcHd3R3cBAXdw + cHBwcHd3d3cBAXd3B3AHdwB3d3cBAXd3d3d3d3d3d3cBAXd3d3d3d3d3d3cBAXd3d3d3d3d3d3cBAQ== @@ -134,8 +134,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAApdJREFUOE+Nkt9PUnEYxukv6K6L5uZF3nTTbOuiuumiKy8Sy7W5tdZF6DDMtMylSWUz + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAApdJREFUOE+Nkt9PUnEYxukv6K6L5uZF3nTTbOuiuumiKy8Sy7W5tdZF6DDMtMylSWUz ZoVmuJjMBMTI9My0peVmDX+loagF/QJU8HcCogI7Bzic8/Q9HLZu3PC7vfvuvXg/z/M+ew8AkKR77r6j tkMZh0MHM09mzI93ZWWdPrdIB1yONfdiTCIA0lXcKTV7B48Du2qsjBaQvwmeD8cQsef0pR1Own3VLoS1 ADuJ8FoP+ccg9FvOmvTqAsDZnckvWfIR+dsLDjug/f0Q+tWhE/sDEAd3sdtMIWqhCIQiTijSg/Or9gdg @@ -152,8 +152,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAjlJREFUOE/Nk11IU2EYx2dgH6AQUthFUIFYBoW7SBkz7CIsFznCbLIuRg28cRdT2rR2 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAjlJREFUOE/Nk11IU2EYx2dgH6AQUthFUIFYBoW7SBkz7CIsFznCbLIuRg28cRdT2rR2 2rqYO5xtacelQdEcs6LS0gbLJskQR4UxkEFRgS1X2XChk8qatv6975HNZXYR3XTg4eV9Pn7P/3k4bxYA 0T99FJAya9dwuIHzTJXUtI4v8/tX8gvNMxOlSkfP7OcEcsS6yEYJs4rG6Jnpz8z/BUC6+8/wA5DXX0Wx 3IadMkuMJvDXA1jJnwKlFZg6B/EtsYB7I6+h40ewbX8L1u7WZ6X8nkAYrHsMBRUWUrs0tgBobvPmmTp8 @@ -168,8 +168,8 @@ iVBORw0KGgoAAAANSUhEUgAAALQAAABfCAYAAABBTu1zAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAQPxJREFUeF7tfWd0XMeVpnbO7v7dM//mnDm7O95Z7+6ZHY+tLFkjyZIlihKVbMuSSOVo + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAQPxJREFUeF7tfWd0XMeVpnbO7v7dM//mnDm7O95Z7+6ZHY+tLFkjyZIlihKVbMuSSOVo WyIlihHMIEgQAEHkDBAgkTORiJwz0Mg5dCPnHAhmSd9+t1432ARBSk0CS1MGzrl4r9+reOur+25V3br1 HxJT0vpsrA//l//4n/7zfX/3d39339rfGgfuNQ4AuO+77769b++uP8/dt/GdDxYef3Idnn3+NTxDenbd 6/jNc6/i6d++QnoZTz2zAU89u0Hda8+M9Kz8XvJs6XsVhuEZX0vDLP516SzzfLmwa8+W5+HfOF9+w/r/ @@ -452,8 +452,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAoJJREFUOE99kd1LU2Ecx0939Rd022UXQdBFXZVdh10FERRBipXD1CRDS8tmRbhM09LE + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAoJJREFUOE99kd1LU2Ecx0939Rd022UXQdBFXZVdh10FERRBipXD1CRDS8tmRbhM09LE WavUaCnpsqzhnNPlKvNlrFm+pem0Njdtup3nnPOc7dtznmGQbB34cODh+b78fs8WAMLmr981TtjZVjWm CgpNIMtUoCrlf1mhgqrGpZyM9G2CZrCZgY/jMjuD+6sPQ545vB+eht31DW/7v+BVzyi6bG7UmboID09m 4Bj0UgZsTje6e4dhsX6C2eJES7sdTc/eof7xa9QYLVpIcgNzpw2qGuNQqkJRKIdIMkQi4Xc4ghJ9lVZS @@ -488,8 +488,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAIdJREFUOE/tlOsKgDAIhRf0/q9sKiqmC4skCtpwTH98O17YAgCjdRGw01phnG2nuoeA + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAIdJREFUOE/tlOsKgDAIhRf0/q9sKiqmC4skCtpwTH98O17YAgCjdRGw01phnG2nuoeA A2uKGxcdpcUMc8oCgxWxaATlO23vayw0NQEZICoNoL5/TGMV0GBeUSiDKab4D5x2WeuoY5N87fCVGvoZ PALyRJxtiqmTefRzuVNeAm/+Pl/8HN6W8gYgJNCzhmmGgQAAAABJRU5ErkJggg== @@ -497,8 +497,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAKdJREFUOE/NlIsOgCAIRW32/79M4oRAiUFzrZxblh4vzwMAytYHgTxLe0+MJgRqrWre + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAKdJREFUOE/NlIsOgCAIRW32/79M4oRAiUFzrZxblh4vzwMAytYHgTxLe0+MJgRqrWre MAQnBsL6fikIrX2rMA882+1yopqxRlgeKADKFQ3KsLTJpFD6djewq8OLaHhBId+wjwyFKSDd+gRU3yMK pfOtw6wuavJ3QIqsFfVMpcgEVrkn0ygMHKqWAM3VEwYOFarMrObxC6Db1lyF08+510XWS4OMHPL2XD36 anow/cNbAAAAAElFTkSuQmCC @@ -507,8 +507,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAH9JREFUOE/NlIEKwCAIRDfY//+y81xuDa1RSauQiuhxXtZORFtoAzAyQmGSraeOLYAP + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAH9JREFUOE/NlIEKwCAIRDfY//+y81xuDa1RSauQiuhxXtZORFtoAzAyQmGSraeOLYAP 1ShlNQfIruKeRCEdvEKg6xxjwXt/4zr+QNP6Be0BQtGtVKGqshdooBFA19NlFIZ6aGB56bSmbOowr0GA W4Bfz04K/lfgyHc25/taSuEJla3I41YVDssAAAAASUVORK5CYII= @@ -516,8 +516,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAHpJREFUOE/llOEKgDAIhBf0/q9snVjouj+m9aM2hLHBx506FxEZrQvAzmiFqVumbk8B + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAHpJREFUOE/llOEKgDAIhBf0/q9snVjouj+m9aM2hLHBx506FxEZrQvAzmiFqVumbk8B 8gDtQ1YLnG2f78QdV6g8g07AcP8tIPIV7LE0ZCw/AvRQWvmsQgr0Vb8DDNZdL2pPpoGm5tKTh8o0cP4Z ZYU/AhZm5DvzsDLBN+52u9zoVlmTAAAAAElFTkSuQmCC @@ -525,8 +525,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAHNJREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9NAYJiCAgIMQWxsGJdDsLoQlyHI4lQx + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAHNJREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9NAYJiCAgIMQWxsGJdDsLoQlyHI4lQx 8D8LwsUkGQj2LFAzsgHgYICKgeVxpA7sEqMGwmJ3kIUhNGJQ0h4olmGQ5FjGklOQjCMx2VBQAtGncKCk BBr8LgQAn2/gt5b9HCMAAAAASUVORK5CYII= @@ -534,8 +534,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAH9JREFUOE9j/P//PwNVAchAdAy0AGQLSAYrhMtj0ztqIDg84WHEAgxDEAZBGBtIkx+G + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAH9JREFUOE9j/P//PwNVAchAdAy0AGQLSAYrhMtj0ztqIDg84WHEAgxDEAZBGBtIkx+G MMNgUQM1dNRAlHSMkagxIgU5aVMahhi5BSmGwXKk5hRYbOKiSTYQlPbQDQOlSfKTDY7CAV5kkOpl5NyB wQZZRrKBVHfhoDUQW9gQKwYA3Mt2Kr495a0AAAAASUVORK5CYII= @@ -543,8 +543,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAIdJREFUOE/tlNEKgDAIRRf0/79szsjUaTEnPbVhEMLl6HVuANBKTxesjFIxqtala0iN + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAIdJREFUOE/tlNEKgDAIRRf0/79szsjUaTEnPbVhEMLl6HVuANBKTxesjFIxqtala0iN F0//qDgzcVW+4O6LXeKA+ahNbkJSMZEhTgkSibyC/BdkLx5NsT1kl2fHxpu/wfnghb2OTclgq9L04Nx/ GULqYRQpwYgua4p5J1p+hnBlP360Dxe2+AE5U7i7XUfchAAAAABJRU5ErkJggg== @@ -552,8 +552,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAH9JREFUOE/dVAEKgDAIXND/v2y6crjQQXpEtGFRsuPcnW5E1KBLAJEBBevVuuwas+bN + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAH9JREFUOE/dVAEKgDAIXND/v2y6crjQQXpEtGFRsuPcnW5E1KBLAJEBBevVuuwas+bN Sx5TnJm4qhDQA9N/JUDa+biEYdy/g7t3E4OJAdNSR+6fgEthMiXDAa3CHxVF3KfWud4p20wm1lazxoa3 3tNOuQtg1c4Nh8KMfGkeFhgeIIeryKLL0A0AAAAASUVORK5CYII= @@ -561,8 +561,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAH5JREFUOE/dlIEKwCAIRBvs/3/ZeW6JgZErGdsKC4RedyZtRFRSB4CZkQoTt5nqHgQW + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAH5JREFUOE/dlIEKwCAIRBvs/3/ZeW6JgZErGdsKC4RedyZtRFRSB4CZkQoTt5nqHgQW ritPHli64bnzLQdguCgMtKpoP9VaxZpzOsRVWIFy0AAbKK74IRC2qu1r13LMWJaX1Cdp20jy0RqOelBV 3wH2oFZxXOHCD/TVz+FNlg+KLdeMaYotpAAAAABJRU5ErkJggg== @@ -570,8 +570,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAItJREFUOE/dlEEOgDAIBGvi/7+MLgaFBg4U0oM2aC9OBko5iGi0PgB2RiuMs3XtBpcB + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAItJREFUOE/dlEEOgDAIBGvi/7+MLgaFBg4U0oM2aC9OBko5iGi0PgB2RiuMs3XtBpcB LzfunEKRfUA6P0vseeErEdQ+NBSATttAO4CAlwzFDmbGFGlnDV+Y1E9B2TIDNDAF1KZ/Bc69p3tzpYbc Jk9L8zInnQHOP893On3KnpHuyfxwKMzITfOwYHgBIcyz3GpBxx0AAAAASUVORK5CYII= @@ -579,8 +579,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAG5JREFUOE/VVFsKACAIK+j+VzYnFEQvsBVkGNTH2qYZRSRQA4DMpIKZWia7x4BJvdXU + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAG5JREFUOE/VVFsKACAIK+j+VzYnFEQvsBVkGNTH2qYZRSRQA4DMpIKZWia7x4BJvdXU wNbkStVU8gio3B0BgmWzcF50xpYhDRCsOu/A1cuQDlgLcNtDPHRUFFofjjw0diiMp228f/zn4eAcvHTJ GQ50BGLnnh0kAAAAAElFTkSuQmCC @@ -588,32 +588,32 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAFlJREFUOE9j/P//PwNVAchAamKqGgb2LTVdR7SBwDAGBQxRlhOnCGQgCxUNBBkGdiUR + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAFlJREFUOE9j/P//PwNVAchAamKqGgb2LTVdR7SBwDAGBQxRlhOnCGQgCxUNBBkGdiUR EUiUC8Guo6aXaeJCqnt51ECcqYO4ZANMMoM8DInIIbBcRJyXh5WBABRZUBLQnVBRAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAFFJREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9dAaLiCAhgd43UETkl8EYXPV/gMxOY6 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAFFJREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9dAaLiCAhgd43UETkl8EYXPV/gMxOY6 sBglBmJ16PA2EGs4Dm8vD/5Ypl6kkFto0K+0GTQuBACUuJiTTPFroQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAADxJREFUOE9j/P//PwNVAchAamKqGgb2LTVdN8QNBMY8KPpxYlxBhTMMRw3ECMvRMISn + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAADxJREFUOE9j/P//PwNVAchAamKqGgb2LTVdN8QNBMY8KPpxYlxBhTMMRw3ECMvRMISn ltGsR3nZOPjDEAD6FPM4KprXiAAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAINJREFUOE/NlOEKgDAIhAt6/1e2bkyx0sDtqDZk7Mc+zjvZKiILdQHILCqsdctUlwIP + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAINJREFUOE/NlOEKgDAIhAt6/1e2bkyx0sDtqDZk7Mc+zjvZKiILdQHILCqsdctUlwIP T2HE806sChUC6Eu2DsepVQHi+RWq92Fg09TVRPDM+zgUdU/bc26a0mrLdIVUD28p+wEaSdnmMPBwLmWX tIF0JiuhZP6dhv1T4MyH8c5v8yuFO1DV07yWmDh+AAAAAElFTkSuQmCC @@ -621,8 +621,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAIlJREFUOE+9lN0KgDAIhRf0/q9sKihabuAPFV6s8NvxKF4AsEYfAk7GKIyrnVS3By60 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAIlJREFUOE+9lN0KgDAIhRf0/q9sKihabuAPFV6s8NvxKF4AsEYfAk7GKIyrnVS3By60 4fCi55gbWxUrJNjtgyA28kDO9xA582UZhRFILRDlFaCWbf3sAJ1nAq0ApbwxDz9+BQ1KNSUC2m+1OXx7 ZueS/lW6vPMwrfAE0uHOKOwsjJ+2TWPpjit8AH+V07iuhEoDAAAAAElFTkSuQmCC @@ -630,8 +630,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAG9JREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9tABmAwIEFgGIMCGhQ4qBBLcGF3IUgb + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAG9JREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9tABmAwIEFgGIMCGhQ4qBBLcGF3IUgb CwLDDUQSA8uTZCCSoSguhBkKkh8wA2EuIkQT7UJCBsGDYMC8DE8c0AgYjRRwrgHnHKIjhYISiE6Fw7B2 IQBXTc/Ii1NFYgAAAABJRU5ErkJggg== @@ -639,8 +639,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAHpJREFUOE9j/P//PwNVAchAamKqGgb2LTVdR0cDGYDhigSBkQaKOVBoo0Is4Y/dyyBt + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAHpJREFUOE9j/P//PwNVAchAamKqGgb2LTVdR0cDGYDhigSBkQaKOVBoo0Is4Y/dyyBt LAgMNxBJDCxPkoFIhqK4EGYoSJ5cA1E8So6BMBcRool2ISGD4EEwYF6Ghxk0vKgeKdQzEJp0MNIhLHkT HYYUlEBDtXAYTF4GABL477TaAfezAAAAAElFTkSuQmCC @@ -648,16 +648,16 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAFFJREFUOE9j/P//PwNVAchAamKqGgb2LTVdN4QNhMY6KPrRMXKCAPoQM0KxhiEWg7AZ + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAFFJREFUOE9j/P//PwNVAchAamKqGgb2LTVdN4QNhMY6KPrRMXKCAPoQM0KxhiEWg7AZ TrKBKK7B5lpSXEhUWifVwJEUhpTkntGsR3nZOPjDEAAZ/81eNzDEKwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAF5JREFUOE9j/P//PwNVAchAamKqGgb2LTVdR0cDGcARBSLA+D8LMJxBEEQDMVgMR9hj + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAF5JREFUOE9j/P//PwNVAchAamKqGgb2LTVdR0cDGcARBSLA+D8LMJxBEEQDMVgMR9hj 9TJYA5oBGBaQYiDUPXAXwflIlpDkwsFvIHJ44WKPehme/IZq1qOgSBuBXgYAUGAHm432490AAAAASUVO RK5CYII= @@ -665,8 +665,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAKhJREFUOE/NlFkOwCAIRNuk97+yBSKExQUTmlSjHy7PEUbv1tpVWhBY2UphdFtRd4FS + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAKhJREFUOE/NlFkOwCAIRNuk97+yBSKExQUTmlSjHy7PEUbv1tpVWhBY2UphdFtRd4FS qFCwQ92hruaYI0BevAOODqKxHrq1wgcW9iYHqTGa45oC4mIFlM0M1UE5AYYwVABZ3TTWWYVeHTnAxzWd lG4jE3wXV7HYTKG2hcmsTsCJQg/k6xn/ATAkaqfQbHDeG5o/Azx6fivg9FWoqwb7BGDRN/bh9/VXhS9A +GdRV5V7oAAAAABJRU5ErkJggg== @@ -675,8 +675,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAKFJREFUOE/NlNsOgCAMQzHx/38Zt4WZbtzJTJTgA2I5pYwr55xCHxaM7KFi4tbQJaKl + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAKFJREFUOE/NlNsOgCAMQzHx/38Zt4WZbtzJTJTgA2I5pYwr55xCHxaM7KFi4tbQJaKl Rg+/mL1qzW/g0gjq5PenmwSxl8X8GELNCVUQyWFMPPQI1aCx5QRlToRgb5FjQhMSEZoFdi37ZDG8I0Kk q07CSih4+lp0HMqWZS+oqQppSfhIcLR3Zh9noeB5NFUBVbNNOKrnqt67hAFX2cfX1x8JH9infzlwvl0u AAAAAElFTkSuQmCC @@ -685,8 +685,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAJRJREFUOE/NlNEKgDAIRRf0/79salPWrLiSgwpftjxeTd2IqJU+Aqy0CGscAHg5K9YR + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAJRJREFUOE/NlNEKgDAIRRf0/79salPWrLiSgwpftjxeTd2IqJU+Aqy0CGscAHg5K9YR xbwCxWk2CaYwCQoD99PpyYjvU8ARNKYfzhGFFydT0msa0s8ANa0BqHXrZwaGaugfrwT6X61Q6DCp46+A oZaTutSklPahNvKKSbGZvZtlnx60sZFtg8/yx/1Yulx1+1dua2EdD2qAIPUd5s8AAAAASUVORK5CYII= @@ -694,8 +694,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAIdJREFUOE/NlOEKwCAIhBvs/V/ZacywKduFsi3xT9THnaUbEbXSJcDKLIV1t05dY8WX + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAIdJREFUOE/NlOEKwCAIhBvs/V/ZacywKduFsi3xT9THnaUbEbXSJcDKLIV1t05dY8WX 4JKIDx+Bu0egwDQdEgbufPXMCWj2OxwGymG+bGFDpUA1VoARzFlHgXewCYoAEdiAfgKUgiMql1+59FH0 W4TfxvYLUsOo7X7aKcZabjgk5+ML8zCp8AC0/YvYhcL59wAAAABJRU5ErkJggg== @@ -703,8 +703,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAIBJREFUOE/VlOEKwCAIhDfY+7+yeZJh2xqYFqzhjxkcn3fhSURH6oFgZqWKybSZdPsE + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAIBJREFUOE/VlOEKwCAIhDfY+7+yeZJh2xqYFqzhjxkcn3fhSURH6oFgZqWKybSZdPsE OSQk9Vmjyd5HFi2+ujgw+/G/9NEbhLlPEHSNplJ21F7CZYJK2ejU1xlCSxkXhG/Vx4fYTMr2udzD8T8b +GSqI9S+y8PABvrpcoistPSRC/8z/5QTH8xtAAAAAElFTkSuQmCC @@ -712,8 +712,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAJBJREFUOE/NlIEKwCAIRBvs/3/ZqaSYOqIl2woJCl7nmR0A0EoHASujFMbZVqrLgQ0t + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAJBJREFUOE/NlIEKwCAIRBvs/3/ZqaSYOqIl2woJCl7nmR0A0EoHASujFMbZVqrLgQ0t MBP9JZM1xtNoV1TYYR50C3Y1SIGDohNVUNDENahdATJIYGKDgfIlM6AoEEVWVbq3CgzeddV68efA7ZTJ J02noigWSGBf5UfPxkOzR64dMyuKb6391tv8zl74bf6m8AKNAJvwV1fzVAAAAABJRU5ErkJggg== @@ -721,8 +721,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAHpJREFUOE/tlFEKACEIRFvo/ld2zRrW+pBQif2oCKLoMWNTDxGV1NaAmSMVJm5NdYXV + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAHpJREFUOE/tlFEKACEIRFvo/ld2zRrW+pBQif2oCKLoMWNTDxGV1NaAmSMVJm5NdYXV c+fWfHzdcLUNnKBuYO3q9CBes1zZmwoG66LUq1AOD5WoYAgo9hZgyPIF9mBHYgMAbhs1dcdmikrK09Ox GfOYZcfXdvj7+oPCFzUrDpjs1cCOAAAAAElFTkSuQmCC @@ -730,8 +730,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAHxJREFUOE/tlL0OwCAIhDXp+78ycqRnSQcGIKZDNQw6nN/JzxSR0bog2BmtYuY2pBtK + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAHxJREFUOE/tlL0OwCAIhDXp+78ycqRnSQcGIKZDNQw6nN/JzxSR0bog2BmtYuY2pBtK r1sXfDw7cHVY8FIqjU14nyNXMeFbEKZxl7b8C1rhVP7QsuuzzJrMJgWCDBa4PZIV9CJbuGKZzeYp7S5N 6OuQXVIiTIy2w+PrC4QLMHgOlOq5QDwAAAAASUVORK5CYII= @@ -739,8 +739,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAGRJREFUOE9j/P//PwNVAchAamKqGgb2LTVdNxQNZABGEBQCYx4U/aAoQ0AWIBuEkSFa + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAGRJREFUOE9j/P//PwNVAchAamKqGgb2LTVdNxQNZABGEBQCYx4U/aAoQ0AWIBuEkSFa pKKGIbph6JrJMRDuMmyaSTUQZhgpNHoqwfAyVV2IHNjgCKFGGFI3lqmQr0d81hsRYQgA/B8AgiUdBGUA AAAASUVORK5CYII= @@ -748,8 +748,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAGtJREFUOE9j/P//PwNVAchAamKqGgb2LTVdNxQNZABGEAyyAFkgjASBqQGUJEDRiIBo + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAGtJREFUOE9j/P//PwNVAchAamKqGgb2LTVdNxQNZABGEAyyAFkgjASBqQGUJEDRiIBo kYoahgQMBFmAYSilBmIYis9AmO2k0OiphGQvk+RClMDGEikww6gWKeAYRot5/F6mQr4e8VlvRIQhAIwr AYWdxFZmAAAAAElFTkSuQmCC @@ -757,16 +757,16 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAADxJREFUOE9j/P//PwNVAchAamKiDAP6AGgncRaPGog9nEbDEG/KGE02o8kGWsIM/pxC + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAADxJREFUOE9j/P//PwNVAchAamKiDAP6AGgncRaPGog9nEbDEG/KGE02o8kGWsIM/pxC bFkILv1JUUyMWgDrxVLnzhXMLQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAActJREFUOE+NklkvA1EUx+ubeCJii6WNh0oQsb/ggQSJhK/gU+iLiHhQS6wJotFa0lJb + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAActJREFUOE+NklkvA1EUx+ubeCJii6WNh0oQsb/ggQSJhK/gU+iLiHhQS6wJotFa0lJb EWpLGUwbbVFLFbFVqp2Z/s29MhNpZpKe5OR/5845vzPnnEkBoCFmcbj/Dv+M53kNx3EaLhYjt4aWOl1X YoyGAIibt1hRlM04swFdTSfGLfvdUrykMsC0fq4K6Bu3wrbDSBDDf4gMmFlxqQKGZtdosuSKgKmlQ8QT EPF4nN7xvIDBaTt6R5ehre4gUXJh+TC54IQgCDi99FL1+ALgxETXhReRaAwnF9eYs+6pAwxGM3y3D2QT @@ -780,8 +780,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAHlJREFUOE/llI0KwCAIhB2+/zO7GQhmLQ2OYCyQ/uzjrqRLRAjaFIgMKKy5Rar7CJCZ + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAHlJREFUOE/llI0KwCAIhB2+/zO7GQhmLQ2OYCyQ/uzjrqRLRAjaFIgMKKy5Rar7CJCZ yYU8Yw2/NhtbXuwpJleBei7mtvkbcEelMQagQaoqZ7Y7y8N9JHe5tBwtVlSeA3qr/vVWKstlk9Vfup8m uHorPdofPwf0f3gD43NpwwQa5WcAAAAASUVORK5CYII= @@ -789,8 +789,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAPxJREFUOE9j/P//PwOl4DPQAJAppOLPMMuXAzVvBOL1JGCQ+uUwA5KAnAwgTicBg9Qn + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAPxJREFUOE9j/P//PwOl4DPQAJAppOLPMMuXAzVvBOL1JGCQ+uUwA5KAnAwgTicBg9Qn wQzoBHImAfEEEjBIfSfF4YfLAGag6azEYLABbGxs9yUlJd9CYyETSCcC8S0gPokHnwHKHQAboKqq+nnJ kiWwKGwASggBsR8Qe+DBnkA5V5gXlkKjby+Q9gLiWCA+BcS78GCQ2o1UD0QLoKlrgHgeEINcJQ7EHEC8 FmQbEG9AwpuA7BXoLogqKCj4n5KSAgsPTaAiEPCFhgkoXGDYH+RddANCpaSk/ouLi4Pyxj8gVgViNiA+ @@ -800,8 +800,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAM9JREFUOE9j/P//PwNFAGRAeMMjHZ/SU0DmfwZSMVhDSNP9/x75B1AMALoK5DS8GOx6 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAM9JREFUOE9j/P//PwNFAGRAeMMjHZ/SU0DmfwZSMVhDSNP9/x75B1AMALoK5DS8GOx6 EBFYdlnTIXn1f8ekVX5kucA1e8d/i/Dp/439O0j2Bsl+Rnch2ICg+hv/A6qv/HfJ3t5FlhfAhtRdT7eJ XQD3AqEABMnDAzGk4aGPa9b2/7aJS/3JcoFnwYH/lhEz/hv5tgxQIPpXXfzvW37uv0PKavJd4Fdx7r9j +qY0WBiQFIggTR5FR2abBU8gzwUehQfBgWgTvTCQrFggVROyegA1/oH1CRXf9wAAAABJRU5ErkJggg== @@ -810,8 +810,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAl5JREFUOE+l019MUlEcB/B67M2HtrZ66aGHarW2/sxy5tJa2J8l2YNzMmuxjNWkEomu + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAl5JREFUOE+l019MUlEcB/B67M2HtrZ66aGHarW2/sxy5tJa2J8l2YNzMmuxjNWkEomu AgJXvECJWCpMjH/ZkrKlzeyvLV5aWPNfw0BrJRVDrEAqWZT32720WtbVHjrbeTj3nu/n3Ps758wHMO+/ Ggtw9d6H91bZrVpBq1UHQipefqv7WhrXPM5wbbVsq9tOgQnTn1+RtKOJfOl2UOh0W4k/EU7gQjNFT42R LABETHBaSCTGtKnxgLcn43eEE7A3qD/R43VMgPoBNGrAjl2WGlhq5XBajXk/EU6gpV7JBIxwmdXAuAm2 @@ -827,8 +827,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAeFJREFUOE+l019IU1EcwPFJz9JbD/Vgj5Kr9CGikDCitIxIqJeiMHQ5kdU2wyXan7mc + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAeFJREFUOE+l019IU1EcwPFJz9JbD/Vgj5Kr9CGikDCitIxIqJeiMHQ5kdU2wyXan7mc FmqQQURQFiG0RmgjGSbZcC6wMZz/bmqaTRcGpijOhNn9dibl3RLiUhc+3N85B7735Z4kQPNfTywg+Rr5 04D3DsGuBnrfNhB4U0/P6zo8LjvtDhvuZ9ZVqx//HSA6Ika/4FWl0pCnBIa6G4lG3okNh2oVhuNKwPeq huW5l2LjvmrlJceUQFfrDb6HH0HktmqW4qNKwNNiY368jpU5+xpma/kbiz5XCXS+sDITLIPpKtUsRUeU @@ -842,8 +842,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAm9JREFUOE+lk19Ik1EYxtdFkCh+Uo1ZTll0q4lJoJKuVNKLgZpKzihUrG34jxG2cC5q + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAm9JREFUOE+lk19Ik1EYxtdFkCh+Uo1ZTll0q4lJoJKuVNKLgZpKzihUrG34jxG2cC5q WILh5rKZtQpiGSoj6EIU//CJrkKC1BxLRzqtzTU/3WIjy3B7+vZB0mSDogPPuTi8z+885z3n7AHA+q8R AISSZbyQ96r/9LamjtjqkhIHwtWFNAeKX/fnmBfnr/80T8t8HTXEwD8BjL3ZAvPkRZ/3+2Os2xphGs5A Zz1xLBQkZIK3L/Opj0tayJurIRQWwDgqQU8L1/FXAFLPl81PiXxN8kswGAxQKpWI48ZiZiAV6hpCtBsS @@ -859,8 +859,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAHxJREFUOE9j/P//PwNFAGRAQfehAiD+D6JBfFIwWDFIc2jLk/+y1lVALsQAFiaW//gw + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAHxJREFUOE9j/P//PwNFAGRAQfehAiD+D6JBfFIwWDFIc2jLk/+y1lVALsQAFiaW//gw TB3MgAKQZiAmzwWkOBldLUn+xWYR3AujgUha4kEOTHAgJlYsLwDi/yCa1CiFGfDfs+jof0njTPJSIshm kGYgJs8FpDobIwwoMQAAEuaJ1nndlB8AAAAASUVORK5CYII= @@ -868,16 +868,16 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAADpJREFUOE9j/P//PwNFAGQAJRismZmZ+T86RjaUhYnlPzoGqQe7nhLbR5oBo4GIO7WS + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAADpJREFUOE9j/P//PwNFAGQAJRismZmZ+T86RjaUhYnlPzoGqQe7nhLbR5oBo4GIO7WS lJCQA3IYpUQA76epNf0QgmEAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAdBJREFUOE+lk90rQ2Ecx/mL5MKFG7lSXLiUa3IjKS4okpS4UFJelmnY2GbeLcPYbOZt + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAdBJREFUOE+lk90rQ2Ecx/mL5MKFG7lSXLiUa3IjKS4okpS4UFJelmnY2GbeLcPYbOZt mKERQmFnmMyFmdnOtq/ndzizJ1zg1K/O83Q+35fn6aQDSPvXQwJto/dInRbdPRrVftT03aGi6xYl7Tco bvWhsElAXr2AnBovsquvGcrMZQGNAxiwJ6C0xtFjjqHDJKJtOormsQga9K+o1bygShVCeW8IZd1BZJbt 8gJygmatH3UDflQq3p2LWnwoaPAi98OVnGkySpyfAvo5FxKJRHLW3RfcemHtUFpHxTiC4ThGTE5k5Zd+ @@ -891,8 +891,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAklJREFUOE+lk11I02EUxusuIogugqALIyK6iJpEEIUZIQWSK8kLQ/pAqUApKbEsl4kL + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAklJREFUOE+lk11I02EUxusuIogugqALIyK6iJpEEIUZIQWSK8kLQ/pAqUApKbEsl4kL srQwQYeOVmp+VGamlo1lMUVJ+9DmdCbNBVqkzvyiD9vmr51/rP8IoqgXzuXzO88553nnAnP+6wmg8FY7 wZVf0UbO9WbOFTehy39ISk4difpq4tMriUstJSbZxK4ko1/qbx4AeLzwu/r0FcamZxkam6X/vY9Ol49V 2zP/DuC2O3AcCMW+X4Ot1a6IyxoHWLnt7J8B0lnEDJmZeXycZ7uX0eLwca3+NSsiggAy86/2A7bt+zQ/ @@ -908,8 +908,8 @@ iVBORw0KGgoAAAANSUhEUgAAAQAAAABmCAYAAAAkqE+VAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAGBdJREFUeF7tXXl0VFWaT4/9R0+PHnsWR7uZbu2eOTN2N7bSjo7YKrQaEVsRGlTUYysg + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAGBdJREFUeF7tXXl0VFWaT4/9R0+PHnsWR7uZbu2eOTN2N7bSjo7YKrQaEVsRGlTUYysg iNgsKYQACUISIMgSFoEUiQQIskcMIGsBWVgMEbOvkBASkkAgIWQnCeQ3777a3lZV79V6q+pyzj1Q1H3v fff7ft/vW+6tqh81t7Ti+NGDIVeuXgtpa2sPYX+YBpgGAlsD99xzd8h99/1ryJChr4WErFmzBgUFBWhs bERPTw8bTAcMA36GgetNzXBmfPnllwghzs8cnxEfw4D/YoA4f29vLz+IHbu7u3Hr1i1+dHV1oaOjgx/t @@ -1018,8 +1018,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAASxJREFUOE9j/P//PwNVAchAamKEYQxAg7HAu0+//m9Z9ur/5XufQVbjhlCH4TUQZtiy + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAASxJREFUOE9j/P//PwNVAchAamKEYQxAg7HAu0+//m9Z9ur/5XufQVbjhlCH4TUQZtiy w7//J3ddw28oIQORDZuw8f3/9Ckv/oc33f5///l37C4lZCDImwbhK/9bJ23637Ds/X/X4nP/NYOW/5d3 n0megbDQciq5+j+1985/abt2ysMQZKhe2qX/Su6T/0tZN5JmYFZh5f+M/Mr/6XkV/1Nyyv4nZZf+T8wo +R+XXvQ/JqXwf2RS/v/whLz/IXE5/4Nisv8HRGX+943I+O8Tnv7fMzQVmPIgyY9gssGbVJATEc0NzCiA @@ -1030,8 +1030,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAASlJREFUOE9j/P//PwNFAGQAJZgizWDXU2L7IDEgq7Dyf0Z+5f/0vIr/KTll/5OyS/8n + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAASlJREFUOE9j/P//PwNFAGQAJZgizWDXU2L7IDEgq7Dyf0Z+5f/0vIr/KTll/5OyS/8n ZpT8j0sv+h+TUvg/Min/f3hC3v+QuJz/QTHZ/wOiMv/7RmT89wlP/+8ZmgqMAQohhdqBsZBRAHF+am75 /2SQ8zNL/sdnFP2PTS36H5Vc8D8sseh/aHze/+BYkPOz/vtFQpzvFZr23zM4BbcHKmc/+B9Rdfi/f9Fu UFLDCXFKtCx79X/hvu//HVPXk2aAQ9Kq/5ndF/+DDJi5/ct/38Id/81jV/xX9ZiA1SAMF1y7++a/pv+c @@ -1042,8 +1042,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAArRJREFUOE99kntIU1Ecx6//9Fd/9kd/FSU9rD+0hxIoPcjcyppBRJZIiqlDA7HIFohl + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAArRJREFUOE99kntIU1Ecx6//9Fd/9kd/FSU9rD+0hxIoPcjcyppBRJZIiqlDA7HIFohl mr0081Gr+aD5mI/Kx3TO1po5zbmcaahIiKBkOvGBqTnndu+3cw45kmYHvpx7Lvf3Oed87s8DAFep7SYT OJ53kghrZ4Hn4sNEHhwZ1wqsYjJpn0RvZms2aGFFkwUCeFd4gceyQ8C8TYDvySgGT1RMiElwIX2QrVfD HlSaLlasNvThdXMvytVdKH5jQv/QOAOsFpcZlxGXM4Tw7GlEvVjZSmsZoKzR7Np9xcnjl13AzKKA7sFx @@ -1061,8 +1061,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAJVJREFUOE/tk0ESgCAIRfX+hyZEcECJyEW1iMbJIXz8ACsAFDQoFZ++IweZ+IYj2Mip + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAJVJREFUOE/tk0ESgCAIRfX+hyZEcECJyEW1iMbJIXz8ACsAFDQoFZ++IweZ+IYj2Mip BsRljajKj2nYI1/Wd+e0yAmoQ1sagu0C3YO7wFDJjsLHgUvnnFaapgyF+vekfusgOPypyxHwWh3Ngx0b M1msLAeSKAX0xpXD6O4ES+XMAW+IzAN/hWdlzddwzIXT7W90+VWFB0CnMA5SEwr4AAAAAElFTkSuQmCC @@ -1070,8 +1070,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAGxJREFUOE9j/P//PwNFAGQAJZgizWDXI9vOysL6Hwf+APRmChDzoLsW3QBjZANAioF8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAGxJREFUOE9j/P//PwNFAGQAJZgizWDXI9vOysL6Hwf+APRmChDzoLsW3QBjZANAioF8 d5AYUDMIp+A1AKoB7goonxnJgEfkGEC+C5C88w/o/IVALE5fF5AcBkAnW1IUCxSnA3KSNHWT8oC4AACM 9Tog46ASzQAAAABJRU5ErkJggg== @@ -1079,8 +1079,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAHxJREFUOE9j/P//PwNFAGQAJZgizWDX47Md6DWQ/1Awunq8BrCysCrADACylbBZRsiA + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAHxJREFUOE9j/P//PwNFAGQAJZgizWDX47Md6DWQ/1Awunq8BrCysCrADACylbBZRsiA EJABQM0huFxKlBeABjCTbADIVqjtCXjDCafJ0MDDZzvOWABqCoTankkojWCEASi0kUJeiyQDsMU7SIys MCBkM0yetkmZGFdQ7AIA76uD72svvEQAAAAASUVORK5CYII= @@ -1088,8 +1088,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAGhJREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9NAYJiCAhaOgYECCmZUMRxBhd2FSAaA + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAGhJREFUOE9j/P//PwNVAchAamKqGgb2LTVdh9NAYJiCAhaOgYECCmZUMRxBhd2FSAaA DINBmKFg/qiBsCAYDUNocoAmFPS0B+LDExGpyQY5/WFlk2IgNpdRllMoKIHoUzhQUgINfhcCAK1G3k1g YwCYAAAAAElFTkSuQmCC @@ -1098,37 +1098,37 @@ Qk1mAQAAAAAAAHYAAAAoAAAAFAAAABQAAAABAAQAAAAAAAAAAAB0EgAAdBIAABAAAAAQAAAAAAAA/wAA gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4iI - iIiIiIiIiIiAP4iId4iIiIiIh3iAP4iHAIiIiIiIcAiAP4hw8IiIiIiHDwiAP4cP8IiIiIhw+wiAP4D/ - 8IiIiIgPvwiAP4Dw8IiIiIgLCwiAP4AP8IiICIgAvwiAP4D/8IiIAIgL+wiAP4AA8IAAAAgADwiAP4D/ - 8IAAAAgL+wiAP4AA8IiIAIgADwiAP4D/8IiICIgL+wiAP4AP8IiIiIgAvwiAP4Dw8IiIiIgPCwiAP4gP - 8IiIiIiAvwiAP4iA8IiIiIiICwiAP4iIAIiIiIiIgAiAP4iIh4iIiIiIiHiAP4iIiIiIiIiIiIiAPw== + iIiIiIiIiIgBAYiId4iIiIiIh3gBAYiHAIiIiIiIcAgBAYhw8IiIiIiHDwgBAYcP8IiIiIhw+wgBAYD/ + 8IiIiIgPvwgBAYDw8IiIiIgLCwgBAYAP8IiICIgAvwgBAYD/8IiIAIgL+wgBAYAA8IAAAAgADwgBAYD/ + 8IAAAAgL+wgBAYAA8IiIAIgADwgBAYD/8IiICIgL+wgBAYAP8IiIiIgAvwgBAYDw8IiIiIgPCwgBAYgP + 8IiIiIiAvwgBAYiA8IiIiIiICwgBAYiIAIiIiIiIgAgBAYiIh4iIiIiIiHgBAYiIiIiIiIiIiIgBAQ== Qk1mAQAAAAAAAHYAAAAoAAAAFAAAABQAAAABAAQAAAAAAAAAAAB0EgAAdBIAABAAAAAQAAAAAAAA/wAA gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4iI - iIiIiIiIiIiAP4iEREiIiIRESIiAP4h0/0SIiET/R4iAP4h0iPSIiE+IR4iAP4h0iISIiEiIR4iAP4iH - SIRIh0iEeIiAP4iIdERHdERHiIiAP4iIiERERESIiIiAP4iIiIRP9EiIiIiAP4iIiIcERHiIiIiAP4iI - iHD/DweIiIiAP4iIhw/wT/B4iIiAP4iIcP8IgP8HiIiAP4iHD/CIiA/weIiAP4hw/wiIiID/B4iAP4cP - 8IiIiIgP8HiAP4D/CIiIiIiA/wiAP4DwiIiIiIiIDwiAP4AIiIiIiIiIgAiAP4iIiIiIiIiIiIiAPw== + iIiIiIiIiIgBAYiEREiIiIRESIgBAYh0/0SIiET/R4gBAYh0iPSIiE+IR4gBAYh0iISIiEiIR4gBAYiH + SIRIh0iEeIgBAYiIdERHdERHiIgBAYiIiERERESIiIgBAYiIiIRP9EiIiIgBAYiIiIcERHiIiIgBAYiI + iHD/DweIiIgBAYiIhw/wT/B4iIgBAYiIcP8IgP8HiIgBAYiHD/CIiA/weIgBAYhw/wiIiID/B4gBAYcP + 8IiIiIgP8HgBAYD/CIiIiIiA/wgBAYDwiIiIiIiIDwgBAYAIiIiIiIiIgAgBAYiIiIiIiIiIiIgBAQ== Qk1mAQAAAAAAAHYAAAAoAAAAFAAAABQAAAABAAQAAAAAAAAAAAB0EgAAdBIAABAAAAAQAAAAAAAA/wAA gP8AgAD/AICA/4AAAP+AAID/gIAA/4CAgP/AwMD/AAD//wD/AP8A/////wAA//8A/////wD//////4iI - iIiIiIiIiIiAP4iIiIiIgAAAAAiAP4iHd3d3cO/v7wiAP4gAAAAAAPRETgiAP4D4iIiIgO/v7wiAP4D4 - iIiIgPRETgiAP4D4iIiIgO/v7wiAP4D4iAAAgPROAAiAP4D4iIAAgO/vAIiAP4D4iAAAgAAACIiAP4D4 - gACAiAeIiIiAP4D4AAiIiAeIiIiAP4D4gIiIiAeIiIiAP4D4iIiIiAeIiIiAP4D4iIiIiAeIiIiAP4D/ - AAAA/wiIiIiAP4gATExAAIiIiIiAP4iIxMTAiIiIiIiAP4iIjEwIiIiIiIiAP4iIiIiIiIiIiIiAPw== + iIiIiIiIiIgBAYiIiIiIgAAAAAgBAYiHd3d3cO/v7wgBAYgAAAAAAPRETggBAYD4iIiIgO/v7wgBAYD4 + iIiIgPRETggBAYD4iIiIgO/v7wgBAYD4iAAAgPROAAgBAYD4iIAAgO/vAIgBAYD4iAAAgAAACIgBAYD4 + gACAiAeIiIgBAYD4AAiIiAeIiIgBAYD4gIiIiAeIiIgBAYD4iIiIiAeIiIgBAYD4iIiIiAeIiIgBAYD/ + AAAA/wiIiIgBAYgATExAAIiIiIgBAYiIxMTAiIiIiIgBAYiIjEwIiIiIiIgBAYiIiIiIiIiIiIgBAQ== iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAJhJREFUOE/tlNEKgDAIRTe2///fQDAcGBd1rFkPPRRIYOt6NLuVmYu9eu8+6U75BBHV + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAJhJREFUOE/tlNEKgDAIRTe2///fQDAcGBd1rFkPPRRIYOt6NLuVmYu9eu8+6U75BBHV IoI2WmtMB22FvDPgUEySmZDiU8EMmRPMUOlY8H61nJ2ZkoWEmsSKSB49XwruzO9WyzM6S2rJpi2/Tmgr KxnOL2r1J+SCix196e/McLWHuFbR2cf/sq4VWuDww6w5ROZ8CWYsLBI8ASIt+Tz8pxenAAAAAElFTkSu QmCC @@ -1137,8 +1137,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAkZJREFUOE/VlF1IU2EYxxsbXUQJ0s0qCLooum6ZfaIXzjlbenL0QUa0UcxjbBOLIAdm + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAkZJREFUOE/VlF1IU2EYxxsbXUQJ0s0qCLooum6ZfaIXzjlbenL0QUa0UcxjbBOLIAdm VhcZG9K5KfJzq4TA40cWq5GsL83JgmgthyJqynLK5oY7zm307xzrhKm5GQT1wMv7+fx4/+/75xEAWMWF SCT6PlhBxONxwaLjHJBrQqGQ7ZKPH+fncue3n5O/BuTAPHyp8fy9hbebe77/V/Jy0rmv+zc+RbxhE0a9 EyirNKGR7sS5MiNOkgYMjk6u/IZhJoJXPS40W1+j1zMEx/A4aEcfKmrbUWSgIN68jVOe2Ie8LfZl5uDu @@ -1154,8 +1154,8 @@ iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAYFJREFUSEvtlTFrg0AUx2PTUhCEOGQQA8mS2UlDvkI+gd8ikCFDBCFDloAJxNCldnFx + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAYFJREFUSEvtlTFrg0AUx2PTUhCEOGQQA8mS2UlDvkI+gd8ikCFDBCFDloAJxNCldnFx cnC0zaAfSwK+eocJnrlLrlI79cGfO+R5P9//PVUAgE7rgSBtq3UAdqrtKgjIarXqdLtdWnueiwBe0R76 WskdyAsC8ESZd+POI4hQBYzHb5hVX9E1FoDHLmwViun0A6+TyTsBulRYhTiOQ1Rzt5K6TaxKUF7RTOHS j81mQ4es12uh7PoTWn/ShyL9tdrw3W5Hh7CmR+71QJZlplj3VaFXIkpOkqSxVFUFz/NguVzeDAEB+UyS @@ -1167,8 +1167,8 @@ iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAwBJREFUSEt9ljuOGkEQhmdYMLt47fUL24FtIhLLqUlISCwi7sEVyCDlChyBA5AgQbIr + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAwBJREFUSEt9ljuOGkEQhmdYMLt47fUL24FtIhLLqUlISCwi7sEVyCDlChyBA5AgQbIr JyQ+wUpOEQcAi9n6Sl2tmma8K9X2Y7rqr8ff1eRFUXSyLPsrchbhLw8jQyFSE6mL3IT5UcZT+IYOwhnO IqbfCOt/mYDkIjbavOb2+ebP2ZrRzqF3FaQexoaML9A1BRYGYHsoeYM6r9frGPbA6LGHjTfum+0pCAvQ myKgY5y5GfoY1vlsNqsJSIE4rz8F4y9lvBF5G2yir476NLVk484ZRwEDjIBqahwIDl2LvHaA7OGBOR9B @@ -1187,8 +1187,8 @@ iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAABlVJREFUSEu1lntQ1NcVx5fMpNPp2CZpxyax0TQz2EweplaiILDLG9HgA4NWFgwSWEQQ + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAABlVJREFUSEu1lntQ1NcVx5fMpNPp2CZpxyax0TQz2EweplaiILDLG9HgA4NWFgwSWEQQ EESQII8ICAiE1QkooEIAEQHlISCQGjQ1FuShlggCFmMBRZaHxAWEAp9e1nZ++SPPP3Jn7v529p7f/dzv Ofecs3qA7Gcfc5DzVWPMzZpqrXg+orTkISfzRsjMGCb14wEOqe+TnNRLfNy/+TDqLvvCugn7oIvgoFsE 7GrDz7edwICbhO29RcS+TrHWQcieDoJ23xLbCxFzH1WVj/i0dpy6z6bI+WSC3Bwt11rGaGwc5/LftVy6 @@ -1221,8 +1221,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAJtJREFUOE/VVIsOgCAIrP//KfsyE/K2RB5ari035hxyHKew55y3pYsAU0qhlaRHdI/J + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAJtJREFUOE/VVIsOgCAIrP//KfsyE/K2RB5ari035hxyHKew55y3pYsAU0qhlaRHdI/J ATAK8PzwNYCUPQLVGN5jOkAE0CXLvLJ9wOKlRZpgRxIL1AWUYHwukrPoxgM9YXiBVkkk03mGonwTUGbk s6JhI4NS9jKGIDSt4WcMoeXfGTrtN/wPlw6HkfFk9bA5vqKA4QFbhwr3/Vs7AVX9hX1v7jIzAAAAAElF TkSuQmCC @@ -1278,8 +1278,8 @@ iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAB6xJREFUSEt9lQk81ekaxx/EZJuZhBaU0u2OSZ0pmQ8lspTKVnPFFJG6tlKSi5sl4Vja + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAB6xJREFUSEt9lQk81ekaxx/EZJuZhBaU0u2OSZ0pmQ8lspTKVnPFFJG6tlKSi5sl4Vja EMpSp1KdpJWyTE2WlELGEpU+Mpm2a9LGib8czu++TjV3rntn3s/n+/m/z/N//8/vfZ7nfc+RERbW0lsR R2/eciQzSoE+V9Mg1dHyJN9ZSEQyJCMjS0MSGZIfhbV9nGzagFiG3ovFRBIJiQeHaGhIwmwJWyshBdlB Uux70yz7pZxQwXhKoqLSRFLqUx2kYZH9udeIn/EDxR0so/Tzdyir4BElJwkolR9BWWnJFBqapp25L31/ @@ -1318,8 +1318,8 @@ iVBORw0KGgoAAAANSUhEUgAAALQAAABjCAYAAAAy9iqlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAJx1JREFUeF7tffd3FMf2J3v2e87+uP/Gnu/ue34mJ9vYGHAEbGyCAYNxwgkwGIzJOdgE + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAJx1JREFUeF7tffd3FMf2J3v2e87+uP/Gnu/ue34mJ9vYGHAEbGyCAYNxwgkwGIzJOdgE g9Ozcc429jM5RwkkJKGcc85plEcS4u7nUz0909PTEyQGmdA656or3LqVPnXrdldN1f948qU9xf+r/sz/ Lq5wDPiv//qfA+w/uwVutxYQGTBArl8f8M9//p+mAf8YMqH1gYcel4fGT5aHxtlkt8HtiYExwO79Y8a3 Dhg2bIRj9JhHZPjIMTLyvodl1P3jZeT9D8uI0WNl5OiH8GTYOBWu0TjFq4VrfmPcqAc8YSMhg3y6XJ1/ @@ -2669,8 +2669,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAxBJREFUOE+Nk/tPk2cUx3Wb2R+yGLMETYyo05hlupCiQg2gby0IDEdXyqVcCnaVS4v0 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAxBJREFUOE+Nk/tPk2cUx3Wb2R+yGLMETYyo05hlupCiQg2gby0IDEdXyqVcCnaVS4v0 pU68lHZACcLWyiaToAj1JV4WGUzHwnDLogM3WabhUlMLyyyrIvazviwt8Tef5OQ5eXLO5zznPN9nNbAq uirtA1sjvpJw+P231rwR9/aaN1cH/128+3QhdCMcDnubzaqfYsFRRwbIVtU4UFTjlB54hoa5/mAMaWoA z2QtJZIWQfyC3KOeCU3VOW00ProvJ1fapULRLS303LvCnX/uMv5shoreeux/VJN/WckuWwMZ4gjppo5g @@ -2689,8 +2689,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAATBJREFUOE9j/P//PwNFAGQAOgYaCDIVKAw2HM7GqhabIEwMZgheNVQzIDo6Otff33+X + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAATBJREFUOE9j/P//PwNFAGQAOgYaCDIVKAw2HM7GqhabIEwMZgheNVQzIDo6Otff33+X t7f3THd3dwGY82EWWFhYlAPxfyguh7sSxPD19e338fF57OHhccrV1fW/tbX1I2QDgJrSQBqRDAMZ5AJW AyKANtbDJIGGvLW0tIQHIEgcqPgMFgM64AaAGEFBQX1AfNXLy+sbTDEsEBMSEmBOh9NZWVkQS4CahEJD Q/+HhITcA7IF7O3tb5mbm6O74C7U72BnI2OQ/ysCAgL+u7m5LXZ2duYHav5mZmaGbgAsAFcBDRIEYqXV @@ -2701,8 +2701,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAoJJREFUOE99kd1LU2Ecx0939Rd022UXQdBFXZVdh10FERRBipXD1CRDS8tmRbhM09LE + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAoJJREFUOE99kd1LU2Ecx0939Rd022UXQdBFXZVdh10FERRBipXD1CRDS8tmRbhM09LE WavUaCnpsqzhnNPlKvNlrFm+pem0Njdtup3nnPOc7dtznmGQbB34cODh+b78fs8WAMLmr981TtjZVjWm CgpNIMtUoCrlf1mhgqrGpZyM9G2CZrCZgY/jMjuD+6sPQ545vB+eht31DW/7v+BVzyi6bG7UmboID09m 4Bj0UgZsTje6e4dhsX6C2eJES7sdTc/eof7xa9QYLVpIcgNzpw2qGuNQqkJRKIdIMkQi4Xc4ghJ9lVZS @@ -2719,8 +2719,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAArRJREFUOE99kntIU1Ecx6//9Fd/9kd/FSU9rD+0hxIoPcjcyppBRJZIiqlDA7HIFohl + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAArRJREFUOE99kntIU1Ecx6//9Fd/9kd/FSU9rD+0hxIoPcjcyppBRJZIiqlDA7HIFohl mr0081Gr+aD5mI/Kx3TO1po5zbmcaahIiKBkOvGBqTnndu+3cw45kmYHvpx7Lvf3Oed87s8DAFep7SYT OJ53kghrZ4Hn4sNEHhwZ1wqsYjJpn0RvZms2aGFFkwUCeFd4gceyQ8C8TYDvySgGT1RMiElwIX2QrVfD HlSaLlasNvThdXMvytVdKH5jQv/QOAOsFpcZlxGXM4Tw7GlEvVjZSmsZoKzR7Np9xcnjl13AzKKA7sFx @@ -2738,8 +2738,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAJVJREFUOE/tk0ESgCAIRfX+hyZEcECJyEW1iMbJIXz8ACsAFDQoFZ++IweZ+IYj2Mip + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAJVJREFUOE/tk0ESgCAIRfX+hyZEcECJyEW1iMbJIXz8ACsAFDQoFZ++IweZ+IYj2Mip BsRljajKj2nYI1/Wd+e0yAmoQ1sagu0C3YO7wFDJjsLHgUvnnFaapgyF+vekfusgOPypyxHwWh3Ngx0b M1msLAeSKAX0xpXD6O4ES+XMAW+IzAN/hWdlzddwzIXT7W90+VWFB0CnMA5SEwr4AAAAAElFTkSuQmCC @@ -2747,8 +2747,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAKRJREFUOE/NlNEOgCAIRcv55P//ay8u61owJE03aavGJgInuC7XlNJi+gBoaaawPK1l + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAKRJREFUOE/NlNEOgCAIRcv55P//ay8u61owJE03aavGJgInuC7XlNJi+gBoaaawPK1l dwUwuLBpO8XgtxbHHmfc0nGH3vkU98hGACqAL+NYFzk9YP5AvIoArQGLnBEgCuSoukPEyegsmiPXivUe +YB2gVrTN38YKCF6rf1mh1IXWmM0Aug4xYZGNulQCi0PYVrD6VNu/Vqj+w8NrS6J726b33Z4AFzeFLS3 F5viAAAAAElFTkSuQmCC @@ -3387,8 +3387,8 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAABEVJREFUWEfNV9tOlFcY/e56ZdMn6Cv4FD5AY7VWrVbFEyPtrRdNTJrGZ+g71BLjRdNo + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAABEVJREFUWEfNV9tOlFcY/e56ZdMn6Cv4FD5AY7VWrVbFEyPtrRdNTJrGZ+g71BLjRdNo bBPTtLYesCgUOXigOAKOMwNyHOBfXWvP/obNwGwghqQ7WSGBP986fN8+YPa/Wgdv1+zTX2GH7hC/wQ7/ DvvsLuzIX7DP78OOPiQewY71w44/gX0xSAzBTgzDTo4QY7Avn8NOvSDGa3Z64uTu/JH8wSTeGz8OApd/ Wsa+Uhl2prwLEXQ+8Abvjd5+4MD3wDc/N7Dv0hSsa2qHIhj7aA0B/1SAx9PAE0KiBgn9Thginr5tYjhi @@ -3412,8 +3412,8 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAz9JREFUWEftl2tIk2EUxyXCEs0Ki8hkVtrKCvxQGFSmeJnm1MQuQlJiikJSU3CaZm1K + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAz9JREFUWEftl2tIk2EUxyXCEs0Ki8hkVtrKCvxQGFSmeJnm1MQuQlJiikJSU3CaZm1K ZJhkyIRpk+UNRaRQW9GU3kRRIy+laB90rEiyqBRU1Ozy77yOvM3pPjxCHxz84GEMzm/nfc7ltbBY/fwP GUj0EboSMimP7yxJdE4SGUiei59Qds3AKSb+FJyryIqBtijNmGL6jqhbBBIYZibQ31mKP5Ma/B5RmQ0J gIkApZ3r71Tj50AMJtsszSbFXwjCgyeV56SB6/8IoDOxrOS0QEc+pj5GY/zVerNRxh1EgfQMHvAkzaKi @@ -3433,8 +3433,8 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAABWRJREFUWEfFl2tQVGUch/nuNDZ9yWb61AdrqrEZdaY+FGZjXhpKzEQhkMBrDCiKLhcB + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAABWRJREFUWEfFl2tQVGUch/nuNDZ9yWb61AdrqrEZdaY+FGZjXhpKzEQhkMBrDCiKLhcB EVTkzoYSF3FJZHUrL1wSUVdWUTSdadQ2MbVNK9BEBfG+lU//9xwXhj1rVO7omfnNnrN7zj7P+77/877n BAQ8+a1gaEBAQbeExxxhapsmQNl+Hmv0xvZtBTxtgsBcGJMnIg5oOQ37JHtPwZ4foNkJu76HnSehSaL2 1Xe75bc9co69XT9fXef4EfafgdazcPAcHJD9DQdhhgXCJIplEHhqKYyKdTA6zsE++dPe23p6bsK1G3Dl @@ -3463,8 +3463,8 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAACZZJREFUWEfFl2dUVFkWRhXDCJIzigTFbItSpjEHBIlFFAMCY+oxgmIYTCWhwVYEJSmI + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAACZZJREFUWEfFl2dUVFkWRhXDCJIzigTFbItSpjEHBIlFFAMCY+oxgmIYTCWhwVYEJSmI VYoBoUREQRAVxJwds20r2CYMQIFEbeWbc28JDoPMcvwzrHXWg6pX7+z3nX3vo1q3auEn3L6TULHNJyet 9rVjP9e3NvkEhVaf6lm1LqffD3+GwpbFmW9utfT573kdQPPTjnu2Nz82/S83V1t1hdhFE4c8lCCdrIxk NxUkuahB7KSBeEctxNjrYqudnvf3NGrpnGYABT5t1PK82sikHspYY90VyZNVkTmtAw5PUcTByR1xwF0F @@ -3511,8 +3511,8 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAABadJREFUWEftl1lMVFcYx89r0xcf2jRp04cqBglqkYALiCAVClqkbMowwIDsy4gCFZfg + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAABadJREFUWEftl1lMVFcYx89r0xcf2jRp04cqBglqkYALiCAVClqkbMowwIDsy4gCFZfg aSIaGKgjRLHaugA6NdJqjAKJSy4FAkEFBCoWquBQBEQEBGWHf883Aqm5jQyEx97kl+Ee7ve/v/vdM5Nz GPv/mK0DXhJnPqVg2yvAFPfB/GrB/B+CBTaCqZ6ABevBdrSBhXSAhXWBhb8Ei+gDi+yXZos27v8+ZXyP rhU9g0DfMDAwArwZBQYFQ2PA8L+gcxovejguBF4vkMD2Sp6oe4YXb4CeobcS/ULi9ZTItAx9EiRYSAJR @@ -3542,8 +3542,8 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAA8JJREFUWEftln1M1HUcx/kjCRE4EWiwllB/XKutteqPVqtsJfjEQzYqXVSuMFM3L4sH + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAA8JJREFUWEftln1M1HUcx/kjCRE4EWiwllB/XKutteqPVqtsJfjEQzYqXVSuMFM3L4sH w+N+lE4nD00d8hAgSa6YMhK1MbHrcCytLSM2bOZIatacPcyJYFCxV+/fHXh33ulw+7n1h7e9tt/3e7f7 vu7z+Xw/94mIuPn6P0SgYK49RxiF6cEUaV2U4aM4kHl2Y50PmyX+OpyuXc7wtGhfHL6ClrI8JNBsiUCh BBj/lvGRVsaHGqfEwDGXKeCxRiDdFDjG6DeRU+bk3jjemW/vFXNMSkwW+FmvZy8LfTgX2u+/qqxyD/92 @@ -3565,8 +3565,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAt5JREFUOE990mlIFGEYwPEx61tEQfUlKoiCoMCgvnQa9KGIgm6prIgOrdUsu9Mao/uk + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAt5JREFUOE990mlIFGEYwPEx61tEQfUlKoiCoMCgvnQa9KGIgm6prIgOrdUsu9Mao/uk Qwm0UsotK0srLzowKDvddjfLbdXWaEjUckqzVdx1/j3jTkkEDfyZYdj39z7vsGGKec1/GKmEhU9VevRS lLCeitLDqus5PPQuzLyHf1cyh5zuWiMXYD0teKS6GuB/5VZAVHYHAzY1Zv4LLCpTa79DRSO4BXor98ov 4P0KVU1QrUNuucGYFIMl9gADN+tdSPcEUS/Uhp8CvCjFcSUFZ85eXDkpeF6V4vsGHwW/8dyg37IQEn01 @@ -3584,8 +3584,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAmVJREFUOE+lU1tsi2EY5u7//57Wrqtu7dodulI7VDY26RRzmLDZuLFgF+wCcdNLFxJ1 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAmVJREFUOE+lU1tsi2EY5u7//57Wrqtu7dodulI7VDY26RRzmLDZuLFgF+wCcdNLFxJ1 oavMeQkSMaeNYKMTyw5dpqWMOWQuiFo6P0NCikZiC0Me3/dVk7ZzIXzJ8+fL+/7v872H550OYNp/nRjB Dp4zEhzaI3C+GFwS3tdI4Iqz7eS50+S/RfRRFks/xKBwClykRcbhjJzHeZUMVzJScd2oRVeWFp2ZGlzS pOCcQmD+RoEDJYkncJwgwWeJs0OrQp85EwGrGUPz8nG/tACDJRb48nMYYZtKykh28ZwnnsBJje1aJQYs @@ -3601,8 +3601,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAm5JREFUOE/V1N9PklEYB3D7j5oX4kYujUSwCeTCMBnzZy5/IqYU+PKC/MjUV0HBH6kY + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAm5JREFUOE/V1N9PklEYB3D7j5oX4kYujUSwCeTCMBnzZy5/IqYU+PKC/MjUV0HBH6kY hgqJFWWOdM1y1hxUyua8SC9aF82buugmHB6/Hd/WRbr2XuRN5+y5OtvnPM95zp4zADJOdR2BpxknsQx6 wV+2rKAAR/HH+bGE/kPQ631P3O446e1ZIw/DOyQY3CKBQJJMTn4g4+MJMjq6Try+14jFNsje3jdy/P1P lNzdvUJGRzbhsMcQjf7A2PgXDHo/oYf7CLtzG2Z2E7V1r6gD6HQjwqDLtUwGBtZhZZ9ibu47BnwU69uB @@ -3618,8 +3618,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAqJJREFUOE+11Nsz1GEcx3H9B/0j3XTRRTNNE2MoCjnFThMbOUeOG4vdikJb2ZyKqW21 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAqJJREFUOE+11Nsz1GEcx3H9B/0j3XTRRTNNE2MoCjnFThMbOUeOG4vdikJb2ZyKqW21 hUZc2MHKMK0I01iHQgwt5Vg5LbvsmHfLjFXTr67W75lnnovfzGs+n+eZ+R4CnBz67YCO3A7Fdtva0znZ kv5nnXZ3JyoiYqfP3+u3lgcPylUfeVg7hrrpyx9p9hKqtOMUVhlIVXbt/xdK+LRhlIyyXmSqIcybVqYX N6jvmNndOyX3wKHJdXQ9P5CVtHK7SIM4qcB2a/sPa6+saRxBqx9FUtKDZWubqtZpalrH6eifR1rylj1w @@ -3634,7 +3634,7 @@ - 5,0,0,0,0,100,Columns:0{Width:109;Name:"MyAnnotationType";Caption:"Type";AllowEditing:False;Style:"TextAlign:GeneralCenter;";} 1{Width:66;Name:"DTS";Caption:"Date";AllowEditing:False;Style:"Format:""d"";DataType:System.DateTime;TextAlign:LeftCenter;";} 2{Width:91;Name:"UserID";Caption:"User";AllowEditing:False;Style:"DataType:System.String;TextAlign:LeftCenter;";} 3{Name:"BrokenRules";Caption:"BrokenRules";Visible:False;AllowEditing:False;Style:"TextAlign:GeneralCenter;";} 4{Width:82;Name:"SearchText";Caption:"Description";AllowEditing:False;Style:"DataType:System.String;TextAlign:GeneralCenter;";} + 5,0,0,0,0,85,Columns:0{Width:109;Name:"MyAnnotationType";Caption:"Type";AllowEditing:False;Style:"TextAlign:GeneralCenter;";} 1{Width:66;Name:"DTS";Caption:"Date";AllowEditing:False;Style:"Format:""d"";DataType:System.DateTime;TextAlign:LeftCenter;";} 2{Width:91;Name:"UserID";Caption:"User";AllowEditing:False;Style:"DataType:System.String;TextAlign:LeftCenter;";} 3{Name:"BrokenRules";Caption:"BrokenRules";Visible:False;AllowEditing:False;Style:"TextAlign:GeneralCenter;";} 4{Width:82;Name:"SearchText";Caption:"Description";AllowEditing:False;Style:"DataType:System.String;TextAlign:GeneralCenter;";} 156, 17 @@ -3645,8 +3645,8 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAAkNJREFUOE+d0l1IU2EYB/AZXSR0GV10bRclXWRdRB8kk5TIMV3iFgWC1FhgZbNlBNY2 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDgAA + Cw4BQL7hQQAAAkNJREFUOE+d0l1IU2EYB/AZXSR0GV10bRclXWRdRB8kk5TIMV3iFgWC1FhgZbNlBNY2 KqEwzbkMwpVzKyoWeswuXNOWy8yZ8zPXyMlcbbbvj+NZ24x/74JC7BjSgQfOxfv+zv95zpMFgKN60LW+ KH9X0ez8At/1xb8tGqc3B4KRjRuysz/lbM1rquBtpzirPRmg941Nrm6nxrpMQwmj9SOMU07cowZwsUkP geRaoPxM/YnMObbilElubGnWdL43DY7/8NEMPEwSzhiDUR8Nauor5JoeFB6vTR0S1eSwAiaLTaPr7Iu7 @@ -3662,8 +3662,8 @@ iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScwAA - EnMBjCK5BwAAAKRJREFUOE/NlNEOgCAIRcv55P//ay8u61owJE03aavGJgInuC7XlNJi+gBoaaawPK1l + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAKRJREFUOE/NlNEOgCAIRcv55P//ay8u61owJE03aavGJgInuC7XlNJi+gBoaaawPK1l dwUwuLBpO8XgtxbHHmfc0nGH3vkU98hGACqAL+NYFzk9YP5AvIoArQGLnBEgCuSoukPEyegsmiPXivUe +YB2gVrTN38YKCF6rf1mh1IXWmM0Aug4xYZGNulQCi0PYVrD6VNu/Vqj+w8NrS6J726b33Z4AFzeFLS3 F5viAAAAAElFTkSuQmCC @@ -3678,6 +3678,9 @@ 2WkfN4pguJFVeabXC8fyTNf2bRcAOw== + + 499, 17 + 41 diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs index a77a66c8..277c0348 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs @@ -18,6 +18,13 @@ namespace VEPROMS.CSLA.Library } public partial class ContentInfo { + public void AddPart(SafeDataReader dr, ItemInfo itemInfo) + { + if (_ContentParts == null) + _ContentParts = new PartInfoList(dr, itemInfo); + else + _ContentParts.AddPartInfo(dr, itemInfo); + } public override string ToString() { return string.Format("{0} {1}", Number, Text); @@ -41,6 +48,48 @@ namespace VEPROMS.CSLA.Library // xn.Attributes.Append(xa); // } //} + internal ContentInfo(SafeDataReader dr,bool ForItem) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.Constructor", GetHashCode()); + try + { + ReadDataItemList(dr); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.Constructor", ex); + throw new DbCslaException("ContentInfo.Constructor", ex); + } + } + private void ReadDataItemList(SafeDataReader dr) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.ReadDataItemList", GetHashCode()); + try + { + _ContentID = dr.GetInt32("ContentID"); + _Number = dr.GetString("Number"); + _Text = dr.GetString("Text"); + _Type = (int?)dr.GetValue("Type"); + _FormatID = (int?)dr.GetValue("FormatID"); + _Config = dr.GetString("Config"); + _DTS = dr.GetDateTime("cDTS"); + _UserID = dr.GetString("cUserID"); + _ContentDetailCount = dr.GetInt32("DetailCount"); + _ContentEntryCount = dr.GetInt32("EntryCount"); + _ContentItemCount = dr.GetInt32("ItemCount"); + _ContentPartCount = dr.GetInt32("cPartCount"); + _ContentRoUsageCount = dr.GetInt32("RoUsageCount"); + _ContentTransitionCount = dr.GetInt32("TransitionCount"); + _ContentZContentCount = dr.GetInt32("ZContentCount"); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("ContentInfo.ReadData", ex); + } + } + } public partial class ContentInfoList { diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs index 6a6ab774..97f764cc 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/FormatExt.cs @@ -23,7 +23,7 @@ namespace VEPROMS.CSLA.Library public partial class Format { #region PlantFormat - //[NonSerialized] + [NonSerialized] private PlantFormat _PlantFormat; public PlantFormat PlantFormat { get { return (_PlantFormat != null ? _PlantFormat : _PlantFormat = new PlantFormat(this)); } } @@ -37,7 +37,7 @@ namespace VEPROMS.CSLA.Library public partial class FormatInfo { #region PlantFormat - //[NonSerialized] + [NonSerialized] private PlantFormat _PlantFormat; public PlantFormat PlantFormat { get { return (_PlantFormat != null ? _PlantFormat : _PlantFormat = new PlantFormat(this.Get())); } } diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 0455016f..e32f98d5 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -1,3 +1,5 @@ +#define ItemWithContent + using System; using System.Collections.Generic; using System.Text; @@ -15,7 +17,7 @@ namespace VEPROMS.CSLA.Library { public override string ToString() { - return string.Format("{0} {1}", MyContent.Number, MyContent.Text); + return string.Format("{0} {1}", MyContent.Number, MyContent.Text).Trim(); } // TODO: Move to ItemInfo Extension @@ -84,8 +86,205 @@ namespace VEPROMS.CSLA.Library } #endregion #region ItemInfo - public partial class ItemInfo:IVEDrillDownReadOnly + public partial class ItemInfo:IVEDrillDownReadOnly { + #region LoadAtOnce2 + public static ItemInfo GetItemAndChildren2(int? itemID) + { + try + { + ItemInfo tmp = DataPortal.Fetch(new ItemAndChildrenCriteria2(itemID)); + //_AllList.Add(tmp); + if (tmp.ErrorMessage == "No Record Found") tmp = null; + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ItemInfoList.GetItemAndChildren2", ex); + } + } + // Criteria to get Item and children + [Serializable()] + private class ItemAndChildrenCriteria2 + { + public ItemAndChildrenCriteria2(int? itemID) + { + _ItemID = itemID; + } + private int? _ItemID; + public int? ItemID + { + get { return _ItemID; } + set { _ItemID = value; } + } + } + // Data Portal to Get Item and Children + private void DataPortal_Fetch(ItemAndChildrenCriteria2 criteria) + { + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + ApplicationContext.LocalContext["cn"] = cn; + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "getItem"; + cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + if (!dr.Read()) + { + _ErrorMessage = "No Record Found"; + return; + } + ReadData(dr); + } + } + SpinThroughChildren(); + // removing of item only needed for local data portal + if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) + ApplicationContext.LocalContext.Remove("cn"); + } + } + catch (Exception ex) + { + Database.LogException("ItemInfoList.DataPortal_Fetch", ex); + throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); + } + _AllList.Remove(this); + } + private void SpinThroughChildren() + { + if(MyContent.ContentPartCount > 0) + foreach(PartInfo partInfo in MyContent.ContentParts) + foreach (ItemInfo itemInfo in partInfo.MyItems) + itemInfo.SpinThroughChildren(); + } + #endregion + #region LoadAtOnce + // Method to Get Item and children + public static ItemInfo GetItemAndChildren(int? itemID,int? parentID) + { + try + { + ItemInfo tmp = DataPortal.Fetch(new ItemAndChildrenCriteria(itemID,parentID)); + //_AllList.Add(tmp); + if (tmp.ErrorMessage == "No Record Found") tmp = null; + return tmp; + } + catch (Exception ex) + { + throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); + } + } + // Criteria to get Item and children + [Serializable()] + private class ItemAndChildrenCriteria + { + public ItemAndChildrenCriteria(int? itemID, int? parentID) + { + _ItemID = itemID; + _ParentID = parentID; + } + private int? _ItemID; + public int? ItemID + { + get { return _ItemID; } + set { _ItemID = value; } + } + private int? _ParentID; + public int? ParentID + { + get { return _ParentID; } + set { _ParentID = value; } + } + } + // Data Portal to Get Item and Children + private void DataPortal_Fetch(ItemAndChildrenCriteria criteria) + { + //ItemInfo tmp = null; + Dictionary lookup = new Dictionary(); ; + try + { + using (SqlConnection cn = Database.VEPROMS_SqlConnection) + { + using (SqlCommand cm = cn.CreateCommand()) + { + cm.CommandType = CommandType.StoredProcedure; + cm.CommandText = "vesp_ListItemAndChildren"; + cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); + cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); + using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) + { + while (dr.Read()) + { + if (dr.GetInt32("Level")==0) + { + //tmp = itemInfo; + ReadData(dr); + AddContent(dr); + lookup[this.ItemID] = this; + } + else + { + ItemInfo itemInfo = null; + int itemType = dr.GetInt32("Type") / 10000; + switch (itemType) + { + case 0: + itemInfo = new ProcedureInfo(dr); + break; + case 1: + itemInfo = new SectionInfo(dr); + break; + case 2: + itemInfo = new StepInfo(dr); + break; + } + // Load Children + itemInfo.AddContent(dr); + ItemInfo parent = lookup[dr.GetInt32("ParentID")]; + itemInfo._ActiveParent = parent; + itemInfo._ActiveSection = (itemInfo.IsSection ? itemInfo : parent._ActiveSection); + parent.AddPart(dr, itemInfo); + lookup.Add(itemInfo.ItemID, itemInfo); + } + } + //Console.WriteLine("I'm here {0}",this.MyContent.ContentPartCount); + } + } + } + } + catch (Exception ex) + { + Database.LogException("ItemInfoList.DataPortal_Fetch", ex); + throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); + } + } + private void AddPart(SafeDataReader dr, ItemInfo itemInfo) + { + // Either a new PartInfo or an existing PartInfo + if (dr.IsDBNull(dr.GetOrdinal("PreviousID"))) + { + //PartInfo prt = new PartInfo(dr, itemInfo); + _MyContent.AddPart(dr, itemInfo); + } + else + { + foreach (PartInfo pi in MyContent.ContentParts) + { + if (dr.GetInt32("FromType") == (int)pi.PartType) + { + if (pi._MyItems == null) + pi._MyItems = new ItemInfoList(itemInfo); + else + pi.MyItems.AddItem(itemInfo); + } + } + } + } + #endregion public bool IsType(string type) { int stepType = ((int)MyContent.Type) % 10000; @@ -188,7 +387,8 @@ namespace VEPROMS.CSLA.Library { // check to see if ActiveParent is a section, if so it is a high level step if (MyContent.Type / 10000 != 2) return false; - ItemInfo parent = (ItemInfo)ActiveParent; + ItemInfo parent = ActiveParent as ItemInfo; + if (parent == null) return false; if ((parent.MyContent.Type / 10000) == 1) return true; return false; @@ -215,7 +415,9 @@ namespace VEPROMS.CSLA.Library { if (IsHigh) return false; if (IsRNO) return true; - return ((ItemInfo)ActiveParent).IsInRNO; + ItemInfo parent = ActiveParent as ItemInfo; + if (parent == null) return false; + return parent.IsInRNO; } } public ItemInfo FirstSibling @@ -241,7 +443,9 @@ namespace VEPROMS.CSLA.Library { if (IsHigh) return false; if (IsSubStep) return true; - return ((ItemInfo)ActiveParent).IsInSubStep; + ItemInfo parent = ActiveParent as ItemInfo; + if (parent == null) return false; + return parent.IsInSubStep; } } public bool IsInFirstLevelSubStep @@ -249,6 +453,7 @@ namespace VEPROMS.CSLA.Library get { ItemInfo temp = FirstSibling; + if(temp.ActiveParent.GetType() == typeof(VEPROMS.CSLA.Library.DocVersionInfo))return false; while (((ItemInfo)temp.ActiveParent).IsHigh == false) temp = ((ItemInfo)temp.ActiveParent).FirstSibling; return temp.IsSubStep; } @@ -334,12 +539,14 @@ namespace VEPROMS.CSLA.Library { get { - //int retval = 1; - //for (ItemInfo ii = MyParent; ii != null; ii = ii.MyParent) retval++; - //return retval; - //if (_Ordinal != null) return (int)_Ordinal; // Cache Ordinal - if (MyPrevious != null) return (int)(_Ordinal = MyPrevious.Ordinal + 1); - return (int)(_Ordinal = 1); + if (_Ordinal == null) + { + if (MyPrevious != null) + _Ordinal = MyPrevious.Ordinal + 1; + else + _Ordinal = 1; + } + return (int) _Ordinal; } } public string CslaType @@ -352,7 +559,7 @@ namespace VEPROMS.CSLA.Library ContentInfo cont = MyContent; string number = cont.Number; if (cont.Type >= 20000) number = Ordinal.ToString() + "."; - return string.Format("{0} {1}", number, cont.Text); + return string.Format("{0} {1}", number, cont.Text).Trim(); //return string.Format("{0} {1}", cont.Number, cont.Text); //return "Now is the time for all good men to come to the aid of their country!"; } @@ -544,6 +751,7 @@ namespace VEPROMS.CSLA.Library } } private IVEDrillDownReadOnly _ActiveParent = null; + public IVEDrillDownReadOnly MyActiveParent { get { return _ActiveParent; } } public IVEDrillDownReadOnly ActiveParent { get @@ -568,14 +776,36 @@ namespace VEPROMS.CSLA.Library } return _ActiveParent==this ? null : _ActiveParent; } - //get - //{ - // if (MyPrevious != null) return _MyPrevious.ActiveParent; - // if (ItemDocVersionCount > 0) return ItemDocVersions[0]; - // ContentInfo parentContent = ParentContent; - // if (parentContent == null || parentContent.ContentItemCount == 0) return null; - // return parentContent.ContentItems[0]; - //} + internal set + { + _ActiveParent = value; + } + } + private ItemInfo _ActiveSection = null; + public ItemInfo MyActiveSection { get { return _ActiveSection; } } + public ItemInfo ActiveSection + { + get + { + if (_ActiveSection == null) + { + if (IsSection) + _ActiveSection = this; + else + { + ItemInfo parent = ActiveParent as ItemInfo; + if (parent != null) + _ActiveSection = parent.ActiveSection; + else + _ActiveSection = this; + } + } + return _ActiveSection.IsSection ? _ActiveSection : null; + } + set + { + _ActiveSection = value; + } } private FormatInfo _ActiveFormat = null; public FormatInfo ActiveFormat @@ -619,6 +849,24 @@ namespace VEPROMS.CSLA.Library public Color BackColor { get { return (ItemAnnotationCount > 0 ? Color.Yellow : Color.White); } } #endregion + internal ItemInfo(SafeDataReader dr, bool forItem) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.Constructor", GetHashCode()); + try + { + ReadData(dr); + AddContent(dr); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.Constructor", ex); + throw new DbCslaException("ItemInfo.Constructor", ex); + } + } + private void AddContent(SafeDataReader dr) + { + _MyContent = new ContentInfo(dr, true); + } } #endregion ItemInfo #region ItemInfoList @@ -631,6 +879,10 @@ namespace VEPROMS.CSLA.Library // itemInfo.ToXml(xn); // } //} + internal ItemInfoList(ItemInfo itemInfo) + { + AddItem(itemInfo); + } public static ItemInfoList GetList(int? itemID,int type) { try @@ -638,7 +890,9 @@ namespace VEPROMS.CSLA.Library ItemInfoList tmp = DataPortal.Fetch(new ItemListCriteria(itemID,type)); ItemInfo.AddList(tmp); tmp.AddEvents(); - ContentInfoList.GetList(itemID); +#if (!ItemWithContent) // If ItemWithContent is set, the content is returned with the ItemInfoList + ContentInfoList.GetList(itemID); // Performance - Load All Content +#endif return tmp; } catch (Exception ex) @@ -677,11 +931,14 @@ namespace VEPROMS.CSLA.Library using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; +#if ItemWithContent + cm.CommandText = "vesp_ListItemsAndContent"; +#else cm.CommandText = "vesp_ListItems"; +#endif cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { - IsReadOnly = false; while (dr.Read()) { ItemInfo itemInfo = null; @@ -697,9 +954,10 @@ namespace VEPROMS.CSLA.Library itemInfo = new StepInfo(dr); break; } + IsReadOnly = false; this.Add(itemInfo); + IsReadOnly = true; } - IsReadOnly = true; } } } @@ -711,13 +969,23 @@ namespace VEPROMS.CSLA.Library } this.RaiseListChangedEvents = true; } + internal void AddItem(ItemInfo itemInfo) + { + IsReadOnly = false; + this.Add(itemInfo); + IsReadOnly = true; + } } #endregion #region ProcedureInfo [Serializable()] public partial class ProcedureInfo : ItemInfo, IVEDrillDownReadOnly { +#if ItemWithContent + public ProcedureInfo(SafeDataReader dr) : base(dr, true) { } +#else public ProcedureInfo(SafeDataReader dr) : base(dr) { } +#endif public new Procedure Get() { return (Procedure) (_Editable = Procedure.Get(ItemID)); @@ -788,7 +1056,11 @@ namespace VEPROMS.CSLA.Library [Serializable()] public partial class SectionInfo : ItemInfo, IVEDrillDownReadOnly { +#if ItemWithContent + public SectionInfo(SafeDataReader dr) : base(dr, true) { } +#else public SectionInfo(SafeDataReader dr) : base(dr) { } +#endif public new Section Get() { return (Section)(_Editable = Section.Get(ItemID)); @@ -865,7 +1137,11 @@ namespace VEPROMS.CSLA.Library //{ // return "Step " + base.ToString(); //} +#if ItemWithContent + public StepInfo(SafeDataReader dr) : base(dr, true) { } +#else public StepInfo(SafeDataReader dr) : base(dr) { } +#endif public new Step Get() { return (Step)(_Editable = Step.Get(ItemID)); diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/PartExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/PartExt.cs index 38b8abaf..077beab4 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/PartExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/PartExt.cs @@ -27,8 +27,54 @@ namespace VEPROMS.CSLA.Library return string.Format("{0} {1}", MyItem.MyContent.Number, MyItem.MyContent.Text); } } + public partial class PartInfoList + { + internal PartInfoList(SafeDataReader dr, ItemInfo itemInfo) + { + AddPartInfo(dr,itemInfo); + } + internal void AddPartInfo(SafeDataReader dr, ItemInfo itemInfo) + { + IsReadOnly = false; + this.Add(new PartInfo(dr, itemInfo)); + IsReadOnly = true; + } + } public partial class PartInfo : IVEDrillDownReadOnly { + internal PartInfo(SafeDataReader dr, ItemInfo itemInfo) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfo.Constructor", GetHashCode()); + try + { + ReadData(dr, itemInfo); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("PartInfo.Constructor", ex); + throw new DbCslaException("PartInfo.Constructor", ex); + } + } + private void ReadData(SafeDataReader dr, ItemInfo itemInfo) + { + if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfo.ReadData", GetHashCode()); + try + { + _ContentID = dr.GetInt32("pContentID"); + _FromType = dr.GetInt32("FromType"); + _ItemID = dr.GetInt32("ItemID"); + _DTS = dr.GetDateTime("pDTS"); + _UserID = dr.GetString("pUserID"); + _MyItem = itemInfo; + _MyItems = new ItemInfoList(itemInfo); + } + catch (Exception ex) + { + if (_MyLog.IsErrorEnabled) _MyLog.Error("PartInfo.ReadData", ex); + _ErrorMessage = ex.Message; + throw new DbCslaException("PartInfo.ReadData", ex); + } + } public E_FromType PartType { get { return (E_FromType)_FromType; } } public E_FromTypes PartTypes @@ -44,7 +90,7 @@ namespace VEPROMS.CSLA.Library #region IVEDrillDownReadOnly public ItemInfoList _MyItems; public ItemInfoList MyItems - { get { return (_MyItems != null? _MyItems : _MyItems = ItemInfoList.GetList(_ItemID,_FromType)); } } + { get { return (_MyItems != null ? _MyItems : _MyItems = ItemInfoList.GetList(_ItemID, _FromType)); } } public System.Collections.IList GetChildren() { return (_MyItems != null ? _MyItems : _MyItems = ItemInfoList.GetList(_ItemID, _FromType)); @@ -82,12 +128,12 @@ namespace VEPROMS.CSLA.Library //{ return false; } #endregion } - public enum E_FromType : int - { - Procedure = 1, Section = 2, Caution = 3, Note = 4, RNO = 5, Step = 6, Table = 7 - } - public enum E_FromTypes : int - { - Procedures = 1, Sections = 2, Cautions = 3, Notes = 4, RNOs = 5, Steps = 6, Tables = 7 - } + public enum E_FromType : int + { + Procedure = 1, Section = 2, Caution = 3, Note = 4, RNO = 5, Step = 6, Table = 7 + } + public enum E_FromTypes : int + { + Procedures = 1, Sections = 2, Cautions = 3, Notes = 4, RNOs = 5, Steps = 6, Tables = 7 + } } diff --git a/PROMS/Volian.Controls.Library/DSOTabPanel.cs b/PROMS/Volian.Controls.Library/DSOTabPanel.cs index 5d085b51..2284a853 100644 --- a/PROMS/Volian.Controls.Library/DSOTabPanel.cs +++ b/PROMS/Volian.Controls.Library/DSOTabPanel.cs @@ -119,12 +119,40 @@ namespace Volian.Controls.Library // this._MyDSOFramer.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow; this._MyDSOFramer.BeforeDocumentClosed += new AxDSOFramer._DFramerCtlEvents_BeforeDocumentClosedEventHandler(_MyDSOFramer_BeforeDocumentClosed); this._MyDSOFramer.OnSaveCompleted += new AxDSOFramer._DFramerCtlEvents_OnSaveCompletedEventHandler(_MyDSOFramer_OnSaveCompleted); + //this._MyDSOFramer.LostFocus += new EventHandler(_MyDSOFramer_LostFocus); + //this._MyDSOFramer.GotFocus += new EventHandler(_MyDSOFramer_GotFocus); + //this._MyDSOFramer.Enter += new EventHandler(_MyDSOFramer_Enter); + //this._MyDSOFramer.Leave += new EventHandler(_MyDSOFramer_Leave); //this._MyDSOFramer.OnActivationChange += new AxDSOFramer._DFramerCtlEvents_OnActivationChangeEventHandler(_MyDSOFramer_OnActivationChange); this.Enter += new EventHandler(DSOTabPanel_Enter); this.Leave += new EventHandler(DSOTabPanel_Leave); //this.GotFocus += new EventHandler(DSOTabPanel_GotFocus); //this.LostFocus += new EventHandler(DSOTabPanel_LostFocus); } + + //void _MyDSOFramer_Leave(object sender, EventArgs e) + //{ + // vlnStackTrace.ShowStack("DSO Leave {0}", this.MyDocumentInfo.DocID); + //} + + //void _MyDSOFramer_Enter(object sender, EventArgs e) + //{ + // vlnStackTrace.ShowStack("DSO Enter {0}", this.MyDocumentInfo.DocID); + //} + + //void _MyDSOFramer_GotFocus(object sender, EventArgs e) + //{ + // vlnStackTrace.ShowStack("DSO Got Focus {0}",this.MyDocumentInfo.DocID); + //} + + //void _MyDSOFramer_LostFocus(object sender, EventArgs e) + //{ + // vlnStackTrace.ShowStack("DSO Lost Focus {0}", this.MyDocumentInfo.DocID); + //} + public void EnterPanel() + { + DSOTabPanel_Enter(this, new EventArgs()); + } //void DSOTabPanel_LostFocus(object sender, EventArgs e) //{ // vlnStackTrace.ShowStack("DSOTabPanel_LostFocus {0} DocID {1} Index {2} {3}", _In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); @@ -189,7 +217,7 @@ namespace Volian.Controls.Library /// /// /// - void DSOTabPanel_Enter(object sender, EventArgs e) + private void DSOTabPanel_Enter(object sender, EventArgs e) { if (IgnoreEnter) return; _MyTransparentPanel.SendToBack(); @@ -203,7 +231,7 @@ namespace Volian.Controls.Library if (_MyLog.IsErrorEnabled) _MyLog.ErrorFormat("DSOTabPage_Enter", ex); } if (_In_DSOTabPanel_Enter) return; - vlnStackTrace.ShowStack("DSOTabPanel_Enter {0} DocID {1} Index {2} {3}",_In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); + //vlnStackTrace.ShowStack("DSOTabPanel_Enter {0} DocID {1} Index {2} {3}",_In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); _In_DSOTabPanel_Enter = true; _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyDisplayTabItem.MyItemInfo)); _MyDSOFramer.Focus(); diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 2da28c2a..a3f15366 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -207,11 +207,15 @@ namespace Volian.Controls.Library Bar bar = sender as Bar; if (bar != null) { - if(dotNetBarManager1.Bars.Contains(bar.Name)) + if (dotNetBarManager1.Bars.Contains(bar.Name)) dotNetBarManager1.Bars.Remove(bar); ActivateRemainingTab(); } } + else + { + ActivateRemainingTab((Bar)sender); + } } #endregion #region Public Methods @@ -243,15 +247,32 @@ namespace Volian.Controls.Library { if (myBar.DockSide == eDockSide.Document && myBar.Visible) { - if (myBar.SelectedDockContainerItem != null) - { - myBar.SelectedDockContainerItem.Selected = true; - } + ActivateRemainingTab(myBar); } } // No Document Tabs Remaining - need to raise OnItemSelectedChanged OnItemSelectedChanged(this, null); } + private DisplayTabItem FindRemainingTab(Bar myBar) + { + foreach (DisplayTabItem itm in myBar.Items) + { + if (!_RemovedDisplayTabItems.Contains(itm)) return itm; + } + return null; + } + private void ActivateRemainingTab(Bar myBar) + { + if (myBar.SelectedDockContainerItem != null) + { + if (_RemovedDisplayTabItems.Contains(myBar.SelectedDockContainerItem as DisplayTabItem)) + myBar.SelectedDockContainerItem = FindRemainingTab(myBar); + myBar.SelectedDockContainerItem.Selected = true; + StepTabPanel pnl = myBar.SelectedDockContainerItem.Control as StepTabPanel; + if (pnl != null) + pnl.MyStepPanel.ItemShow(); + } + } #endregion #region Public Properties public DevComponents.DotNetBar.Bar MyBar @@ -363,6 +384,7 @@ namespace Volian.Controls.Library _MyDisplayTabItems.Add(key, pg); } SelectedDisplayTabItem = pg; + pg.MyDSOTabPanel.EnterPanel(); return pg; } /// diff --git a/PROMS/Volian.Controls.Library/DisplayTabItem.cs b/PROMS/Volian.Controls.Library/DisplayTabItem.cs index e6085fe5..eaac1400 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabItem.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabItem.cs @@ -69,12 +69,46 @@ namespace Volian.Controls.Library container.Add(this); InitializeComponent(); this.Click += new EventHandler(DisplayTabItem_Click); + //this.GotFocus += new EventHandler(DisplayTabItem_GotFocus); + //this.LostFocus += new EventHandler(DisplayTabItem_LostFocus); + //this.MouseDown += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseDown); + //this.MouseUp += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseUp); if (myItemInfo.MyContent.MyEntry == null) SetupStepTabPanel(); else SetupDSOTabPanel(); Name = string.Format("DisplayTabItem {0}", myItemInfo.ItemID); } + protected override void OnDisplayedChanged() + { + //Console.WriteLine("=>=>=>=> OnDisplayedChanged"); + if(_MyStepTabPanel != null) + _MyStepTabPanel.MyStepPanel.DisplayItemChanging = true; + base.OnDisplayedChanged(); + if(_MyStepTabPanel != null) + _MyStepTabPanel.MyStepPanel.DisplayItemChanging = false; + //Console.WriteLine("<=<=<=<= OnDisplayedChanged"); + } + + //void DisplayTabItem_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) + //{ + // Console.WriteLine("DisplayTabItem_MouseUp"); + //} + + //void DisplayTabItem_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) + //{ + // Console.WriteLine("DisplayTabItem_MouseDown"); + //} + + //void DisplayTabItem_LostFocus(object sender, EventArgs e) + //{ + // Console.WriteLine("DisplayTabItem_LostFocus"); + //} + + //void DisplayTabItem_GotFocus(object sender, EventArgs e) + //{ + // Console.WriteLine("DisplayTabItem_GotFocus"); + //} #endregion #region Event Handlers /// @@ -89,6 +123,7 @@ namespace Volian.Controls.Library if(myTabItem == null)return; StepTabPanel myTabPanel = myTabItem.MyStepTabPanel as StepTabPanel; if(myTabPanel == null) return; + if (MyStepTabPanel.SelectedStepItem == null) return; _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyStepTabPanel.SelectedStepItem)); } #endregion @@ -111,6 +146,7 @@ namespace Volian.Controls.Library // _MyDisplayTabControl.Controls.Add(_MyStepTabPanel); _MyDisplayTabControl.MyBar.Items.Add(this); + _MyDisplayTabControl.MyBar.Width = 300; // This triggers the bar to resize itself // // tabPanel // @@ -148,12 +184,12 @@ namespace Volian.Controls.Library // //Console.WriteLine("Enabled = true {0}", Name); //_MyDisplayTabControl.MyBar.Enabled = true; - Console.WriteLine("SelectedDisplayTabItem {0}", Name); + //Console.WriteLine("SelectedDisplayTabItem {0}", Name); _MyDisplayTabControl.SelectedDisplayTabItem = this; - Console.WriteLine("MyDisplayTabItem {0}", Name); + //Console.WriteLine("MyDisplayTabItem {0}", Name); _MyDSOTabPanel.MyDisplayTabItem = this; DSOTabPanel.IgnoreEnter = false; - _MyDisplayTabControl.OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(MyItemInfo)); + //_MyDisplayTabControl.OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(MyItemInfo)); } #endregion } diff --git a/PROMS/Volian.Controls.Library/StepItem.cs b/PROMS/Volian.Controls.Library/StepItem.cs index e62cc228..7422a711 100644 --- a/PROMS/Volian.Controls.Library/StepItem.cs +++ b/PROMS/Volian.Controls.Library/StepItem.cs @@ -897,6 +897,8 @@ namespace Volian.Controls.Library /// private void _StepRTB_Enter(object sender, EventArgs e) { + if (_MyStepPanel.DisplayItemChanging) return; + //vlnStackTrace.ShowStack("_StepRTB_Enter {0}",this.MyID); _MyStepPanel.SelectedStepRTB = _MyStepRTB; } /// diff --git a/PROMS/Volian.Controls.Library/StepPanel.cs b/PROMS/Volian.Controls.Library/StepPanel.cs index 203dc238..2fcb431b 100644 --- a/PROMS/Volian.Controls.Library/StepPanel.cs +++ b/PROMS/Volian.Controls.Library/StepPanel.cs @@ -303,6 +303,7 @@ namespace Volian.Controls.Library get { return _SelectedItemInfo; } set { + //vlnStackTrace.ShowStack("SelectedItemInfo {0} => {1}",_SelectedItemInfo, value); _SelectedItemInfo = value; int id = value.ItemID; ExpandAsNeeded(value); @@ -312,6 +313,12 @@ namespace Volian.Controls.Library //vlnStackTrace.ShowStack("_ItemSelected = {0}", _ItemSelected.ItemID);// Show StackTrace } } + private bool _DisplayItemChanging = false; + public bool DisplayItemChanging + { + get { return _DisplayItemChanging; } + set { _DisplayItemChanging = value; } + } /// /// Returns the SelectedStepItem /// @@ -325,7 +332,14 @@ namespace Volian.Controls.Library public void ItemShow() { if (_SelectedItemInfo != null) + { SelectedStepItem.ItemShow(); + OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(SelectedStepItem)); + } + } + public void MouseWheel(MouseEventArgs e) + { + base.OnMouseWheel(e); } /// /// Used to track movement other than scrolling diff --git a/PROMS/Volian.Controls.Library/StepRTB.cs b/PROMS/Volian.Controls.Library/StepRTB.cs index b75ae448..11bdd2e3 100644 --- a/PROMS/Volian.Controls.Library/StepRTB.cs +++ b/PROMS/Volian.Controls.Library/StepRTB.cs @@ -159,7 +159,7 @@ namespace Volian.Controls.Library /// int tbindx - tab index /// E_EditPrintMode ep_mode - edit or print. /// E_ViewMode vw_mode - view or edit. - /// + /// public StepRTB() { InitializeComponent(); @@ -172,6 +172,11 @@ namespace Volian.Controls.Library _Container = container; SetUp(); } + protected override void OnMouseWheel(MouseEventArgs e) + { + _MyStepItem.MyStepPanel.MouseWheel(e); + //base.OnMouseWheel(e); + } private void SetUp() { BorderStyle = System.Windows.Forms.BorderStyle.None; diff --git a/PROMS/Volian.Controls.Library/StepTabPanel.cs b/PROMS/Volian.Controls.Library/StepTabPanel.cs index 1e6a8cf6..83ac3f4b 100644 --- a/PROMS/Volian.Controls.Library/StepTabPanel.cs +++ b/PROMS/Volian.Controls.Library/StepTabPanel.cs @@ -124,6 +124,12 @@ namespace Volian.Controls.Library } #endregion #region Event Handlers + private bool _ShowingItem = false; + public bool ShowingItem + { + get { return _ShowingItem; } + set { _ShowingItem = value; } + } /// /// Occurs when the user clicks on a StepTabPanel /// @@ -131,9 +137,12 @@ namespace Volian.Controls.Library /// private void StepTabPanel_Enter(object sender, EventArgs e) { + if (_ShowingItem) return; + _ShowingItem = true; //if (ItemSelected != null) - _MyStepPanel.ItemShow(); - } + _MyStepPanel.ItemShow(); + _ShowingItem = false; + } /// /// Occurs when the cursor moves onto or off of a link ///