From c1d9cc573d0ca8a276c5145ed859ffe56d3fde0e Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Tue, 14 Mar 2023 11:33:00 +0100 Subject: [PATCH] 14-03-2023 --- ReportViewer/Config.cs | 10 ++-- ReportViewer/ReportData.cs | 8 +++ ReportViewer/ReportDataLoader.cs | 72 +++++++++---------------- ReportViewer/ReportTemplate.Designer.cs | 53 ++++++++++++++---- ReportViewer/frmMain.Designer.cs | 46 ++++++++++++---- ReportViewer/frmMain.cs | 12 +++++ ReportViewer/frmMain.resx | 34 ++++++++++++ 7 files changed, 164 insertions(+), 71 deletions(-) diff --git a/ReportViewer/Config.cs b/ReportViewer/Config.cs index 4606a7e..cf220aa 100644 --- a/ReportViewer/Config.cs +++ b/ReportViewer/Config.cs @@ -21,7 +21,8 @@ namespace ReportViewer Name = "Sample Provider GmbH", Street = "Sample Street 123", ZipCode = "12345", - City = "Sample City" + City = "Sample City", + TransportMethod = 0 }, new ServiceProvider() { @@ -30,7 +31,8 @@ namespace ReportViewer Name = "GLS Germany", Street = "", ZipCode = "", - City = "" + City = "", + TransportMethod = 3 }, new ServiceProvider() { @@ -39,7 +41,8 @@ namespace ReportViewer Name = "Hellmold & Plank GmbH & Co KG", Street = "Europastr. 9-11", ZipCode = "35394", - City = "Gießen" + City = "Gießen", + TransportMethod = 2 }, }; @@ -60,6 +63,7 @@ namespace ReportViewer public string Street { get; set; } public string ZipCode { get; set; } public string City { get; set; } + public int TransportMethod { get; set; } } } } diff --git a/ReportViewer/ReportData.cs b/ReportViewer/ReportData.cs index f3918c8..7407c8b 100644 --- a/ReportViewer/ReportData.cs +++ b/ReportViewer/ReportData.cs @@ -17,6 +17,7 @@ namespace ReportViewer public string OrderNumber { get; set; } public DateTime OrderDate { get; set; } + public int DeliveryMethod { get; set; } public string DeliveryNotes { get; set; } public string ShipmentIdentifiers { get; set; } @@ -64,6 +65,13 @@ namespace ReportViewer public HeadData Head { get; set; } } + public enum TransportMeans + { + None = 0, + Hauler = 2, // Spedition + ParcelDelivery = 3 // Paketdienstleister + } + public class HeadData { public string Title { get; set; } diff --git a/ReportViewer/ReportDataLoader.cs b/ReportViewer/ReportDataLoader.cs index 0393d2a..c352bd0 100644 --- a/ReportViewer/ReportDataLoader.cs +++ b/ReportViewer/ReportDataLoader.cs @@ -21,6 +21,8 @@ namespace ReportViewer private DocumentViewer _documentViewer; private MSSQLServer _database; + public int OrdersLoaded = 0; + public ReportDataLoader(LogConfig logConfig, Config config, MSSQLServer database, DocumentViewer documentViewer) { _logConfig = logConfig; @@ -32,10 +34,16 @@ namespace ReportViewer public void Load(DateTime? date, Config.ServiceProvider provider) { - var orders = LoadFromDatabase(date, provider).Where(o => o.ShipmentIdentifiers.Length > 0).ToList(); - var data = new ReportData { Orders = orders }; + var orders = LoadFromDatabase(date, provider). + Where(o => o.ShipmentIdentifiers.Length > 0). + Where(o => provider.TransportMethod == 0 || provider.TransportMethod == o.DeliveryMethod). + ToList(); + + OrdersLoaded = orders.Count; - LoadIntoViewer(data); + LoadIntoViewer(new ReportData { + Orders = orders + }); } public void Print() @@ -52,10 +60,16 @@ namespace ReportViewer private void LoadIntoViewer(ReportData data) { - var report = new ReportTemplate() { DataSource = data, DataMember = "Orders" }; - report.CreateDocument(false); + if (data.Orders.Count == 0) + { + _documentViewer.DocumentSource = null; + } else + { + var report = new ReportTemplate() { DataSource = data, DataMember = "Orders" }; + report.CreateDocument(false); - _documentViewer.DocumentSource = report; + _documentViewer.DocumentSource = report; + } } public class PackagingInfo @@ -132,7 +146,7 @@ namespace ReportViewer } } - private SqlCommand GetSQL(DateTime? date) + private static SqlCommand GetSQLCommand(DateTime? date) { var cmd = new SqlCommand(); var baseSQL = "SELECT " + @@ -143,13 +157,14 @@ namespace ReportViewer "c017, " + "c029, " + "c044, " + + "c089, " + "c154, " + "STRING_AGG(c045, ', ') AS c045, " + "STRING_AGG(u047, CHAR(13)) AS u047 " + "FROM t025 " + "WHERE c044 IS NOT NULL AND c045 IS NOT NULL AND U047 IS NOT NULL " + "AND NOT (c023 = 'L' AND c024 = 'L' AND c025 = 'L' AND c026 = 'L')" + - "GROUP BY c010, c012, c013, c014, c017, c029, c044, c154"; + "GROUP BY c010, c012, c013, c014, c017, c029, c044, c089, c154"; if (date != null) { @@ -170,7 +185,7 @@ namespace ReportViewer try { - var sqlCommand = GetSQL(date); + var sqlCommand = GetSQLCommand(date); var table = _database.GetDatatable(sqlCommand); var position = 1; @@ -190,6 +205,7 @@ namespace ReportViewer WeightUnit = "kg", ShipmentIdentifiers = identifiers, Loadings = loadings, + DeliveryMethod = row.ItemEx("c089", 0), DeliveryNotes = row.ItemEx("c045", ""), InformationForDriver = row.ItemEx("u046", ""), InformationForDeliveryNotice = row.ItemEx("u048", ""), @@ -223,44 +239,6 @@ namespace ReportViewer } return orders; - - //return new List() - //{ - // new ReportData.Order() - // { - // Id = 1, - // OrderDate = DateTime.Now, - // OrderNumber = "SchaumGLS37564", - // WeightAmount = 17.4, - // WeightUnit = "kg", - // ShipmentIdentifiers = "9378556904370895740985", - // Receiver = new ReportData.Receiver() - // { - // Name = "Ernst Stein GmbH & Co. KG", - // Street = "Herrbert von Ingenhausenweg 21", - // City = "Hemer - Westig", - // Zip = "12345", - // Country = "D" - // } - // }, - // new ReportData.Order() - // { - // Id = 1, - // OrderDate = DateTime.Now, - // OrderNumber = "SchaumGLS37564", - // WeightAmount = 17.4, - // WeightUnit = "kg", - // ShipmentIdentifiers = "9378556904370895740985", - // Receiver = new ReportData.Receiver() - // { - // Name = "Ernst Stein GmbH & Co. KG", - // Street = "Herrbert von Ingenhausenweg 21", - // City = "Hemer - Westig", - // Zip = "12345", - // Country = "D" - // } - // } - //}; } } } diff --git a/ReportViewer/ReportTemplate.Designer.cs b/ReportViewer/ReportTemplate.Designer.cs index b0c19ec..631bea9 100644 --- a/ReportViewer/ReportTemplate.Designer.cs +++ b/ReportViewer/ReportTemplate.Designer.cs @@ -89,6 +89,8 @@ this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel(); this.xrPageInfo1 = new DevExpress.XtraReports.UI.XRPageInfo(); this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel43 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel44 = new DevExpress.XtraReports.UI.XRLabel(); ((System.ComponentModel.ISupportInitialize)(this.objectDataSource1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); // @@ -400,7 +402,7 @@ // xrLabel17 // this.xrLabel17.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 169.8753F); + this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 197.9512F); this.xrLabel17.Multiline = true; this.xrLabel17.Name = "xrLabel17"; this.xrLabel17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -411,7 +413,7 @@ // xrShape2 // this.xrShape2.FillColor = System.Drawing.Color.Gainsboro; - this.xrShape2.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 189.667F); + this.xrShape2.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 217.7412F); this.xrShape2.Name = "xrShape2"; this.xrShape2.Shape = shapeRectangle1; this.xrShape2.SizeF = new System.Drawing.SizeF(326.4583F, 48.25F); @@ -419,7 +421,7 @@ // xrShape1 // this.xrShape1.FillColor = System.Drawing.Color.Gainsboro; - this.xrShape1.LocationFloat = new DevExpress.Utils.PointFloat(663.5416F, 189.667F); + this.xrShape1.LocationFloat = new DevExpress.Utils.PointFloat(663.5416F, 217.7412F); this.xrShape1.Name = "xrShape1"; this.xrShape1.Shape = shapeRectangle2; this.xrShape1.SizeF = new System.Drawing.SizeF(326.4583F, 48.25F); @@ -427,7 +429,7 @@ // xrLabel7 // this.xrLabel7.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(663.5416F, 169.8753F); + this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(663.5416F, 197.9512F); this.xrLabel7.Multiline = true; this.xrLabel7.Name = "xrLabel7"; this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -453,6 +455,8 @@ // ReportFooter // this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel44, + this.xrLabel43, this.xrLabel38, this.xrLabel37, this.xrLabel36, @@ -468,7 +472,7 @@ this.xrShape2, this.xrLabel7, this.xrShape1}); - this.ReportFooter.HeightF = 247.917F; + this.ReportFooter.HeightF = 275.9912F; this.ReportFooter.KeepTogether = true; this.ReportFooter.Name = "ReportFooter"; this.ReportFooter.PageBreak = DevExpress.XtraReports.UI.PageBreak.AfterBandExceptLastEntry; @@ -477,7 +481,7 @@ // xrLabel38 // this.xrLabel38.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrLabel38.LocationFloat = new DevExpress.Utils.PointFloat(550F, 42.79194F); + this.xrLabel38.LocationFloat = new DevExpress.Utils.PointFloat(550F, 123.9962F); this.xrLabel38.Multiline = true; this.xrLabel38.Name = "xrLabel38"; this.xrLabel38.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -490,7 +494,7 @@ // xrLabel37 // this.xrLabel37.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrLabel37.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 42.79194F); + this.xrLabel37.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 123.9962F); this.xrLabel37.Multiline = true; this.xrLabel37.Name = "xrLabel37"; this.xrLabel37.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -503,7 +507,7 @@ // xrLabel36 // this.xrLabel36.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrLabel36.LocationFloat = new DevExpress.Utils.PointFloat(9.999927F, 116.747F); + this.xrLabel36.LocationFloat = new DevExpress.Utils.PointFloat(336.4583F, 157.3278F); this.xrLabel36.Multiline = true; this.xrLabel36.Name = "xrLabel36"; this.xrLabel36.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -516,7 +520,7 @@ // xrLabel11 // this.xrLabel11.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 76.12362F); + this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(9.999974F, 157.3278F); this.xrLabel11.Multiline = true; this.xrLabel11.Name = "xrLabel11"; this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -666,7 +670,8 @@ this.xrLabel25.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel25.SizeF = new System.Drawing.SizeF(295.8333F, 68.75001F); this.xrLabel25.StylePriority.UseFont = false; - this.xrLabel25.Text = "Schaumindustrievertretung GmbH\r\nRheinstraße 8\r\nD-35625 Hüttenberg - Hochelheim"; + this.xrLabel25.Text = "Schaum Industrievertretungen GmbH\r\nRheinstraße 8\r\nD-35625 Hüttenberg - Hochelheim" + + ""; // // xrLabel24 // @@ -780,6 +785,32 @@ this.xrLabel2.StylePriority.UseFont = false; this.xrLabel2.Text = "Bezeichnung"; // + // xrLabel43 + // + this.xrLabel43.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.xrLabel43.LocationFloat = new DevExpress.Utils.PointFloat(9.999965F, 29.79166F); + this.xrLabel43.Multiline = true; + this.xrLabel43.Name = "xrLabel43"; + this.xrLabel43.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel43.SizeF = new System.Drawing.SizeF(989.9999F, 33.33168F); + this.xrLabel43.StylePriority.UseFont = false; + this.xrLabel43.StylePriority.UseTextAlignment = false; + this.xrLabel43.Text = "Sämtliche Packstücke vollständig und äußerlich ohne erkennbare Mängel übernommen"; + this.xrLabel43.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // + // xrLabel44 + // + this.xrLabel44.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.xrLabel44.LocationFloat = new DevExpress.Utils.PointFloat(9.999965F, 63.12336F); + this.xrLabel44.Multiline = true; + this.xrLabel44.Name = "xrLabel44"; + this.xrLabel44.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel44.SizeF = new System.Drawing.SizeF(573.1019F, 60.87281F); + this.xrLabel44.StylePriority.UseFont = false; + this.xrLabel44.StylePriority.UseTextAlignment = false; + this.xrLabel44.Text = "Fehlmenge/Beschädigungen:\r\nLademittel:"; + this.xrLabel44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + // // ReportTemplate // this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { @@ -859,5 +890,7 @@ private DevExpress.XtraReports.UI.XRLabel xrLabel39; private DevExpress.XtraReports.UI.XRLabel xrLabel42; private DevExpress.XtraReports.UI.XRLabel xrLabel41; + private DevExpress.XtraReports.UI.XRLabel xrLabel44; + private DevExpress.XtraReports.UI.XRLabel xrLabel43; } } diff --git a/ReportViewer/frmMain.Designer.cs b/ReportViewer/frmMain.Designer.cs index c8f1fb7..9188e4a 100644 --- a/ReportViewer/frmMain.Designer.cs +++ b/ReportViewer/frmMain.Designer.cs @@ -37,6 +37,9 @@ barButtonItem2 = new DevExpress.XtraBars.BarButtonItem(); btnOpenLogDirectory = new DevExpress.XtraBars.BarButtonItem(); checkDebug = new DevExpress.XtraBars.BarCheckItem(); + barButtonItem3 = new DevExpress.XtraBars.BarButtonItem(); + txtOrdersLoaded = new DevExpress.XtraBars.BarStaticItem(); + txtNoOrdersLoaded = new DevExpress.XtraBars.BarStaticItem(); ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); ribbonPageGroup2 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); @@ -51,7 +54,6 @@ Root = new DevExpress.XtraLayout.LayoutControlGroup(); layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); documentViewer1 = new DevExpress.XtraPrinting.Preview.DocumentViewer(); - barButtonItem3 = new DevExpress.XtraBars.BarButtonItem(); ((System.ComponentModel.ISupportInitialize)ribbon).BeginInit(); sidePanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit(); @@ -65,9 +67,9 @@ // ribbon // ribbon.ExpandCollapseItem.Id = 0; - ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem, ribbon.SearchEditItem, barButtonItem1, checkHP, checkGLS, checkSample, barButtonItem2, btnOpenLogDirectory, checkDebug, barButtonItem3 }); + ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem, ribbon.SearchEditItem, barButtonItem1, checkHP, checkGLS, checkSample, barButtonItem2, btnOpenLogDirectory, checkDebug, barButtonItem3, txtOrdersLoaded, txtNoOrdersLoaded }); ribbon.Location = new Point(0, 0); - ribbon.MaxItemId = 9; + ribbon.MaxItemId = 11; ribbon.Name = "ribbon"; ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1, ribbonPage2 }); ribbon.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False; @@ -138,6 +140,32 @@ checkDebug.Name = "checkDebug"; checkDebug.CheckedChanged += checkDebug_CheckedChanged; // + // barButtonItem3 + // + barButtonItem3.Caption = "Konfigurations Verzeichnis öffnen"; + barButtonItem3.Id = 8; + barButtonItem3.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem3.ImageOptions.SvgImage"); + barButtonItem3.Name = "barButtonItem3"; + barButtonItem3.ItemClick += barButtonItem3_ItemClick; + // + // txtOrdersLoaded + // + txtOrdersLoaded.Caption = "{0} Aufträge geladen"; + txtOrdersLoaded.Id = 9; + txtOrdersLoaded.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barStaticItem1.ImageOptions.SvgImage"); + txtOrdersLoaded.Name = "txtOrdersLoaded"; + txtOrdersLoaded.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph; + txtOrdersLoaded.Tag = "{0} Aufträge geladen"; + txtOrdersLoaded.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // + // txtNoOrdersLoaded + // + txtNoOrdersLoaded.Caption = "Keine Aufträge gefunden!"; + txtNoOrdersLoaded.Id = 10; + txtNoOrdersLoaded.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barStaticItem2.ImageOptions.SvgImage"); + txtNoOrdersLoaded.Name = "txtNoOrdersLoaded"; + txtNoOrdersLoaded.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + // // ribbonPage1 // ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1, ribbonPageGroup2, ribbonPageGroup3 }); @@ -186,6 +214,8 @@ // // ribbonStatusBar // + ribbonStatusBar.ItemLinks.Add(txtOrdersLoaded); + ribbonStatusBar.ItemLinks.Add(txtNoOrdersLoaded); ribbonStatusBar.Location = new Point(0, 529); ribbonStatusBar.Name = "ribbonStatusBar"; ribbonStatusBar.Ribbon = ribbon; @@ -252,14 +282,6 @@ documentViewer1.Size = new Size(792, 371); documentViewer1.TabIndex = 3; // - // barButtonItem3 - // - barButtonItem3.Caption = "Konfigurations Verzeichnis öffnen"; - barButtonItem3.Id = 8; - barButtonItem3.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barButtonItem3.ImageOptions.SvgImage"); - barButtonItem3.Name = "barButtonItem3"; - barButtonItem3.ItemClick += barButtonItem3_ItemClick; - // // FrmMain // AutoScaleDimensions = new SizeF(6F, 13F); @@ -312,5 +334,7 @@ private DevExpress.XtraBars.BarCheckItem checkDebug; private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup5; private DevExpress.XtraBars.BarButtonItem barButtonItem3; + private DevExpress.XtraBars.BarStaticItem txtOrdersLoaded; + private DevExpress.XtraBars.BarStaticItem txtNoOrdersLoaded; } } \ No newline at end of file diff --git a/ReportViewer/frmMain.cs b/ReportViewer/frmMain.cs index 3b04a1d..9a2fc54 100644 --- a/ReportViewer/frmMain.cs +++ b/ReportViewer/frmMain.cs @@ -88,6 +88,18 @@ namespace ReportViewer loader.Load(date, provider); barButtonItem2.Enabled = true; + if (loader.OrdersLoaded == 0) + { + txtOrdersLoaded.Caption = string.Format((string)txtOrdersLoaded.Tag, loader.OrdersLoaded); + txtOrdersLoaded.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + txtNoOrdersLoaded.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; + } + else + { + txtOrdersLoaded.Caption = string.Format((string)txtOrdersLoaded.Tag, loader.OrdersLoaded); + txtOrdersLoaded.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; + txtNoOrdersLoaded.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + } } catch (Exception ex) { diff --git a/ReportViewer/frmMain.resx b/ReportViewer/frmMain.resx index 2eccc38..7f6d502 100644 --- a/ReportViewer/frmMain.resx +++ b/ReportViewer/frmMain.resx @@ -226,6 +226,40 @@ LjZsNC45LTguOUMzMC4xLDE2LjIsMjkuOCwxNiwyOS4zLDE2eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAg PHBhdGggZD0iTTI4LDhjMC0zLjMtMi43LTYtNi02cy02LDIuNy02LDZjMC0yLjIsMS44LTQsNC00czQs MS44LDQsNGgtNGw2LDZsNi02SDI4eiIgY2xhc3M9IkdyZWVuIiAvPg0KPC9zdmc+Cw== + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIyLjEsIFZlcnNpb249MjIuMS40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHICAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkNoZWNrQ2lyY2xlZCI+DQogICAgPHBhdGggZD0iTTE2 + LDRDOS40LDQsNCw5LjQsNCwxNmMwLDYuNiw1LjQsMTIsMTIsMTJzMTItNS40LDEyLTEyQzI4LDkuNCwy + Mi42LDQsMTYsNHogTTE0LDIybC02LTZsMi0ybDQsNGw4LThsMiwyICAgTDE0LDIyeiIgY2xhc3M9Ikdy + ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIyLjEsIFZlcnNpb249MjIuMS40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAPoBAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iQ2xlYXJIZWFkZXJBbmRGb290ZXIiIHN0eWxlPSJlbmFibGUtYmFja2dy + b3VuZDpuZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5SZWR7ZmlsbDoj + RDExQzFDO30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTI3LDRINUM0LjUsNCw0LDQuNSw0LDV2MjJjMCww + LjUsMC41LDEsMSwxaDIyYzAuNSwwLDEtMC41LDEtMVY1QzI4LDQuNSwyNy41LDQsMjcsNHogTTIyLDIw + bC0yLDJsLTQtNGwtNCw0ICBsLTItMmw0LTRsLTQtNGwyLTJsNCw0bDQtNGwyLDJsLTQsNEwyMiwyMHoi + IGNsYXNzPSJSZWQiIC8+DQo8L3N2Zz4L