diff --git a/DcConfig.cs b/DcConfig.cs index 8967054..fe28dee 100644 --- a/DcConfig.cs +++ b/DcConfig.cs @@ -176,6 +176,7 @@ namespace DutyContent Color.FromArgb(0xFF, 0x80, 0x40, 0x00), Color.FromArgb(0xFF, 0xDD, 0xA0, 0xDD), }; + public bool PingGraph { get; set; } // public bool EnableNotify => UseNotifyLine || UseNotifyTelegram; @@ -225,6 +226,7 @@ namespace DutyContent sw.WriteLine("DutyPingColor1={0:X}", PingColors[1].ToArgb()); sw.WriteLine("DutyPingColor2={0:X}", PingColors[2].ToArgb()); sw.WriteLine("DutyPingColor3={0:X}", PingColors[3].ToArgb()); + sw.WriteLine("DutyPingGraph={0}", PingGraph); sw.WriteLine(); } @@ -264,6 +266,7 @@ namespace DutyContent PingColors[1] = ThirdParty.Converter.ToColorArgb(db["DutyPingColor1"], PingColors[1]); PingColors[2] = ThirdParty.Converter.ToColorArgb(db["DutyPingColor2"], PingColors[2]); PingColors[3] = ThirdParty.Converter.ToColorArgb(db["DutyPingColor3"], PingColors[3]); + PingGraph = ThirdParty.Converter.ToBool(db["DutyPingGraph"]); } } diff --git a/DutyContent.csproj b/DutyContent.csproj index 9eb06ad..8a4a7fb 100644 --- a/DutyContent.csproj +++ b/DutyContent.csproj @@ -50,6 +50,7 @@ + @@ -94,6 +95,7 @@ DutyOvForm.cs + diff --git a/Resources/mesg.txt b/Resources/mesg.txt index a45534f..a1d23ff 100644 --- a/Resources/mesg.txt +++ b/Resources/mesg.txt @@ -69,6 +69,7 @@ LANG=English 331=Good 332=Normal 333=Bad +334=Show Graph 10001="{0}" spawned! 10002=Entry: {0} diff --git a/Tab/DutyForm.Designer.cs b/Tab/DutyForm.Designer.cs index b6e2daa..d88e9c5 100644 --- a/Tab/DutyForm.Designer.cs +++ b/Tab/DutyForm.Designer.cs @@ -30,27 +30,27 @@ namespace DutyContent.Tab private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(new string[] { + System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem(new string[] { "FATE", "", "", ""}, -1); - System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem(new string[] { + System.Windows.Forms.ListViewItem listViewItem7 = new System.Windows.Forms.ListViewItem(new string[] { "Duty", "", "", ""}, -1); - System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem(new string[] { + System.Windows.Forms.ListViewItem listViewItem8 = new System.Windows.Forms.ListViewItem(new string[] { "Match", "", "", ""}, -1); - System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem(new string[] { + System.Windows.Forms.ListViewItem listViewItem9 = new System.Windows.Forms.ListViewItem(new string[] { "Instance", "", "", ""}, -1); - System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem(new string[] { + System.Windows.Forms.ListViewItem listViewItem10 = new System.Windows.Forms.ListViewItem(new string[] { "Southern Bozja", "", "", @@ -101,14 +101,15 @@ namespace DutyContent.Tab this.chkEnableOverlay = new System.Windows.Forms.CheckBox(); this.tabPagePing = new System.Windows.Forms.TabPage(); this.panel6 = new System.Windows.Forms.Panel(); - this.btnPingColor2 = new System.Windows.Forms.Button(); - this.lblPingStat4 = new System.Windows.Forms.Label(); - this.lblPingStat2 = new System.Windows.Forms.Label(); - this.lblPingStat3 = new System.Windows.Forms.Label(); - this.btnPingColor4 = new System.Windows.Forms.Button(); - this.btnPingColor1 = new System.Windows.Forms.Button(); - this.btnPingColor3 = new System.Windows.Forms.Button(); + this.tlpnPingColors = new System.Windows.Forms.TableLayoutPanel(); this.lblPingStat1 = new System.Windows.Forms.Label(); + this.btnPingColor4 = new System.Windows.Forms.Button(); + this.btnPingColor2 = new System.Windows.Forms.Button(); + this.btnPingColor3 = new System.Windows.Forms.Button(); + this.lblPingStat2 = new System.Windows.Forms.Label(); + this.lblPingStat4 = new System.Windows.Forms.Label(); + this.btnPingColor1 = new System.Windows.Forms.Button(); + this.lblPingStat3 = new System.Windows.Forms.Label(); this.lblPingColors = new System.Windows.Forms.Label(); this.chkUsePing = new System.Windows.Forms.CheckBox(); this.tabPagePacket = new System.Windows.Forms.TabPage(); @@ -131,7 +132,8 @@ namespace DutyContent.Tab this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.lblPacketFinder = new System.Windows.Forms.Label(); this.ilTabContent = new System.Windows.Forms.ImageList(this.components); - this.tlpnPingColors = new System.Windows.Forms.TableLayoutPanel(); + this.chkPingGraph = new System.Windows.Forms.CheckBox(); + this.pbxPingGraph = new System.Windows.Forms.PictureBox(); this.tabContent.SuspendLayout(); this.tabPageContent.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); @@ -145,9 +147,10 @@ namespace DutyContent.Tab this.panel1.SuspendLayout(); this.tabPagePing.SuspendLayout(); this.panel6.SuspendLayout(); + this.tlpnPingColors.SuspendLayout(); this.tabPagePacket.SuspendLayout(); this.panel5.SuspendLayout(); - this.tlpnPingColors.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbxPingGraph)).BeginInit(); this.SuspendLayout(); // // tabContent @@ -679,6 +682,8 @@ namespace DutyContent.Tab this.panel6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel6.Controls.Add(this.pbxPingGraph); + this.panel6.Controls.Add(this.chkPingGraph); this.panel6.Controls.Add(this.tlpnPingColors); this.panel6.Controls.Add(this.lblPingColors); this.panel6.Controls.Add(this.chkUsePing); @@ -687,49 +692,40 @@ namespace DutyContent.Tab this.panel6.Size = new System.Drawing.Size(778, 353); this.panel6.TabIndex = 1; // - // btnPingColor2 + // tlpnPingColors // - this.btnPingColor2.BackColor = System.Drawing.Color.Aqua; - this.btnPingColor2.Dock = System.Windows.Forms.DockStyle.Fill; - this.btnPingColor2.Location = new System.Drawing.Point(97, 28); - this.btnPingColor2.Name = "btnPingColor2"; - this.btnPingColor2.Size = new System.Drawing.Size(85, 28); - this.btnPingColor2.TabIndex = 10; - this.btnPingColor2.UseVisualStyleBackColor = false; - this.btnPingColor2.Click += new System.EventHandler(this.BtnPingColor2_Click); + this.tlpnPingColors.ColumnCount = 4; + this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tlpnPingColors.Controls.Add(this.lblPingStat1, 0, 0); + this.tlpnPingColors.Controls.Add(this.btnPingColor4, 3, 1); + this.tlpnPingColors.Controls.Add(this.btnPingColor2, 1, 1); + this.tlpnPingColors.Controls.Add(this.btnPingColor3, 2, 1); + this.tlpnPingColors.Controls.Add(this.lblPingStat2, 1, 0); + this.tlpnPingColors.Controls.Add(this.lblPingStat4, 3, 0); + this.tlpnPingColors.Controls.Add(this.btnPingColor1, 0, 1); + this.tlpnPingColors.Controls.Add(this.lblPingStat3, 2, 0); + this.tlpnPingColors.Location = new System.Drawing.Point(129, 35); + this.tlpnPingColors.Name = "tlpnPingColors"; + this.tlpnPingColors.Padding = new System.Windows.Forms.Padding(3); + this.tlpnPingColors.RowCount = 2; + this.tlpnPingColors.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F)); + this.tlpnPingColors.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 60F)); + this.tlpnPingColors.Size = new System.Drawing.Size(371, 62); + this.tlpnPingColors.TabIndex = 11; // - // lblPingStat4 + // lblPingStat1 // - this.lblPingStat4.AutoSize = true; - this.lblPingStat4.Dock = System.Windows.Forms.DockStyle.Fill; - this.lblPingStat4.Location = new System.Drawing.Point(279, 3); - this.lblPingStat4.Name = "lblPingStat4"; - this.lblPingStat4.Size = new System.Drawing.Size(86, 22); - this.lblPingStat4.TabIndex = 3; - this.lblPingStat4.Text = "333"; - this.lblPingStat4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // lblPingStat2 - // - this.lblPingStat2.AutoSize = true; - this.lblPingStat2.Dock = System.Windows.Forms.DockStyle.Fill; - this.lblPingStat2.Location = new System.Drawing.Point(97, 3); - this.lblPingStat2.Name = "lblPingStat2"; - this.lblPingStat2.Size = new System.Drawing.Size(85, 22); - this.lblPingStat2.TabIndex = 5; - this.lblPingStat2.Text = "331"; - this.lblPingStat2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // lblPingStat3 - // - this.lblPingStat3.AutoSize = true; - this.lblPingStat3.Dock = System.Windows.Forms.DockStyle.Fill; - this.lblPingStat3.Location = new System.Drawing.Point(188, 3); - this.lblPingStat3.Name = "lblPingStat3"; - this.lblPingStat3.Size = new System.Drawing.Size(85, 22); - this.lblPingStat3.TabIndex = 4; - this.lblPingStat3.Text = "332"; - this.lblPingStat3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lblPingStat1.AutoSize = true; + this.lblPingStat1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblPingStat1.Location = new System.Drawing.Point(6, 3); + this.lblPingStat1.Name = "lblPingStat1"; + this.lblPingStat1.Size = new System.Drawing.Size(85, 22); + this.lblPingStat1.TabIndex = 6; + this.lblPingStat1.Text = "330"; + this.lblPingStat1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // btnPingColor4 // @@ -742,16 +738,16 @@ namespace DutyContent.Tab this.btnPingColor4.UseVisualStyleBackColor = false; this.btnPingColor4.Click += new System.EventHandler(this.BtnPingColor4_Click); // - // btnPingColor1 + // btnPingColor2 // - this.btnPingColor1.BackColor = System.Drawing.Color.RoyalBlue; - this.btnPingColor1.Dock = System.Windows.Forms.DockStyle.Fill; - this.btnPingColor1.Location = new System.Drawing.Point(6, 28); - this.btnPingColor1.Name = "btnPingColor1"; - this.btnPingColor1.Size = new System.Drawing.Size(85, 28); - this.btnPingColor1.TabIndex = 7; - this.btnPingColor1.UseVisualStyleBackColor = false; - this.btnPingColor1.Click += new System.EventHandler(this.BtnPingColor1_Click); + this.btnPingColor2.BackColor = System.Drawing.Color.Aqua; + this.btnPingColor2.Dock = System.Windows.Forms.DockStyle.Fill; + this.btnPingColor2.Location = new System.Drawing.Point(97, 28); + this.btnPingColor2.Name = "btnPingColor2"; + this.btnPingColor2.Size = new System.Drawing.Size(85, 28); + this.btnPingColor2.TabIndex = 10; + this.btnPingColor2.UseVisualStyleBackColor = false; + this.btnPingColor2.Click += new System.EventHandler(this.BtnPingColor2_Click); // // btnPingColor3 // @@ -764,16 +760,49 @@ namespace DutyContent.Tab this.btnPingColor3.UseVisualStyleBackColor = false; this.btnPingColor3.Click += new System.EventHandler(this.BtnPingColor3_Click); // - // lblPingStat1 + // lblPingStat2 // - this.lblPingStat1.AutoSize = true; - this.lblPingStat1.Dock = System.Windows.Forms.DockStyle.Fill; - this.lblPingStat1.Location = new System.Drawing.Point(6, 3); - this.lblPingStat1.Name = "lblPingStat1"; - this.lblPingStat1.Size = new System.Drawing.Size(85, 22); - this.lblPingStat1.TabIndex = 6; - this.lblPingStat1.Text = "330"; - this.lblPingStat1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lblPingStat2.AutoSize = true; + this.lblPingStat2.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblPingStat2.Location = new System.Drawing.Point(97, 3); + this.lblPingStat2.Name = "lblPingStat2"; + this.lblPingStat2.Size = new System.Drawing.Size(85, 22); + this.lblPingStat2.TabIndex = 5; + this.lblPingStat2.Text = "331"; + this.lblPingStat2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lblPingStat4 + // + this.lblPingStat4.AutoSize = true; + this.lblPingStat4.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblPingStat4.Location = new System.Drawing.Point(279, 3); + this.lblPingStat4.Name = "lblPingStat4"; + this.lblPingStat4.Size = new System.Drawing.Size(86, 22); + this.lblPingStat4.TabIndex = 3; + this.lblPingStat4.Text = "333"; + this.lblPingStat4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // btnPingColor1 + // + this.btnPingColor1.BackColor = System.Drawing.Color.RoyalBlue; + this.btnPingColor1.Dock = System.Windows.Forms.DockStyle.Fill; + this.btnPingColor1.Location = new System.Drawing.Point(6, 28); + this.btnPingColor1.Name = "btnPingColor1"; + this.btnPingColor1.Size = new System.Drawing.Size(85, 28); + this.btnPingColor1.TabIndex = 7; + this.btnPingColor1.UseVisualStyleBackColor = false; + this.btnPingColor1.Click += new System.EventHandler(this.BtnPingColor1_Click); + // + // lblPingStat3 + // + this.lblPingStat3.AutoSize = true; + this.lblPingStat3.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblPingStat3.Location = new System.Drawing.Point(188, 3); + this.lblPingStat3.Name = "lblPingStat3"; + this.lblPingStat3.Size = new System.Drawing.Size(85, 22); + this.lblPingStat3.TabIndex = 4; + this.lblPingStat3.Text = "332"; + this.lblPingStat3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // // lblPingColors // @@ -946,11 +975,11 @@ namespace DutyContent.Tab this.lstPacketInfo.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; this.lstPacketInfo.HideSelection = false; this.lstPacketInfo.Items.AddRange(new System.Windows.Forms.ListViewItem[] { - listViewItem1, - listViewItem2, - listViewItem3, - listViewItem4, - listViewItem5}); + listViewItem6, + listViewItem7, + listViewItem8, + listViewItem9, + listViewItem10}); this.lstPacketInfo.Location = new System.Drawing.Point(3, 42); this.lstPacketInfo.MultiSelect = false; this.lstPacketInfo.Name = "lstPacketInfo"; @@ -999,29 +1028,27 @@ namespace DutyContent.Tab this.ilTabContent.Images.SetKeyName(2, "pix_tab_tool.png"); this.ilTabContent.Images.SetKeyName(3, "pix_tab_ping.png"); // - // tlpnPingColors + // chkPingGraph // - this.tlpnPingColors.ColumnCount = 4; - this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tlpnPingColors.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tlpnPingColors.Controls.Add(this.lblPingStat1, 0, 0); - this.tlpnPingColors.Controls.Add(this.btnPingColor4, 3, 1); - this.tlpnPingColors.Controls.Add(this.btnPingColor2, 1, 1); - this.tlpnPingColors.Controls.Add(this.btnPingColor3, 2, 1); - this.tlpnPingColors.Controls.Add(this.lblPingStat2, 1, 0); - this.tlpnPingColors.Controls.Add(this.lblPingStat4, 3, 0); - this.tlpnPingColors.Controls.Add(this.btnPingColor1, 0, 1); - this.tlpnPingColors.Controls.Add(this.lblPingStat3, 2, 0); - this.tlpnPingColors.Location = new System.Drawing.Point(36, 51); - this.tlpnPingColors.Name = "tlpnPingColors"; - this.tlpnPingColors.Padding = new System.Windows.Forms.Padding(3); - this.tlpnPingColors.RowCount = 2; - this.tlpnPingColors.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F)); - this.tlpnPingColors.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 60F)); - this.tlpnPingColors.Size = new System.Drawing.Size(371, 62); - this.tlpnPingColors.TabIndex = 11; + this.chkPingGraph.AutoSize = true; + this.chkPingGraph.Location = new System.Drawing.Point(26, 108); + this.chkPingGraph.Name = "chkPingGraph"; + this.chkPingGraph.Size = new System.Drawing.Size(44, 17); + this.chkPingGraph.TabIndex = 12; + this.chkPingGraph.Text = "334"; + this.chkPingGraph.UseVisualStyleBackColor = true; + this.chkPingGraph.CheckedChanged += new System.EventHandler(this.chkPingGraph_CheckedChanged); + // + // pbxPingGraph + // + this.pbxPingGraph.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pbxPingGraph.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pbxPingGraph.Location = new System.Drawing.Point(129, 108); + this.pbxPingGraph.Name = "pbxPingGraph"; + this.pbxPingGraph.Size = new System.Drawing.Size(644, 114); + this.pbxPingGraph.TabIndex = 13; + this.pbxPingGraph.TabStop = false; // // DutyForm // @@ -1052,11 +1079,12 @@ namespace DutyContent.Tab this.tabPagePing.ResumeLayout(false); this.panel6.ResumeLayout(false); this.panel6.PerformLayout(); + this.tlpnPingColors.ResumeLayout(false); + this.tlpnPingColors.PerformLayout(); this.tabPagePacket.ResumeLayout(false); this.panel5.ResumeLayout(false); this.panel5.PerformLayout(); - this.tlpnPingColors.ResumeLayout(false); - this.tlpnPingColors.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbxPingGraph)).EndInit(); this.ResumeLayout(false); } @@ -1139,5 +1167,7 @@ namespace DutyContent.Tab private System.Windows.Forms.Button btnPingColor3; private System.Windows.Forms.Label lblPingStat1; private System.Windows.Forms.TableLayoutPanel tlpnPingColors; + private System.Windows.Forms.PictureBox pbxPingGraph; + private System.Windows.Forms.CheckBox chkPingGraph; } } \ No newline at end of file diff --git a/Tab/DutyForm.cs b/Tab/DutyForm.cs index 6d24c09..c13b0d0 100644 --- a/Tab/DutyForm.cs +++ b/Tab/DutyForm.cs @@ -31,6 +31,8 @@ namespace DutyContent.Tab private System.Timers.Timer _ping_timer; private long _ping_last; private Color _ping_color = Color.Transparent; + private ThirdParty.FastGraphLine _ping_graph; + private List _ping_keeps = new List(); public DutyForm() { @@ -39,6 +41,7 @@ namespace DutyContent.Tab InitializeComponent(); _overlay = new Overlay.DutyOvForm(); + _ping_graph = new ThirdParty.FastGraphLine(pbxPingGraph); } private void DutyTabForm_FormClosing(object sender, FormClosingEventArgs e) @@ -115,6 +118,7 @@ namespace DutyContent.Tab btnPingColor2.BackColor = DcConfig.Duty.PingColors[1]; btnPingColor3.BackColor = DcConfig.Duty.PingColors[2]; btnPingColor4.BackColor = DcConfig.Duty.PingColors[3]; + chkPingGraph.Checked = DcConfig.Duty.PingGraph; // switch (DcConfig.Duty.ActiveFate) @@ -219,6 +223,7 @@ namespace DutyContent.Tab lblPingStat2.Text = MesgLog.Text(331); lblPingStat3.Text = MesgLog.Text(332); lblPingStat4.Text = MesgLog.Text(333); + chkPingGraph.Text = MesgLog.Text(334); } public void PacketHandler(string pid, byte[] message) @@ -1324,7 +1329,10 @@ namespace DutyContent.Tab SaveConfig(); if (chkUsePing.Checked) + { + PingOnce(); _ping_timer.Start(); + } else { _ping_timer.Stop(); @@ -1373,10 +1381,20 @@ namespace DutyContent.Tab PingColorWorker(3, btnPingColor4); } + private void chkPingGraph_CheckedChanged(object sender, EventArgs e) + { + if (!DcConfig.PluginEnable) + return; + + DcConfig.Duty.PingGraph = chkPingGraph.Checked; + + SaveConfig(); + } + // private void PingOnce() { - if (!DcConfig.PluginEnable) + if (!DcConfig.PluginEnable || !DcConfig.Duty.UsePing) return; var conns = DcConfig.Connections.CopyConnection(); @@ -1419,11 +1437,25 @@ namespace DutyContent.Tab _overlay.SetStatPing(color, rtt, loss); } + + // + if (DcConfig.Duty.PingGraph) + { + _ping_keeps.Add((int)rtt); + if (_ping_keeps.Count > 100) + _ping_keeps.Remove(0); + + _ping_graph.Enter(); + _ping_graph.SetValues(_ping_keeps); + WorkerAct.Invoker(() => _ping_graph.Leave()); + } } - private static PingOptions _ping_options = new PingOptions { DontFragment = true }; - private static byte[] _ping_buffers = Encoding.ASCII.GetBytes("01234567890123456789012345678901"); - private static int _ping_timerout = 120; + // http://forum.codecall.net/topic/37643-c-packet-lossping-program/ + + private static readonly PingOptions _ping_options = new PingOptions { DontFragment = true }; + private static readonly byte[] _ping_buffers = Encoding.ASCII.GetBytes("01234567890123456789012345678901"); + private static readonly int _ping_timerout = 120; // private (long Rtt, double Loss) CalcPing(IPAddress host, int amount = 6) diff --git a/Tab/DutyForm.resx b/Tab/DutyForm.resx index 368fba3..a57f6b2 100644 --- a/Tab/DutyForm.resx +++ b/Tab/DutyForm.resx @@ -124,307 +124,307 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAW - RgAAAk1TRnQBSQFMAgEBBAEAARABAQEQAQEBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAS + RgAAAk1TRnQBSQFMAgEBBAEAARgBAQEYAQEBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA AwABQAMAAQEBAAEgBgABgP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A - /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AWgADNgRZAcQDVQHqAxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/ - AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/ - AxUB/wNdAeIDVAGuAykBPwgAAwcBCgNIAYUCFQGqAf8CEAGqAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGk - Af8CDwGkAf8CDwGkAf8CDwGjAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGiAf8CDwGi - Af8CDwGiAf8CDwGiAf8CDwGiAf8CDwGjAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGkAf8CDwGk - Af8CEAGqAf8CFQGqAf8DSAGFAwcBCv8ABQADTgGXAzYB/wOyAf8DzQH/A90B/wPdAf8D3QH/A90B/wPd + /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AWgADNgRZAcQDVQHqAxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/ + AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/ + AxQB/wNdAeIDVAGuAykBPwgAAwcBCgNIAYUCFAGqAf8CDwGqAf8CDgGkAf8CDgGkAf8CDgGkAf8CDgGk + Af8CDgGkAf8CDgGkAf8CDgGjAf8CDgGiAf8CDgGiAf8CDgGiAf8CDgGiAf8CDgGiAf8CDgGiAf8CDgGi + Af8CDgGiAf8CDgGiAf8CDgGiAf8CDgGjAf8CDgGkAf8CDgGkAf8CDgGkAf8CDgGkAf8CDgGkAf8CDgGk + Af8CDwGqAf8CFAGqAf8DSAGFAwcBCv8ABQADTgGXAzUB/wOyAf8DzQH/A90B/wPdAf8D3QH/A90B/wPd Af8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A90B/wPd - Af8D3QH/A90B/wPIAf8DogH/AycB/wNGAYEEAANIAYUCDwGkAf8CDwGiAf8CDwGhAf8CDwGhAf8CDwGh - Af8CDwGhAf8CDwGhAf8CDAGgAf8CDAGeAf8CDAGbAf8CDAGZAf8CDAGZAf8CDAGXAf8CDAGVAf8CDAGV - Af8CDAGVAf8CDAGVAf8CDAGXAf8CDAGZAf8CDAGZAf8CDAGbAf8CDAGeAf8CDAGgAf8CDwGhAf8CDwGh - Af8CDwGhAf8CDwGhAf8CDwGhAf8CDwGiAf8CDwGkAf8DSAGFVwABAQMCBAMEBAEGAwQBBgMDAQQDAQEC - AwABAYwAAzcBWgNCAf8D2wH/A4sB/wMsAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMV - Af8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AywB/wOH - Af8DzQH/Ay4B/wMrAUICDwGkAf8CDwGiAf8CDAGdAf8CCgGYAf8CCgGXAf8CCgGXAf8CCgGXAf8CCgGX - Af8CBwGRAf8CBwGPAf8CBwGMAf8CBwGKAf8CBwGKAf8CBQGIAf8CAgGGAf8CAgGGAf8CAgGGAf8CBAGG - Af8CBwGIAf8CBwGKAf8CBwGKAf8CBwGMAf8CBwGPAf8CBwGVAf8CCgGXAf8CCgGXAf8CCgGXAf8CCgGX - Af8CCgGYAf8CDAGdAf8CDwGiAf8CDwGkAf9QAAMCAQMDBgEIAw0BEgMaASQDIwEzAyEBMAMWAR4DCgEO - AwQBBgMAAQGIAANZAcMDsgH/A4oB/wFSAUABJgH/AbkBkwE4Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+ - Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wG9 - AZUBNgH/AaMBgAEqAf8BvQGVATYB/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+ - Af8BzgGiAT4B/wHOAaIBPgH/Ac4BogE+Af8BzgGiAT4B/wG5AZMBOAH/AV0BSAEpAf8DhQH/A6MB/wNU - AasCDwGjAf8CDAGaAf8CCAGRAf8CAQGNAf8CAAGNAf8CAAGKAf8CAAGGAf8CAAGBAf8CAAFcAf8CAAFa - Af8CAAFVAf8CAAFUAf8CAAFUAf8CAAFUAf8CAAFQAf8CAAFNAf8CAAFNAf8CAAFQAf8CAAFUAf8CAAFU - Af8CAAFUAf8CAAFVAf8CAAFaAf8CAAGAAf8CAAGGAf8CAAGGAf8CAAGKAf8CAAGNAf8CAQGNAf8CCAGR - Af8CDAGaAf8CDwGjAf9MAAMCAQMDBwEKAxcBIAMwAUwBRQJGAX4BTwJRAZwBTQJOAZYDQQFyAyoBQQMS - ARkDBQEHAwABAS8AAf8DAAH/AwAB/wMAAf8DAAH/RAADQQH5A8oB/wMqAf8BuQGPATcB/wHVAaIBPwH/ - AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGi - AT8B/wHVAaIBPwH/AcQBlQE3Af8BiQFJASMB/wEeAS0BMwH/AZQBTgEiAf8B0wGhAT4B/wHVAaIBPwH/ - AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGiAT8B/wHVAaIBPwH/AdUBogE/Af8B1QGi - AT8B/wHAAZMBOQH/AyMB/wPFAf8DTgHwAg0BmQH/AgMBiwH/AgABWgH/AgABVgH/AgABTgH/AgABTgH/ - AgABSQH/AgABRgH/AgABRQH/AgABQgH/AgABPgH/AgABPgH/AgABPQH/AgABOgH/AgABNgH/AgABNgH/ - AgABNgH/AgABNgH/AgABOgH/AgABPQH/AgABPgH/AgABPgH/AgABQgH/AgABRQH/AgABSAH/AgABTgH/ - AgABTgH/AgABTgH/AgABVgH/AgABWgH/AgMBiwH/Ag0BmQH/SAADAQECAwcBCQMYASIDOAFeAVMCVQGt - AV0CYQHiAm0BcQH3A2UB9AFeAmEB2gNQAZoDLQFGAw4BEwMDAQQvAAH/AwAB/wMAAf8DAAH/AwAB/0QA - AxUB/wPCAf8DFwH/AcwBlQE8Af8B1QGbAT4B/wHVAZsBPgH/AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/ - AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/AdUBmwE+Af8BvwGLATQB/wGTAUkBIQH/AR0BKwE0Af8BAAEz - AY4B/wFMATkBJQH/AZUBSgEhAf8BzwGXATsB/wHVAZsBPgH/AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/ - AdUBmwE+Af8B1QGbAT4B/wHVAZsBPgH/AdUBmwE+Af8BxQGQAToB/wMdAf8DwgH/AxUB/wILAZEB/wEF - AQoBggH/AQUBIQGEAf8BCwEqAYUB/wELASoBgAH/AQsBLAGDAf8BCwEsAYMB/wELASwBgwH/AQsBLAFc - Af8BCwEsAVwB/wELASwBXAH/AQsBLAFcAf8BCwEsAVcB/wELASkBVAH/AQsBKQFUAf8BCwEpAVQB/wEL - ASkBVAH/AQsBKQFUAf8BCwEpAVQB/wELASkBVAH/AQsBKQFZAf8BCwEpAVkB/wELASkBWQH/AQsBKQFZ - Af8BCwEqAYMB/wELASwBgwH/AQsBLAGDAf8BCwEsAYMB/wELASwBiAH/AQcBIQGHAf8BBQEKAYMB/wIL - AZEB/0cAAQEDBgEIAxYBHgM4AV0DVQG1A2QB8QHzAfgB/AH/Ae0D/wHzA/8BmAGoAbIB/gNfAeADSAGF - Ax8BLAMFAQcvAAH/AwAB/wMAAf8DAAH/AwAB/0QAAxUB/wO0Af8DFQH/Ac4BkAE7Af8B1QGUAT0B/wHV - AZQBPQH/AdUBlAE9Af8B1QGUAT0B/wHVAZQBPQH/AdUBlAE9Af8B1AGTAT0B/wHQAZEBOwH/AbQBWwEu - Af8BigFBASEB/wETASkBOQH/AQABFwFWAf8BAAEXAVEB/wEAAR4BVwH/ATYBLwEpAf8BkgFEASAB/wG5 - AYABMAH/AdIBkgE8Af8B1QGUAT0B/wHVAZQBPQH/AdUBlAE9Af8B1QGUAT0B/wHVAZQBPQH/AdUBlAE9 - Af8BxQGLATkB/wMcAf8DtAH/AxUB/wIGAYoB/wEKASMBhwH/ARwBhQGpAf8BMwGrAdQB/wFMAdEB3gH/ - AVEB1AHhAf8BVAHUAeEB/wFWAdQB4QH/AVYB1AHhAf8BVAHUAeEB/wFRAdQB4QH/AVEB1AHhAf8BUQHT - AeAB/wFRAdEB3gH/AVEB0QHeAf8BUQHRAd4B/wFRAdEB3gH/AVEB0QHeAf8BUQHRAd4B/wFRAdEB3gH/ - AVEB0QHeAf8BUQHRAd4B/wFRAdEB3gH/AVEB0QHeAf8BUQHRAeEB/wFRAdQB4QH/AVEB1AHhAf8BTAHU - AeEB/wE0AbIB2AH/AR4BhQGvAf8BCgEjAYsB/wIGAYoB/0MAAQEDBQEHAxQBGwM1AVYDVAGvAVoCXQHw - AfMB+AH8Af8B1AP/AcQB/AL/AcYB/gL/AegD/wF/AYcBiwH7AVUCVgGxAy0BRQMHAQovAAH/AwAB/wMA - Af8DAAH/AwAB/0QAAxUB/wOnAf8DFQH/Ac4BhwE6Af8B1QGLATwB/wHVAYsBPAH/AcsBhAE4Af8BvQFZ - ATEB/wHEAYABNQH/AcABWwEzAf8BlQE/ASAB/wGNATwBIQH/AToBLQEpAf8BAAEhAU4B/wEAAQYBRAH/ - ARwBkQGyAf8BUQHVAeYB/wEAAToBiQH/AQABDAFKAf8BAAElAUUB/wFQATMBJAH/AZIBPgEgAf8BsQFS - ASwB/wHDAYABNAH/AcMBgAE0Af8BugFYATAB/wHTAYoBOwH/AdUBiwE8Af8BxQGCATgB/wMcAf8DpwH/ - AxUB/wIFAYEB/wEOAS8BkAH/AS8BoQHCAf8BIAFZAaQB/wEUASsBWgH/ARUBKwGEAf8BFgErAYgB/wEX - ASsBiAH/ARcBKwGBAf8BFgErAYEB/wEVASsBgQH/ARUBKwFaAf8BFQErAVkB/wEVASsBWQH/ARUBKwFZ - Af8BFQErAVkB/wEVASsBWQH/ARUBKwFZAf8BFQErAVkB/wEVASsBWQH/ARUBKwGBAf8BFQErAYEB/wEV - ASsBgQH/ARUBKwGBAf8BFwEsAYgB/wEaAS8BiAH/ARUBKwGEAf8BFAErAVoB/wEgAVsBpAH/AS8BoQHD - Af8BDgEvAZEB/wIFAYEB/z8AAQEDBAEGAxIBGAMyAVADUgGpAVkCZAHsAZgBqAGyAf4B2QP/AcQB/AL/ - AcMB+wL/AcMB+wL/AdcD/wGoAaoBrgH9AVcCWQG/AzIBUAMIAQsvAAH/AwAB/wMAAf8DAAH/AwAB/0QA - AxUB/wObAf8DFQH/Ac4BXQE4Af8B1QGDAToB/wHLAVsBNgH/AYMBNAEhAf8BRgEsASQB/wFUAS8BIgH/ - AUwBLQEjAf8BHQEqATUB/wEAASQBUgH/AQABDAFOAf8BAAEpAVgB/wFLAdAB5wH/AVYB3QHxAf8BOwGn - AbEB/wFcAeEB9wH/ATIBqQHFAf8BAAENAUQB/wEAARgBVQH/AQABJwFKAf8BLgEqASwB/wFSAS4BIgH/ - AVMBLgEiAf8BQQEsASgB/wGUATkBHgH/AdMBggE5Af8BxQFZATYB/wMbAf8DmwH/AxUB/wIFAVwB/wEP - ATABiwH/ASgBnAG9Af8BBgEXAUcB/wEBAQoBUwH/AQsBMQGYAf8BCgE0AZ0B/wEKATIBnQH/AQoBMQGc - Af8BCgExAZYB/wEJATABlQH/AQwBLgGRAf8BAAEIAVMB/wIAAUoB/wIAAUoB/wIAAUoB/wIAAUoB/wIA - AUoB/wEAAQYBUQH/AQsBKgGSAf8BCgEsAZQB/wEEASIBjQH/AQ4BOAGYAf8BAAEbAY4B/wEOATgBnwH/ - AQoBKAGTAf8BBgELAVMB/wIAAUQB/wEGARUBRQH/ASgBlwG0Af8BDwEvAYgB/wIFAVwB/zsAAQEDBAEG - AxABFQMsAUMBTwJQAZsBWAJiAekBmAGoAbIB/gHeA/8BxgH+Av8BwwH7Av8BwwH7Av8ByAP/AewD/wF/ - AYgBiwH7AVUCVgGxAy0BRQMHAQovAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/ - JAADFQH/A5MB/wMVAf8BzAFVATYB/wHTAVgBOAH/Ac4BVQE2Af8BigExAR4B/wEAATkBhAH/AQABMQGN - Af8BAAEpAYgB/wEAAR8BgQH/AQ0BVAGfAf8BTwHVAeYB/wGQAe8B/gH/ATIBmwG8Af8BPgEUASsB/wGR - ARABKQH/AS0BKgFCAf8BSQHKAeYB/wGQAe0B+gH/ATkBtAHKAf8BAAE6AZIB/wEAASEBgQH/AQABKgGH - Af8BAAE7AZYB/wEbASsBPgH/AZMBMwEdAf8B0gFYATgB/wHDAVEBNAH/AxoB/wOTAf8DFQH/AgUBXAH/ - AQ8BMQGLAf8BKAGdAb0B/wEGARcBTgH/AQkBMAGVAf8BRQHWAekB/wFGAdcB8AH/AUUB0gHwAf8BRQHR - AfAB/wFFAdEB7gH/AUIBzQHrAf8BPwHFAecB/wEAARQBigH/AgcBVAH/AgcBVAH/AgcBVAH/AgcBVAH/ - AQYBCAFVAf8BAAEWAYwB/wFAAcEB4gH/AToBxAHoAf8BGAGKAc8B/wFOAeEB9QH/AQUBTgHDAf8BUAHh - AfUB/wErAaIB1QH/AQABFQGSAf8BAAEEAVAB/wEGARUBTQH/ASYBlAG0Af8BDwEsAYgB/wIFAVwB/zgA - AwQBBQMNARIDKAE8A0oBigFeAmEB2gKoAa0B/QHiA/8BxgH+Av8BwwH7Av8BwwH7Av8ByQP/AekD/wKo - Aa0B/QFcAmEB3ANHAYIDHQEqAwUBBy8AAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIA - Av8kAAMVAf8DjwH/AxUB/wHJAVIBNQH/AdABVQE3Af8B0AFVATcB/wGmAT0BJQH/ASMBJwE1Af8BCQFT - AaMB/wE7AasB0gH/AZIB6wH4Af8BiQHqAfcB/wE6AaIBvAH/AToBJwFAAf8BmgEbAUEB/wG/AS4BiwH/ - AcEBMwGTAf8BuwEsAYIB/wGCARQBMwH/ATIBQwFdAf8BSQHDAdsB/wGTAfAB/AH/AYYB4QHzAf8BKAGR - AbkB/wECAU4BnwH/AVABKAEgAf8BvAFKAS8B/wHQAVUBNwH/AcABTgEzAf8DGgH/A48B/wMVAf8CBQFc - Af8BDwExAYsB/wEoAZ0BvQH/AQYBFwFSAf8BBgEyAZ8B/wFMAeIB9QH/AVMB7AL/AVgB7gL/AVkB7gL/ - AVkB7gL/AVkB7gL/ATgBwAHrAf8BAAEUAY8B/wIHAVkB/wIHAVYB/wIHAVQB/wIHAVUB/wEDAQwBggH/ - ARoBWAG+Af8BSgHaAfgB/wEaAZgB3wH/ATkBxAHxAf8BLQG2AeoB/wElAawB5QH/AUUB1gH5Af8BHwGf - AeEB/wEoAZ8B0wH/AQYBIQGMAf8BBQEVAVAB/wEjAZQBtAH/AQ8BLAGIAf8CBQFcAf8kAAMBAQIDAwQE - BAYECAELAw8BFAMkATYBRgJHAYABWAJcAdEBfwGIAYwB+wHpA/8ByAP/AcMB+wL/AcMB+wL/AcwD/wHw - A/8BfwGIAYwB+wFZAl0B1wNMAZIDKwFCAw0BEgMDAQQvAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/ - AgAC/wIAAv8CAAL/JAADFQH/A48B/wMVAf8BxwFQATUB/wHOAVMBNwH/Ac4BUwE3Af8BpgE9ASYB/wIj - ATEB/wEAAUMBkAH/ASIBhwGpAf8BFQEqAUIB/wFJAQ0BJAH/AaUBHAFEAf8BwgEvAYwB/wHLAT4BpAH/ - AdIBRgGxAf8B1AFHAbQB/wHRAUQBsAH/AcoBPQGiAf8BvgEtAYQB/wGSARYBOgH/ATsBEgEkAf8BDQE9 - AVsB/wEnAYoBrAH/AQABOAGIAf8BTwEoASAB/wG9AUkBMAH/Ac4BUwE3Af8BvwFNATMB/wMaAf8DjwH/ - AxUB/wIFAVwB/wEPATABiwH/ASgBnAG5Af8BBgEXAUwB/wEGATIBnwH/AUwB4QH1Af8BUQHnAv8BUgHo - Av8BUwHoAv8BVQHqAv8BWQHuAv8BOAHAAesB/wEAARQBjgH/AgcBUwH/AgcBUgH/AgcBUQH/AgcBUQH/ - AQMBDQGBAf8BMAGhAdQB/wFRAeYC/wEHAUoBwQH/AVEB5gL/ARkBjwHUAf8BPgHJAfEB/wE+AckB8QH/ - ARkBjwHVAf8BRwHcAfUB/wELATABmAH/AQYBFQFLAf8BJwGUAbQB/wEPASwBiAH/AgUBXAH/HAADAgED - AwYBCAMNAREDFwEgAyIBMgMqAUADLAFDAzEBTgNHAYIBWQJcAcwBbgF3AXsB+gHtA/8ByQP/AcMB+wL/ - AcMB+wL/Ac0D/wH4A/8BXQFyAXYB+AFcAl4BzgFIAkkBhwMrAUIDEQEXAwQBBgMAAQEvAAH/AwAB/wMA - Af8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JAADFQH/A5AB/wMVAf8BxQFOATQB/wHMAVEBNgH/ - AcwBUQE2Af8BpAE6ASUB/wEgASMBMwH/AQABPQGJAf8BAAFCAY0B/wEsARwBNgH/AbwBJQFaAf8BxAE1 - AZwB/wHRAUUBrwH/AdwBUQHBAf8B5gFaAc0B/wHpAV0B0gH/AeYBWwHNAf8B3QFSAcEB/wHQAUUBrwH/ - AcUBNgGbAf8BswEhAUkB/wEAASoBSwH/AQ4BSQGQAf8BAAEyAYMB/wFOAScBIAH/AbsBSAEvAf8BzAFR - ATYB/wG9AUsBMgH/AxoB/wOQAf8DFQH/AgUBXAH/AQ8BMAGLAf8BKAGbAbgB/wEGARYBSgH/AQkBKgGS - Af8BNQG7AeAB/wE5AbwB5gH/ATkBvwHmAf8BQAG/AeQB/wFAAcEB5wH/AUABxQHrAf8BOwG/AeQB/wEA - AREBhAH/AgYBUQH/AgUBUQH/AgABUQH/AgABUQH/AQIBBQFUAf8BAAEOAYUB/wEAARQBjQH/AQABDwGI - Af8BAAEUAY8B/wEAARABiwH/AQABEwGUAf8BAQEUAZYB/wEEARQBkwH/AQABFAGSAf8BAAEIAVUB/wEG - ARUBSgH/ASgBlAG0Af8BDwEsAYgB/wIFAVwB/xcAAQEDBAEFAwoBDgMaASUDMQFNA0QBeQFPAlABmwFT - AlQBrANUAa4DVQG1AVoCXgHYAm0BcQH3AfQD/wHKA/8BwwH7Av8BxAH8Av8B0Qf/Am0BcQH3AVgCWwHG + Af8D3QH/A90B/wPIAf8DogH/AyYB/wNGAYEEAANIAYUCDgGkAf8CDgGiAf8CDgGhAf8CDgGhAf8CDgGh + Af8CDgGhAf8CDgGhAf8CCwGgAf8CCwGeAf8CCwGbAf8CCwGZAf8CCwGZAf8CCwGXAf8CCwGVAf8CCwGV + Af8CCwGVAf8CCwGVAf8CCwGXAf8CCwGZAf8CCwGZAf8CCwGbAf8CCwGeAf8CCwGgAf8CDgGhAf8CDgGh + Af8CDgGhAf8CDgGhAf8CDgGhAf8CDgGiAf8CDgGkAf8DSAGFVwABAQMCBAMEBAEGAwQBBgMDAQQDAQEC + AwABAYwAAzcBWgNBAf8D2wH/A4sB/wMrAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMU + Af8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AysB/wOH + Af8DzQH/Ay0B/wMrAUICDgGkAf8CDgGiAf8CCwGdAf8CCQGYAf8CCQGXAf8CCQGXAf8CCQGXAf8CCQGX + Af8CBgGRAf8CBgGPAf8CBgGMAf8CBgGKAf8CBgGKAf8CBAGIAf8CAQGGAf8CAQGGAf8CAQGGAf8CAwGG + Af8CBgGIAf8CBgGKAf8CBgGKAf8CBgGMAf8CBgGPAf8CBgGVAf8CCQGXAf8CCQGXAf8CCQGXAf8CCQGX + Af8CCQGYAf8CCwGdAf8CDgGiAf8CDgGkAf9QAAMCAQMDBgEIAw0BEgMaASQDIwEzAyEBMAMWAR4DCgEO + AwQBBgMAAQGIAANZAcMDsgH/A4oB/wFRAT8BJQH/AbkBkwE3Af8BzgGiAT0B/wHOAaIBPQH/Ac4BogE9 + Af8BzgGiAT0B/wHOAaIBPQH/Ac4BogE9Af8BzgGiAT0B/wHOAaIBPQH/Ac4BogE9Af8BzgGiAT0B/wG9 + AZUBNQH/AaMBgAEpAf8BvQGVATUB/wHOAaIBPQH/Ac4BogE9Af8BzgGiAT0B/wHOAaIBPQH/Ac4BogE9 + Af8BzgGiAT0B/wHOAaIBPQH/Ac4BogE9Af8BzgGiAT0B/wG5AZMBNwH/AVwBRwEoAf8DhQH/A6MB/wNU + AasCDgGjAf8CCwGaAf8CBwGRAf8CAAGNAf8CAAGNAf8CAAGKAf8CAAGGAf8CAAGBAf8CAAFbAf8CAAFZ + Af8CAAFUAf8CAAFTAf8CAAFTAf8CAAFTAf8CAAFPAf8CAAFMAf8CAAFMAf8CAAFPAf8CAAFTAf8CAAFT + Af8CAAFTAf8CAAFUAf8CAAFZAf8CAAGAAf8CAAGGAf8CAAGGAf8CAAGKAf8CAAGNAf8CAAGNAf8CBwGR + Af8CCwGaAf8CDgGjAf9MAAMCAQMDBwEKAxcBIAMwAUwBRQJGAX4BTwJRAZwBTQJOAZYDQQFyAyoBQQMS + ARkDBQEHAwABAS8AAf8DAAH/AwAB/wMAAf8DAAH/RAADQQH5A8oB/wMpAf8BuQGPATYB/wHVAaIBPgH/ + AdUBogE+Af8B1QGiAT4B/wHVAaIBPgH/AdUBogE+Af8B1QGiAT4B/wHVAaIBPgH/AdUBogE+Af8B1QGi + AT4B/wHVAaIBPgH/AcQBlQE2Af8BiQFIASIB/wEdASwBMgH/AZQBTQEhAf8B0wGhAT0B/wHVAaIBPgH/ + AdUBogE+Af8B1QGiAT4B/wHVAaIBPgH/AdUBogE+Af8B1QGiAT4B/wHVAaIBPgH/AdUBogE+Af8B1QGi + AT4B/wHAAZMBOAH/AyIB/wPFAf8DTgHwAgwBmQH/AgIBiwH/AgABWQH/AgABVQH/AgABTQH/AgABTQH/ + AgABSAH/AgABRQH/AgABRAH/AgABQQH/AgABPQH/AgABPQH/AgABPAH/AgABOQH/AgABNQH/AgABNQH/ + AgABNQH/AgABNQH/AgABOQH/AgABPAH/AgABPQH/AgABPQH/AgABQQH/AgABRAH/AgABRwH/AgABTQH/ + AgABTQH/AgABTQH/AgABVQH/AgABWQH/AgIBiwH/AgwBmQH/SAADAQECAwcBCQMYASIDOAFeAVMCVQGt + AV0CYQHiAm0BbgH3A2UB9AFeAmEB2gNQAZoDLQFGAw4BEwMDAQQvAAH/AwAB/wMAAf8DAAH/AwAB/0QA + AxQB/wPCAf8DFgH/AcwBlQE7Af8B1QGbAT0B/wHVAZsBPQH/AdUBmwE9Af8B1QGbAT0B/wHVAZsBPQH/ + AdUBmwE9Af8B1QGbAT0B/wHVAZsBPQH/AdUBmwE9Af8BvwGLATMB/wGTAUgBIAH/ARwBKgEzAf8BAAEy + AY4B/wFLATgBJAH/AZUBSQEgAf8BzwGXAToB/wHVAZsBPQH/AdUBmwE9Af8B1QGbAT0B/wHVAZsBPQH/ + AdUBmwE9Af8B1QGbAT0B/wHVAZsBPQH/AdUBmwE9Af8BxQGQATkB/wMcAf8DwgH/AxQB/wIKAZEB/wEE + AQkBggH/AQQBIAGEAf8BCgEpAYUB/wEKASkBgAH/AQoBKwGDAf8BCgErAYMB/wEKASsBgwH/AQoBKwFb + Af8BCgErAVsB/wEKASsBWwH/AQoBKwFbAf8BCgErAVYB/wEKASgBUwH/AQoBKAFTAf8BCgEoAVMB/wEK + ASgBUwH/AQoBKAFTAf8BCgEoAVMB/wEKASgBUwH/AQoBKAFYAf8BCgEoAVgB/wEKASgBWAH/AQoBKAFY + Af8BCgEpAYMB/wEKASsBgwH/AQoBKwGDAf8BCgErAYMB/wEKASsBiAH/AQYBIAGHAf8BBAEJAYMB/wIK + AZEB/0cAAQEDBgEIAxYBHgM4AV0DVQG1A2QB8QHzAfgB/AH/Ae0D/wHzA/8BlgGmAbAB/gNfAeADSAGF + Ax8BLAMFAQcvAAH/AwAB/wMAAf8DAAH/AwAB/0QAAxQB/wO0Af8DFAH/Ac4BkAE6Af8B1QGUATwB/wHV + AZQBPAH/AdUBlAE8Af8B1QGUATwB/wHVAZQBPAH/AdUBlAE8Af8B1AGTATwB/wHQAZEBOgH/AbQBWgEt + Af8BigFAASAB/wESASgBOAH/AQABFgFVAf8BAAEWAVAB/wEAAR0BVgH/ATUBLgEoAf8BkgFDAR8B/wG5 + AYABLwH/AdIBkgE7Af8B1QGUATwB/wHVAZQBPAH/AdUBlAE8Af8B1QGUATwB/wHVAZQBPAH/AdUBlAE8 + Af8BxQGLATgB/wMbAf8DtAH/AxQB/wIFAYoB/wEJASIBhwH/ARsBhQGpAf8BMgGrAdQB/wFLAdEB3gH/ + AVAB1AHhAf8BUwHUAeEB/wFVAdQB4QH/AVUB1AHhAf8BUwHUAeEB/wFQAdQB4QH/AVAB1AHhAf8BUAHT + AeAB/wFQAdEB3gH/AVAB0QHeAf8BUAHRAd4B/wFQAdEB3gH/AVAB0QHeAf8BUAHRAd4B/wFQAdEB3gH/ + AVAB0QHeAf8BUAHRAd4B/wFQAdEB3gH/AVAB0QHeAf8BUAHRAeEB/wFQAdQB4QH/AVAB1AHhAf8BSwHU + AeEB/wEzAbIB2AH/AR0BhQGvAf8BCQEiAYsB/wIFAYoB/0MAAQEDBQEHAxQBGwM1AVYDVAGvAVoCXQHw + AfMB+AH8Af8B1AP/AcQB/AL/AcYB/gL/AegD/wF8AYYBigH7AVUCVgGxAy0BRQMHAQovAAH/AwAB/wMA + Af8DAAH/AwAB/0QAAxQB/wOnAf8DFAH/Ac4BhwE5Af8B1QGLATsB/wHVAYsBOwH/AcsBhAE3Af8BvQFY + ATAB/wHEAYABNAH/AcABWgEyAf8BlQE+AR8B/wGNATsBIAH/ATkBLAEoAf8BAAEgAU0B/wEAAQUBQwH/ + ARsBkQGyAf8BUAHVAeYB/wEAATkBiQH/AQABCwFJAf8BAAEkAUQB/wFPATIBIwH/AZIBPQEfAf8BsQFR + ASsB/wHDAYABMwH/AcMBgAEzAf8BugFXAS8B/wHTAYoBOgH/AdUBiwE7Af8BxQGCATcB/wMbAf8DpwH/ + AxQB/wIEAYEB/wENAS4BkAH/AS4BoQHCAf8BHwFYAaQB/wETASoBWQH/ARQBKgGEAf8BFQEqAYgB/wEW + ASoBiAH/ARYBKgGBAf8BFQEqAYEB/wEUASoBgQH/ARQBKgFZAf8BFAEqAVgB/wEUASoBWAH/ARQBKgFY + Af8BFAEqAVgB/wEUASoBWAH/ARQBKgFYAf8BFAEqAVgB/wEUASoBWAH/ARQBKgGBAf8BFAEqAYEB/wEU + ASoBgQH/ARQBKgGBAf8BFgErAYgB/wEZAS4BiAH/ARQBKgGEAf8BEwEqAVkB/wEfAVoBpAH/AS4BoQHD + Af8BDQEuAZEB/wIEAYEB/z8AAQEDBAEGAxIBGAMyAVADUgGpAVkCZAHsAZYBpgGwAf4B2QP/AcQB/AL/ + AcMB+wL/AcMB+wL/AdcD/wGoAakBrQH9AVcCWQG/AzIBUAMIAQsvAAH/AwAB/wMAAf8DAAH/AwAB/0QA + AxQB/wObAf8DFAH/Ac4BXAE3Af8B1QGDATkB/wHLAVoBNQH/AYMBMwEgAf8BRQErASMB/wFTAS4BIQH/ + AUsBLAEiAf8BHAEpATQB/wEAASMBUQH/AQABCwFNAf8BAAEoAVcB/wFKAdAB5wH/AVUB3QHxAf8BOgGn + AbEB/wFbAeEB9wH/ATEBqQHFAf8BAAEMAUMB/wEAARcBVAH/AQABJgFJAf8BLQEpASsB/wFRAS0BIQH/ + AVIBLQEhAf8BQAErAScB/wGUATgBHQH/AdMBggE4Af8BxQFYATUB/wMaAf8DmwH/AxQB/wIEAVsB/wEO + AS8BiwH/AScBnAG9Af8BBQEWAUYB/wEAAQkBUgH/AQoBMAGYAf8BCQEzAZ0B/wEJATEBnQH/AQkBMAGc + Af8BCQEwAZYB/wEIAS8BlQH/AQsBLQGRAf8BAAEHAVIB/wIAAUkB/wIAAUkB/wIAAUkB/wIAAUkB/wIA + AUkB/wEAAQUBUAH/AQoBKQGSAf8BCQErAZQB/wEDASEBjQH/AQ0BNwGYAf8BAAEaAY4B/wENATcBnwH/ + AQkBJwGTAf8BBQEKAVIB/wIAAUMB/wEFARQBRAH/AScBlwG0Af8BDgEuAYgB/wIEAVsB/zsAAQEDBAEG + AxABFQMsAUMBTwJQAZsBWAJiAekBlgGmAbAB/gHeA/8BxgH+Av8BwwH7Av8BwwH7Av8ByAP/AewD/wF8 + AYcBigH7AVUCVgGxAy0BRQMHAQovAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/ + JAADFAH/A5MB/wMUAf8BzAFUATUB/wHTAVcBNwH/Ac4BVAE1Af8BigEwAR0B/wEAATgBhAH/AQABMAGN + Af8BAAEoAYgB/wEAAR4BgQH/AQwBUwGfAf8BTgHVAeYB/wGQAe8B/gH/ATEBmwG8Af8BPQETASoB/wGR + AQ8BKAH/ASwBKQFBAf8BSAHKAeYB/wGQAe0B+gH/ATgBtAHKAf8BAAE5AZIB/wEAASABgQH/AQABKQGH + Af8BAAE6AZYB/wEaASoBPQH/AZMBMgEcAf8B0gFXATcB/wHDAVABMwH/AxkB/wOTAf8DFAH/AgQBWwH/ + AQ4BMAGLAf8BJwGdAb0B/wEFARYBTQH/AQgBLwGVAf8BRAHWAekB/wFFAdcB8AH/AUQB0gHwAf8BRAHR + AfAB/wFEAdEB7gH/AUEBzQHrAf8BPgHFAecB/wEAARMBigH/AgYBUwH/AgYBUwH/AgYBUwH/AgYBUwH/ + AQUBBwFUAf8BAAEVAYwB/wE/AcEB4gH/ATkBxAHoAf8BFwGKAc8B/wFNAeEB9QH/AQQBTQHDAf8BTwHh + AfUB/wEqAaIB1QH/AQABFAGSAf8BAAEDAU8B/wEFARQBTAH/ASUBlAG0Af8BDgErAYgB/wIEAVsB/zgA + AwQBBQMNARIDKAE8A0oBigFeAmEB2gKoAawB/QHiA/8BxgH+Av8BwwH7Av8BwwH7Av8ByQP/AekD/wKo + AawB/QFcAmEB3ANHAYIDHQEqAwUBBy8AAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIA + Av8kAAMUAf8DjwH/AxQB/wHJAVEBNAH/AdABVAE2Af8B0AFUATYB/wGmATwBJAH/ASIBJgE0Af8BCAFS + AaMB/wE6AasB0gH/AZIB6wH4Af8BiQHqAfcB/wE5AaIBvAH/ATkBJgE/Af8BmgEaAUAB/wG/AS0BiwH/ + AcEBMgGTAf8BuwErAYIB/wGCARMBMgH/ATEBQgFcAf8BSAHDAdsB/wGTAfAB/AH/AYYB4QHzAf8BJwGR + AbkB/wEBAU0BnwH/AU8BJwEfAf8BvAFJAS4B/wHQAVQBNgH/AcABTQEyAf8DGQH/A48B/wMUAf8CBAFb + Af8BDgEwAYsB/wEnAZ0BvQH/AQUBFgFRAf8BBQExAZ8B/wFLAeIB9QH/AVIB7AL/AVcB7gL/AVgB7gL/ + AVgB7gL/AVgB7gL/ATcBwAHrAf8BAAETAY8B/wIGAVgB/wIGAVUB/wIGAVMB/wIGAVQB/wECAQsBggH/ + ARkBVwG+Af8BSQHaAfgB/wEZAZgB3wH/ATgBxAHxAf8BLAG2AeoB/wEkAawB5QH/AUQB1gH5Af8BHgGf + AeEB/wEnAZ8B0wH/AQUBIAGMAf8BBAEUAU8B/wEiAZQBtAH/AQ4BKwGIAf8CBAFbAf8kAAMBAQIDAwQE + BAYECAELAw8BFAMkATYBRgJHAYABWAJcAdEBfAGHAYsB+wHpA/8ByAP/AcMB+wL/AcMB+wL/AcwD/wHw + A/8BfAGHAYsB+wFZAl0B1wNMAZIDKwFCAw0BEgMDAQQvAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/ + AgAC/wIAAv8CAAL/JAADFAH/A48B/wMUAf8BxwFPATQB/wHOAVIBNgH/Ac4BUgE2Af8BpgE8ASUB/wIi + ATAB/wEAAUIBkAH/ASEBhwGpAf8BFAEpAUEB/wFIAQwBIwH/AaUBGwFDAf8BwgEuAYwB/wHLAT0BpAH/ + AdIBRQGxAf8B1AFGAbQB/wHRAUMBsAH/AcoBPAGiAf8BvgEsAYQB/wGSARUBOQH/AToBEQEjAf8BDAE8 + AVoB/wEmAYoBrAH/AQABNwGIAf8BTgEnAR8B/wG9AUgBLwH/Ac4BUgE2Af8BvwFMATIB/wMZAf8DjwH/ + AxQB/wIEAVsB/wEOAS8BiwH/AScBnAG5Af8BBQEWAUsB/wEFATEBnwH/AUsB4QH1Af8BUAHnAv8BUQHo + Av8BUgHoAv8BVAHqAv8BWAHuAv8BNwHAAesB/wEAARMBjgH/AgYBUgH/AgYBUQH/AgYBUAH/AgYBUAH/ + AQIBDAGBAf8BLwGhAdQB/wFQAeYC/wEGAUkBwQH/AVAB5gL/ARgBjwHUAf8BPQHJAfEB/wE9AckB8QH/ + ARgBjwHVAf8BRgHcAfUB/wEKAS8BmAH/AQUBFAFKAf8BJgGUAbQB/wEOASsBiAH/AgQBWwH/HAADAgED + AwYBCAMNAREDFwEgAyIBMgMqAUADLAFDAzEBTgNHAYIBWQJcAcwBbQF2AXoB+gHtA/8ByQP/AcMB+wL/ + AcMB+wL/Ac0D/wH4A/8BXAFxAXUB+AFcAl4BzgFIAkkBhwMrAUIDEQEXAwQBBgMAAQEvAAH/AwAB/wMA + Af8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JAADFAH/A5AB/wMUAf8BxQFNATMB/wHMAVABNQH/ + AcwBUAE1Af8BpAE5ASQB/wEfASIBMgH/AQABPAGJAf8BAAFBAY0B/wErARsBNQH/AbwBJAFZAf8BxAE0 + AZwB/wHRAUQBrwH/AdwBUAHBAf8B5gFZAc0B/wHpAVwB0gH/AeYBWgHNAf8B3QFRAcEB/wHQAUQBrwH/ + AcUBNQGbAf8BswEgAUgB/wEAASkBSgH/AQ0BSAGQAf8BAAExAYMB/wFNASYBHwH/AbsBRwEuAf8BzAFQ + ATUB/wG9AUoBMQH/AxkB/wOQAf8DFAH/AgQBWwH/AQ4BLwGLAf8BJwGbAbgB/wEFARUBSQH/AQgBKQGS + Af8BNAG7AeAB/wE4AbwB5gH/ATgBvwHmAf8BPwG/AeQB/wE/AcEB5wH/AT8BxQHrAf8BOgG/AeQB/wEA + ARABhAH/AgUBUAH/AgQBUAH/AgABUAH/AgABUAH/AQEBBAFTAf8BAAENAYUB/wEAARMBjQH/AQABDgGI + Af8BAAETAY8B/wEAAQ8BiwH/AQABEgGUAf8BAAETAZYB/wEDARMBkwH/AQABEwGSAf8BAAEHAVQB/wEF + ARQBSQH/AScBlAG0Af8BDgErAYgB/wIEAVsB/xcAAQEDBAEFAwoBDgMaASUDMQFNA0QBeQFPAlABmwFT + AlQBrANUAa4DVQG1AVoCXgHYAm0BbgH3AfQD/wHKA/8BwwH7Av8BxAH8Av8B0Qf/Am0BbgH3AVgCWwHG A0MBeAMmATgDEAEVAwQBBgMAAQEzAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/ - JAADFQH/A5IB/wMVAf8BwwFLATMB/wHKAU4BNQH/AcgBTQE0Af8BjAEsARsB/wEJASIBPwH/AQQBQgGM - Af8BBAFOAZ0B/wFJARoBNgH/AcIBLwGQAf8BzQFAAasB/wHeAVQBxAH/Ae8BhwHaAf8B+wGTAewB/wH9 - AZgB9AH/AfsBkwHsAf8B7wGHAdoB/wHeAVQBxAH/Ac4BQAGsAf8BvQEsAYQB/wEYASwBTAH/ARYBVQGd - Af8BAAExAYQB/wE8ASMBJQH/AbABQAEqAf8BygFOATUB/wG7AUgBMQH/AxoB/wOSAf8DFQH/AgUBXAH/ - AQ8BMAGKAf8BKAGXAbYB/wEGARUBSgH/AQABBgFTAf8BAgETAY8B/wECARUBlwH/AQIBFQGXAf8BAgEV - AY8B/wECARUBjwH/AQIBFQGPAf8BAgESAYgB/wECAQYBVQH/AgEBUQH/AgABUQH/AgABUQH/AgABUQH/ - AgABUQH/AgEBUQH/AgYBUQH/AgcBUwH/AgcBWQH/AgcBWQH/AgcBXQH/AgcBgwH/AgcBgwH/AgcBXAH/ - AgABSwH/AQYBFQFKAf8BKAGUAbQB/wEPASwBiAH/AgUBXAH/EwABAQMEAQYDDwEUAyQBNQE/AkABbwNW - AbMBWwJhAeEDZQH0AWkBdQF6AfoBXQFyAXYB+AJZAWAB9QFaAXIBeQL6A/8BzQP/AcMB+wL/AcQB/AL/ - AdQD/wHzAfgB/AH/AlkBYgH1AVYCWAHBA0ABcAMgAS4DCwEPAwQBBQMAAQEbAAH/AwAB/wMAAf8DAAH/ + JAADFAH/A5IB/wMUAf8BwwFKATIB/wHKAU0BNAH/AcgBTAEzAf8BjAErARoB/wEIASEBPgH/AQMBQQGM + Af8BAwFNAZ0B/wFIARkBNQH/AcIBLgGQAf8BzQE/AasB/wHeAVMBxAH/Ae8BhwHaAf8B+wGTAewB/wH9 + AZgB9AH/AfsBkwHsAf8B7wGHAdoB/wHeAVMBxAH/Ac4BPwGsAf8BvQErAYQB/wEXASsBSwH/ARUBVAGd + Af8BAAEwAYQB/wE7ASIBJAH/AbABPwEpAf8BygFNATQB/wG7AUcBMAH/AxkB/wOSAf8DFAH/AgQBWwH/ + AQ4BLwGKAf8BJwGXAbYB/wEFARQBSQH/AQABBQFSAf8BAQESAY8B/wEBARQBlwH/AQEBFAGXAf8BAQEU + AY8B/wEBARQBjwH/AQEBFAGPAf8BAQERAYgB/wEBAQUBVAH/AgABUAH/AgABUAH/AgABUAH/AgABUAH/ + AgABUAH/AgABUAH/AgUBUAH/AgYBUgH/AgYBWAH/AgYBWAH/AgYBXAH/AgYBgwH/AgYBgwH/AgYBWwH/ + AgABSgH/AQUBFAFJAf8BJwGUAbQB/wEOASsBiAH/AgQBWwH/EwABAQMEAQYDDwEUAyQBNQE/AkABbwNW + AbMBWwJhAeEDZQH0AWgBdAF5AfoBXAFxAXUB+AJZAV4B9QFYAXEBeAL6A/8BzQP/AcMB+wL/AcQB/AL/ + AdQD/wHzAfgB/AH/AlkBYAH1AVYCWAHBA0ABcAMgAS4DCwEPAwQBBQMAAQEbAAH/AwAB/wMAAf8DAAH/ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/ - AgAC/wIAAv8CAAL/AgAC/wwAAxUB/wOWAf8DFQH/AcEBSAEzAf8ByAFLATQB/wHEAUkBMgH/AYcBKQEb - Af8BAAEoAVIB/wEWAVABlwH/AQgBSwGXAf8BgAEZAToB/wHGATUBmgH/AdUBSQG3Af8B6gGAAdIB/wH8 - AZYB8QL/AagB/gL/Aa8D/wGoAf4B/wH8AZYB8QH/AeoBgAHSAf8B1gFJAbcB/wHFATMBkwH/AS8BJQFB - Af8BFAFXAaAB/wEAAT0BjQH/ARoBIgE2Af8BjAEqARoB/wHHAUsBNAH/AbkBRQExAf8DGwH/A5YB/wMV - Af8CBQFbAf8BDwEuAYUB/wElAZUBtAH/AQUBFQFKAf8CAAFLAf8CBwFcAf8CBwGDAf8CBwGDAf8CBwFZ - Af8CBwFZAf8CBwFWAf8CBwFSAf8CAQFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFR - Af8CBQFRAf8CBwFTAf8CBwFZAf8CBwFZAf8CBwFZAf8CBwGDAf8CBwGDAf8CBwFcAf8CAAFLAf8BBgEV - AUoB/wEoAZQBtAH/AQ8BLAGIAf8CBQFcAf8QAAMCAQMDCwEPAyMBNAFEAkUBfAFXAloBxQJtAXQB9wHz + AgAC/wIAAv8CAAL/AgAC/wwAAxQB/wOWAf8DFAH/AcEBRwEyAf8ByAFKATMB/wHEAUgBMQH/AYcBKAEa + Af8BAAEnAVEB/wEVAU8BlwH/AQcBSgGXAf8BgAEYATkB/wHGATQBmgH/AdUBSAG3Af8B6gGAAdIB/wH8 + AZYB8QL/AagB/gL/Aa8D/wGoAf4B/wH8AZYB8QH/AeoBgAHSAf8B1gFIAbcB/wHFATIBkwH/AS4BJAFA + Af8BEwFWAaAB/wEAATwBjQH/ARkBIQE1Af8BjAEpARkB/wHHAUoBMwH/AbkBRAEwAf8DGgH/A5YB/wMU + Af8CBAFaAf8BDgEtAYUB/wEkAZUBtAH/AQQBFAFJAf8CAAFKAf8CBgFbAf8CBgGDAf8CBgGDAf8CBgFY + Af8CBgFYAf8CBgFVAf8CBgFRAf8CAAFQAf8CAAFQAf8CAAFQAf8CAAFQAf8CAAFQAf8CAAFQAf8CAAFQ + Af8CBAFQAf8CBgFSAf8CBgFYAf8CBgFYAf8CBgFYAf8CBgGDAf8CBgGDAf8CBgFbAf8CAAFKAf8BBQEU + AUkB/wEnAZQBtAH/AQ4BKwGIAf8CBAFbAf8QAAMCAQMDCwEPAyMBNAFEAkUBfAFXAloBxQJtAXEB9wHz AfgB/AH/AfED/wHnA/8B6gP/Ae8D/wHkA/8BzQP/AcMB+wL/AcYB/gL/AdoD/wHzAfgB/AH/AWQCZQH0 AVYCWAG8Az0BaQMdASoDCgENAwMBBCMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/DAADFQH/ - A5oB/wMVAf8BvgFHATIB/wHFAUkBMwH/Aa8BPQEqAf8BSQEjAR4B/wEAATIBiwH/AS0BiQGrAf8BBgE6 - AV0B/wGpASEBSwH/AcgBOQGhAf8B2gFOAbwB/wHwAYgB3AH/Af4BnwH6Av8BtAP/AcID/wG0Av8B/gGf - AfoB/wHwAYgB3AH/AdsBTgG9Af8ByQE4AZ0B/wFVARoBOQH/ARABVAGdAf8BHAFZAaIB/wEAAScBUgH/ - AYYBKAEaAf8BwwFIATIB/wG2AUQBMAH/AxsB/wOaAf8DFQH/AgUBWgH/AQ8BLAGDAf8BJwGUAbQB/wEG - ARUBSgH/AgABSwH/AgcBXAH/AgcBgwH/AgcBgwH/AgcBWQH/AgcBWQH/AgcBVAH/AgcBUQH/AgABUQH/ - AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgABUQH/AgcBUQH/AgcBVQH/AgcBWQH/ - AgcBWQH/AgcBgwH/AgcBgwH/AgcBXAH/AgABSwH/AQYBFQFKAf8BKAGUAbQB/wEPASwBiAH/AgUBXAH/ - EAADAwEEAxgBIQM9AWkBVwJZAb8BcQF3AXsB+gHxA/8BzgP/AcQB/AL/AcMB+wL/AcMB+wL/AcMB+wL/ - AcMB+wL/AcMB+wL/AcYB/gL/Ad4D/wGYAagBsgH+AU4CXQHwAVUCVwG3AzsBYwMaASUDCQEMAwMBBCcA + Af8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/DAADFAH/ + A5oB/wMUAf8BvgFGATEB/wHFAUgBMgH/Aa8BPAEpAf8BSAEiAR0B/wEAATEBiwH/ASwBiQGrAf8BBQE5 + AVwB/wGpASABSgH/AcgBOAGhAf8B2gFNAbwB/wHwAYgB3AH/Af4BnwH6Av8BtAP/AcID/wG0Av8B/gGf + AfoB/wHwAYgB3AH/AdsBTQG9Af8ByQE3AZ0B/wFUARkBOAH/AQ8BUwGdAf8BGwFYAaIB/wEAASYBUQH/ + AYYBJwEZAf8BwwFHATEB/wG2AUMBLwH/AxoB/wOaAf8DFAH/AgQBWQH/AQ4BKwGDAf8BJgGUAbQB/wEF + ARQBSQH/AgABSgH/AgYBWwH/AgYBgwH/AgYBgwH/AgYBWAH/AgYBWAH/AgYBUwH/AgYBUAH/AgABUAH/ + AgABUAH/AgABUAH/AgABUAH/AgABUAH/AgABUAH/AgABUAH/AgABUAH/AgYBUAH/AgYBVAH/AgYBWAH/ + AgYBWAH/AgYBgwH/AgYBgwH/AgYBWwH/AgABSgH/AQUBFAFJAf8BJwGUAbQB/wEOASsBiAH/AgQBWwH/ + EAADAwEEAxgBIQM9AWkBVwJZAb8BcAF2AXoB+gHxA/8BzgP/AcQB/AL/AcMB+wL/AcMB+wL/AcMB+wL/ + AcMB+wL/AcMB+wL/AcYB/gL/Ad4D/wGWAaYBsAH+AU4CXQHwAVUCVwG3AzsBYwMaASUDCQEMAwMBBCcA Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIA - Av8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/DAADFQH/A58B/wMVAf8BuwFEATEB/wHAAUUBMQH/ - AYYBJwEZAf8BDAEhAToB/wEAAUABlAH/ATQBlQG5Af8BJAErAUYB/wG4ASQBWAH/AccBOQGgAf8B2QFN - AbsB/wHvAYUB2gH/Af4BnQH6Av8BsQP/AbwD/wGxAv8B/gGdAfoB/wHvAYUB2gH/AdkBTQG8Af8BxwE4 - AZ8B/wGkAR4BRwH/AQ8BRAGJAf8BOgGXAbgB/wEAATABigH/AUgBIgEfAf8BrQE7ASkB/wGzAUEBLwH/ - AxsB/wOfAf8DFQH/AgUBWgH/AQ8BLAGDAf8BKAGUAbQB/wEGARUBSgH/AQEBEgFcAf8BDgE8AawB/wEP - AUEBtgH/AQ0BPwGwAf8BBwEuAaIB/wEDARgBjgH/AQQBCwFcAf8CBwFTAf8CAAFRAf8CAAFRAf8CAAFR - Af8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CAAFRAf8CBwFRAf8CBwFUAf8CBwFZAf8CBwFZAf8CBwGD - Af8CBwGDAf8CBwFcAf8CAAFLAf8BBgEVAUoB/wEnAZQBtAH/AQ8BLAGIAf8CBQFcAf8QAAMEAQYDIwEz - AU0CTgGVA2UB9AT/AdoD/wHZA/8B4AP/Ad0D/wHPA/8BxQH9Av8BwwH7Av8BwwH7Av8B0wP/AZgBqAGy + Av8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/DAADFAH/A58B/wMUAf8BuwFDATAB/wHAAUQBMAH/ + AYYBJgEYAf8BCwEgATkB/wEAAT8BlAH/ATMBlQG5Af8BIwEqAUUB/wG4ASMBVwH/AccBOAGgAf8B2QFM + AbsB/wHvAYUB2gH/Af4BnQH6Av8BsQP/AbwD/wGxAv8B/gGdAfoB/wHvAYUB2gH/AdkBTAG8Af8BxwE3 + AZ8B/wGkAR0BRgH/AQ4BQwGJAf8BOQGXAbgB/wEAAS8BigH/AUcBIQEeAf8BrQE6ASgB/wGzAUABLgH/ + AxoB/wOfAf8DFAH/AgQBWQH/AQ4BKwGDAf8BJwGUAbQB/wEFARQBSQH/AQABEQFbAf8BDQE7AawB/wEO + AUABtgH/AQwBPgGwAf8BBgEtAaIB/wECARcBjgH/AQMBCgFbAf8CBgFSAf8CAAFQAf8CAAFQAf8CAAFQ + Af8CAAFQAf8CAAFQAf8CAAFQAf8CAAFQAf8CAAFQAf8CBgFQAf8CBgFTAf8CBgFYAf8CBgFYAf8CBgGD + Af8CBgGDAf8CBgFbAf8CAAFKAf8BBQEUAUkB/wEmAZQBtAH/AQ4BKwGIAf8CBAFbAf8QAAMEAQYDIwEz + AU0CTgGVA2UB9AT/AdoD/wHZA/8B4AP/Ad0D/wHPA/8BxQH9Av8BwwH7Av8BwwH7Av8B0wP/AZYBpgGw Af4BTgJdAfABVQJXAbcDOgFgAxgBIgMIAQsDAgEDKwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA Af8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIA - Av8MAAMVAf8DpAH/AxUB/wG5AUEBLwH/AaABMwEjAf8BQwEfAR0B/wEAASEBWQH/ASMBWAGiAf8BCwFJ - AZIB/wFRAREBIgH/AbcBJAFbAf8BwgE1AZsB/wHTAUcBswH/AeYBXAHPAf8B+gGRAesC/wGgAfwC/wGo - Af4C/wGgAfwB/wH6AZEB6wH/AeYBXAHPAf8B0wFHAbQB/wHDATQBmgH/AbYBIgFPAf8BJQEdATEB/wEf - AVoBpAH/AQABPgGRAf8BBwEZATUB/wGEASUBFwH/AakBOgEqAf8DGwH/A6QB/wMVAf8CBQFbAf8BDwEs - AYUB/wEoAZQBtAH/AQYBFQFKAf8BDQEyAZIB/wFMAeQB9QH/AVEB6QL/AUoB4AH4Af8BLQGxAd8B/wEV - AUoBtQH/AQcBGQGKAf8BBwEJAVMB/wIBAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIA - AVEB/wIFAVEB/wIHAVIB/wIHAVYB/wIHAVsB/wEEAQwBhAH/AQMBEQGNAf8BAwEPAYwB/wEGAQoBgwH/ - AgABTAH/AQUBFQFKAf8BJQGVAbQB/wEPAS4BiAH/AgUBXAH/EAADBAEGAyIBMgFMAk0BkQNkAfEBqAGp - AawB/QGMAaEBrwH+AqgBrQH9AW0BhQGLAfsBaAF6AYIB/AHnAfEB+AH/AdUD/wHDAfsC/wHDAfsC/wHg - A/8BXwGAAYkB+wFaAl0B0wNCAXQDGgElAwYBCAMBAQIvAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/ - AgAC/wwAAxUB/wOqAf8DFQH/AakBNwEoAf8BSwEgAR0B/wE8AZYBtQH/AVUBwQHkAf8BlAHYAesB/wEA - AS8BiAH/AQABIgFDAf8BoQEaAUIB/wG/AS0BjgH/AcoBPQGmAf8B2gFOAbwB/wHoAYEB0gH/AfQBigHh - Af8B+QGQAegB/wH0AYoB4QH/AegBgQHSAf8B2gFOAb0B/wHLAT0BpQH/AcABLAGKAf8BWwEZATYB/wEA - ASABUAH/ARwBWgGpAf8BnAHhAe8B/wFHAbAB1gH/AS8BKAEwAf8BkAEsAR8B/wMcAf8DqgH/AxUB/wIF - AVwB/wEPASwBiAH/ASgBlAG0Af8BBgEVAUoB/wEDARwBigH/ARYBjAHPAf8BFgGTAdwB/wEXAY8B1QH/ - AQ0BVAHDAf8BBwEuAaUB/wECARIBiQH/AQIBCAFYAf8CBgFRAf8CAQFRAf8CAAFRAf8CAAFRAf8CAAFR - Af8CAAFRAf8CAQFRAf8CBgFRAf8CBwFTAf8CBwFbAf8BBwEWAY4B/wEUAUwBuAH/ASoBmgHSAf8BIQGN - AcsB/wELATMBpQH/AQABCAFUAf8BBgEVAUoB/wEoAZcBtgH/AQ8BMAGKAf8CBQFcAf8QAAMDAQQDFgEe - AzYBWQFPAlEBnAFXAlkBvwFZAlwByQFaAl0BygFcAl4BzgFYAl8B4wFXAmIB9gHwA/8BwwH7Av8BwwH7 - Av8B3QP/AXIBfgGIAfwDWQHHAzcBWwMPARQDAAEBTwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIA - Av8CAAL/AgAC/yQAAxUB/wOwAf8DFQH/Aa8BOAErAf8BWgEfARcB/wE9ARoBHAH/ATgBVAGFAf8BsAHu - AfcB/wGbAeMB7wH/AQABMgGRAf8BBwEuAUcB/wGlAR4BSgH/AcABMQGVAf8BywE/AakB/wHWAUoBtwH/ - Ad4BVAHCAf8B4QFWAcYB/wHeAVQBwgH/AdYBSgG3Af8BywE/AagB/wHDATABkQH/AYEBGgE8Af8BAAE4 - AYAB/wEPAVIBpQH/AbcB8wH6Af8BlgHaAeQB/wEwASUBLQH/AVABHgEZAf8BowEzASgB/wMcAf8DsAH/ - AxUB/wIFAVwB/wEPASwBiAH/ASgBlAG0Af8BBgEVAUoB/wEDASoBjwH/ATYBxwHoAf8BPQHQAfMB/wE+ - AcsB8gH/ATQBuwHmAf8BHgGNAcwB/wEKATUBpQH/AQUBEQGBAf8BAAEGAVEB/wIAAVEB/wIAAVEB/wIA - AVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIAAVEB/wIHAVEB/wEEAQoBWwH/ARABSgG1Af8BPwHQAfEB/wFP - AekB/QH/AUwB5QH7Af8BKAGpAdwB/wECARkBhAH/AQYBFgFKAf8BKAGbAbgB/wEPATABiwH/AgUBXAH/ - EAADAgEDAwoBDQMcAScDLwFJAzwBZgNEAXoDSAGEAU4CTwGXAVkCXAHMAVMCZAHxBP8BwwH7Av8BwwH7 - Av8B1wP/AagBqgGuAf0DWwHIAzcBWgMLAQ9TAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIA - Av8CAAL/JAADFQH/A7YB/wMVAf8BsAE3ASsB/wGyATcBKgH/AZ8BLgEiAf8BWwEeARUB/wEiARoBKQH/ - AZMB1AHoAf8BlgHeAe8B/wEAAUEBlgH/ARoBJQE8Af8BuAEiAVUB/wG/AS8BkwH/AcYBOAGgAf8BywE+ - AaYB/wHNAUABqgH/AcsBPgGmAf8BxgE4AaAB/wHAAS8BkQH/AZ0BHQFGAf8BAAE6AVQB/wEPAVEBqAH/ - Aa8B6wH4Af8BTgGgAcMB/wFAAhkB/wFdAR4BFAH/Aa0BNQEoAf8BqQE1ASoB/wMcAf8DtgH/AxUB/wIF - AVwB/wEPASwBiAH/AScBlAG0Af8BBgEVAUoB/wEBASUBjgH/AS8BwwHnAf8BNgHOAfIB/wE2AcgB8gH/ - ASwBtAHmAf8BGQGKAcoB/wEJATMBnwH/AQABDQFXAf8CAAFIAf8CAAFGAf8CAAFGAf8CAAFGAf8CAAFG - Af8CAAFGAf8CAAFGAf8CAAFGAf8CAAFHAf8BAAEHAVUB/wEgAZUBywH/AUQB6QH9Af8BRgHuAv8BRgHu - Av8BOAHVAfAB/wEBASYBkAH/AQYBFwFKAf8BKAGcAbkB/wEPATABiwH/AgUBXAH/EwABAQMHAQkDFgEf - Ay8BSQFBAkIBcwFMAk0BkQFQAlIBowFVAlcBugNfAeABSQJiAfYB8wP/AcMB+wL/AcMB+wL/Ad0D/wFy - AX4BiAH8AVcCWgG9AzEBTwMJAQxTAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/ - JAADFQH/A7sB/wMVAf8BrQE0ASoB/wGzATYBKwH/AbMBNgErAf8BqAExASYB/wFaARsBFAH/ASIBGgEp - Af8BkQHRAeoB/wFZAboB3QH/AQABSgGTAf8BQwEXATIB/wG4ASABWAH/AbwBKAGHAf8BwAEqAYoB/wG/ - ASsBjAH/AcABKgGKAf8BvAEnAYYB/wG0AR8BUAH/ARYBKAE9Af8BBAFQAaIB/wGdAd4B8QH/AU4BoAHG - Af8BQgEYARkB/wGWASgBHwH/AbIBNgErAf8BswE2ASsB/wGmATIBKQH/Ax0B/wO7Af8DFQH/AgUBXAH/ - AQ8BLAGIAf8BIwGUAbQB/wEFARUBSgH/AQABFwGFAf8BDQGCAcoB/wEMAY4B1wH/AQwBigHXAf8BDAGG - Ac8B/wEMAVQBwAH/AQYBOwGqAf8BAgEcAYwB/wIAAUMB/wIAAT0B/wIAAT0B/wIAAT0B/wIAAT0B/wIA - AT0B/wIAAT0B/wIAAT8B/wIAAUEB/wEAAQQBUQH/ARYBgAHBAf8BOQHjAfsB/wE9Ae4C/wE9Ae4C/wEq - AcYB6gH/AQABHgGMAf8BBgEXAUwB/wEoAZ0BvQH/AQ8BMQGLAf8CBQFcAf8TAAEBAwoBDQMqAUABTgJP - AZcBWAJcAdEDXAHqA2cB8gJZAWIB9QFtAYUBiwH7AdoB6gH1Af8B2AP/AcMB+wL/AcUB/QL/Ae8D/wNi - AfYBUAJSAaMDJwE6AwcBCVMAAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIAAv8kAAMV - Af8DwAH/AxUB/wGpATIBKAH/Aa8BMwEpAf8BrwEzASkB/wGvATMBKQH/AaUBLgElAf8BVgEZARIB/wEj - ASwBQQH/AZgB2gHxAf8BLwGPAbwB/wEAATUBUQH/AVIBDQEjAf8BRgEZATQB/wE1AR8BOgH/ATUBHwE6 - Af8BOQEeATkB/wFOARUBMAH/ATwBEAEhAf8BAAFFAZAB/wFdAbwB4AH/AYQBuwHhAf8BNAEWARwB/wGR - ASUBHAH/Aa8BMwEpAf8BrwEzASkB/wGvATMBKQH/AaIBMAEnAf8DHQH/A8AB/wMVAf8CBQFdAf8BDwEs - AYsB/wEmAZQBtAH/AQIBEQFGAf8BAQElAYwB/wEuAdoB6wH/ATMB5AH1Af8BMwHiAfUB/wEuAdkB8wH/ - ASgBwgHpAf8BGQGTAdEB/wEJATUBowH/AgABOgH/AgABMwH/AgABMwH/AgABMwH/AgABMwH/AgABMwH/ - AgABMwH/AgABNgH/AgABNgH/AgABPgH/AQABJAGQAf8BGgGeAdYB/wEuAdEB8AH/ASgBwwHqAf8BDwFV - Ab0B/wEAAQgBUwH/AQMBEwFMAf8BKAGdAb0B/wEPATEBjgH/AgUBXQH/EwABAQMPARQDOwFjA14B2AT/ - AfsD/wHzA/8B7gP/AeID/wHRA/8BxgH+Av8BxAH8Av8B1gP/AecB8QH4Af8BVwJcAd8DRAF5AxgBIgME - AQZTAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JAADFQH/A8cB/wMVAf8BpgEu - AScB/wGsAS8BKAH/AawBLwEoAf8BrAEvASgB/wGsAS8BKAH/AZoBJwEgAf8BTQEXARUB/wFAAZABsgH/ - AZYB0gHxAf8BBQFIAaIB/wEAAUEBiwH/AQABSQGTAf8BAwFPAZoB/wEFAVEBnAH/AQIBTgGXAf8BAAFJ - AZMB/wEAATwBiwH/ASoBiQG7Af8BmAHYAfMB/wEkATIBSAH/AVUBFwESAf8BqwEuAScB/wGsAS8BKAH/ - AawBLwEoAf8BrAEvASgB/wGfAS0BJgH/Ax0B/wPHAf8DFQH/AgcBhQH/ARMBMwGNAf8BKAGXAbQB/wEA - AQ8BRAH/AQABBgFFAf8BAQEpAYwB/wECASsBkgH/AQIBKwGSAf8BAAEpAZAB/wEAASQBhgH/AQABFwFX - Af8BAAEIAUcB/wIAATAB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIAASoB/wIA - ATAB/wIAATEB/wEAAQEBPAH/AQABDwFXAf8BAAElAYoB/wEAAR0BhQH/AQABCAFQAf8CAAE9Af8BAAEQ - AUUB/wEoAZwBuQH/ARMBNAGRAf8CBwGFAf8TAAEBAw0BEgM4AVwBWAJbAcsBmAGlAa4B/gHqA/8BzQP/ - AcQB/AL/AcMB+wL/AcMB+wL/AcYB/gL/AdgD/wHzAfgB/AH/A10B8ANSAakDLgFHAwwBEAMCAQNTAAH/ - AwAB/wMAAf8DAAH/AwAB/0QAAxUB/wPPAf8DFQH/AaMBKwElAf8BqAEsASYB/wGoASwBJgH/AagBLAEm - Af8BqAEsASYB/wGoASwBJgH/AY0BHwEaAf8BKAEaASUB/wGMAdIB8wH/AcMB8AH4Af8B1QHuAfcB/wHg - AfcB/AH/AecD/wHoA/8B5gH+Av8B3QHyAfoB/wHNAe0B9wH/AbUB7wH7Af8BTgGrAc8B/wFDARMBFQH/ - AZYBJAEeAf8BqAEsASYB/wGoASwBJgH/AagBLAEmAf8BqAEsASYB/wGdASoBJAH/Ax4B/wPPAf8DFQH/ - Ag0BigH/ARQBNgGYAf8BKQGVAbYB/wETAToBiAH/AQUBEwFDAf8BBQETAUgB/wEFARMBSAH/AQUBEwFI - Af8BBQETAUIB/wEFARMBQgH/AQUBEwFCAf8BBQETAT0B/wEAAQ0BPAH/AQABDQE8Af8BAAENATwB/wEA - AQ0BPAH/AQABDQE8Af8BAAENATwB/wEAAQ0BPAH/AQABDQE8Af8BBQETAT0B/wEFARQBQwH/AQUBFQFE - Af8BBQEVAUQB/wEFARUBSgH/AQUBFQFKAf8BBQEUAUkB/wEFARMBQwH/AREBOgGHAf8BKAGUAbUB/wEU - ATYBmAH/Ag0BigH/EwABAQMHAQoDJgE4A0oBiwFZAlwBzwFnAXIBdgH4AfMB+AH8Af8B8gP/AeYD/wHo - A/8B+gP/AZgBqAGyAf4DYQHuA1UBsgM4AVwDFQEdAwUBBwMAAQFTAAH/AwAB/wMAAf8DAAH/AwAB/0QA - AxUB/wPXAf8DFQH/AZ8BKAEkAf8BpAEpASUB/wGkASkBJQH/AaQBKQElAf8BpAEpASUB/wGkASkBJQH/ - AZkBJAEgAf8BPQERARUB/wGvAdwB5AH/AeIB8AHyAf8BjQGkAa8B/wFBAUcBUwH/AS8BKwE5Af8BMAEs - AToB/wEyAS8BPAH/AUwBWAGGAf8BpQHAAcUB/wHvAvsB/wE4AYIBlwH/AU4BEgERAf8BowEoASQB/wGk - ASkBJQH/AaQBKQElAf8BpAEpASUB/wGkASkBJQH/AZkBJwEjAf8DHgH/A9cB/wMVAf8CDgGUAf8BEwEx - AZsB/wE0AaIBwwH/AUcBtwHNAf8BQwG5Ac0B/wFDAbkBzQH/AUEBuQHNAf8BQAG5Ac0B/wFAAbkBzQH/ - AUABuQHNAf8BQAG5Ac0B/wFAAbkBzQH/AUABuQHNAf8BQAG5Ac0B/wFAAbkBzQH/AUABuQHNAf8BQAG5 - Ac0B/wFAAbkBzQH/AUABuQHNAf8BQAG5Ac0B/wFDAbkBzQH/AUMBvAHPAf8BQwG/AdIB/wFDAb8B0gH/ - AUMBvwHSAf8BQwG/AdIB/wFBAbwBzwH/AUABuQHNAf8BPwG2AcgB/wEvAZ4BwAH/ARMBMAGbAf8CDgGU - Af8UAAMEAQUDEQEXAykBPwNEAXkBVQJWAbQBXAJhAdwDXwHzAWkBdQF6AfoBaQF1AXoB+gNdAe0BWwJe - AdABUAJRAZ8DNgFZAxgBIQMHAQoDAQECVwAB/wMAAf8DAAH/AwAB/wMAAf9EAAMVAf8D3wH/AxUB/wGc - ASUBIwH/AaEBJgEkAf8BoQEmASQB/wGhASYBJAH/AaEBJgEkAf8BoQEmASQB/wGbASMBIQH/AUMBEAET - Af8BjwGWAaEB/wExAQ4BFgH/AUsCEAH/AU4BEAEPAf8BgQEYARYB/wGBARgBFgH/AYEBGAEWAf8BTQEQ - AQ8B/wFIARABEQH/ASUBGQEoAf8BVQFZAYgB/wFNARABDwH/AaABJQEjAf8BoQEmASQB/wGhASYBJAH/ - AaEBJgEkAf8BoQEmASQB/wGWASQBIgH/Ax8B/wPfAf8DFQH/Ag8BngH/ARABFwGUAf8BHwE5AZ8B/wEy - AVkBrgH/ATUBXQGrAf8BNQFdAasB/wEzAV0BqwH/ATIBXQGnAf8BMgFdAaYB/wEwAVoBpgH/ASwBVwGm - Af8BLAFXAaIB/wEsAVcBoQH/ASwBVwGhAf8BLAFXAaEB/wEsAVcBoQH/ASwBVwGhAf8BLAFXAaEB/wEs - AVcBoQH/ASwBVwGhAf8BMAFXAaIB/wEwAVcBpgH/ATMBWgGmAf8BNQFdAaYB/wE1AV0BpwH/ATUBXQGr - Af8BMwFdAasB/wEyAV0BqwH/AS8BWQGuAf8BHQE5AZ8B/wEQARcBlAH/Ag8BngH/FwABAQMEAQYDDAEQ - AxwBKAMxAU0DQgF1A04BmQFTAlUBrQNSAakDSwGOATwCPQFnAykBPgMUARsDBwEJAwIBA1sAAf8DAAH/ - AwAB/wMAAf8DAAH/RAADTAHzA98B/wMsAf8BigIfAf8BmwEhASIB/wGbASEBIgH/AZsBIQEiAf8BmwEh - ASIB/wGbASEBIgH/AZoBIAEhAf8BSAENAQ4B/wFCAQ0BEAH/AUoCDQH/AZkBIAEhAf8BmgEhASIB/wGb - ASEBIgH/AZsBIQEiAf8BmwEhASIB/wGaASABIQH/AZIBHQEeAf8BSQINAf8BPwENAREB/wFKAg0B/wGa - ASEBIgH/AZsBIQEiAf8BmwEhASIB/wGbASEBIgH/AZsBIQEiAf8BWgEdAR4B/wM0Af8D3QH/A04B8AIU - AaQB/wIPAZ4B/wIOAZQB/wINAY8B/wINAYwB/wINAYYB/wINAYIB/wIIAVwB/wIHAVwB/wIGAVkB/wIF - AVYB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIFAVQB/wIF - AVQB/wIFAVYB/wIGAVkB/wIHAVwB/wIIAVwB/wINAYIB/wINAYYB/wINAYwB/wINAY8B/wIOAZQB/wIP - AZ4B/wIUAaQB/xsAAQEDAgEDAwYBCAMMARADFgEeAyIBMgMqAUADKQE+Ax8BLAMSARkDCgENAwQBBgMB - AQJfAAH/AwAB/wMAAf8DAAH/AwAB/0QAA1cBvQO/Af8DlAH/AUABHgEgAf8BigEdASMB/wGTARsBIgH/ - AZMBGwEiAf8BkwEbASIB/wGTARsBIgH/AZMBGwEiAf8BkgEbASEB/wGOARkBIAH/AZIBGwEiAf8BkwEb - ASIB/wGTARsBIgH/AZMBGwEiAf8BkwEbASIB/wGTARsBIgH/AZMBGwEiAf8BkwEbASIB/wGSARsBIQH/ - AY0BGQEfAf8BkgEbASIB/wGTARsBIgH/AZMBGwEiAf8BkwEbASIB/wGTARsBIgH/AYABHgEjAf8BNQEd - AR8B/wO0Af8DtAH/A1QBrgIXAawB/wIXAakB/wIXAaYB/wISAaYB/wIRAaYB/wIRAaMB/wIRAZ8B/wIP - AZ4B/wIPAZcB/wIPAZcB/wIPAZYB/wIPAZYB/wIPAY4B/wIPAY4B/wIPAY4B/wIPAY4B/wIPAY4B/wIP - AY4B/wIPAY4B/wIPAY4B/wIPAZYB/wIPAZYB/wIPAZcB/wIPAZcB/wIPAZ4B/wIRAZ8B/wIRAaMB/wIR - AaYB/wISAaYB/wIXAaYB/wIXAakB/wIXAawB/yQAAwEBAgMDBAQEBgEIAwYBCAMEAQYDAwEEAwABAWcA - Af8DAAH/AwAB/wMAAf8DAAH/RAADNAFUA0QB/wPuAf8DkwH/AysB/wMVAf8DFQH/AxUB/wMVAf8DFQH/ - AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/ - AxUB/wMVAf8DNAH/A7IB/wPqAf8DNAH/Ay0BRQIXAawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB/wIX - AawB/wIXAawB/wITAagB/wISAaQB/wIPAaIB/wIPAZ8B/wIPAZ8B/wIPAZwB/wIPAZwB/wIPAZwB/wIP - AZwB/wIPAZwB/wIPAZwB/wIPAZwB/wIPAZwB/wIPAZ8B/wIPAZ8B/wIPAaIB/wISAacB/wITAagB/wIX - AawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB/wIXAawB//8ABQADSgGNA0MB/wPNAf8D+QH/ + Av8MAAMUAf8DpAH/AxQB/wG5AUABLgH/AaABMgEiAf8BQgEeARwB/wEAASABWAH/ASIBVwGiAf8BCgFI + AZIB/wFQARABIQH/AbcBIwFaAf8BwgE0AZsB/wHTAUYBswH/AeYBWwHPAf8B+gGRAesC/wGgAfwC/wGo + Af4C/wGgAfwB/wH6AZEB6wH/AeYBWwHPAf8B0wFGAbQB/wHDATMBmgH/AbYBIQFOAf8BJAEcATAB/wEe + AVkBpAH/AQABPQGRAf8BBgEYATQB/wGEASQBFgH/AakBOQEpAf8DGgH/A6QB/wMUAf8CBAFaAf8BDgEr + AYUB/wEnAZQBtAH/AQUBFAFJAf8BDAExAZIB/wFLAeQB9QH/AVAB6QL/AUkB4AH4Af8BLAGxAd8B/wEU + AUkBtQH/AQYBGAGKAf8BBgEIAVIB/wIAAVAB/wIAAVAB/wIAAVAB/wIAAVAB/wIAAVAB/wIAAVAB/wIA + AVAB/wIEAVAB/wIGAVEB/wIGAVUB/wIGAVoB/wEDAQsBhAH/AQIBEAGNAf8BAgEOAYwB/wEFAQkBgwH/ + AgABSwH/AQQBFAFJAf8BJAGVAbQB/wEOAS0BiAH/AgQBWwH/EAADBAEGAyIBMgFMAk0BkQNkAfECqAGr + Af0BigGfAa0B/gKoAawB/QFqAYQBigH7AWcBeQF/AfwB5wHxAfgB/wHVA/8BwwH7Av8BwwH7Av8B4AP/ + AV8BfwGIAfsBWgJdAdMDQgF0AxoBJQMGAQgDAQECLwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIA + Av8MAAMUAf8DqgH/AxQB/wGpATYBJwH/AUoBHwEcAf8BOwGWAbUB/wFUAcEB5AH/AZQB2AHrAf8BAAEu + AYgB/wEAASEBQgH/AaEBGQFBAf8BvwEsAY4B/wHKATwBpgH/AdoBTQG8Af8B6AGBAdIB/wH0AYoB4QH/ + AfkBkAHoAf8B9AGKAeEB/wHoAYEB0gH/AdoBTQG9Af8BywE8AaUB/wHAASsBigH/AVoBGAE1Af8BAAEf + AU8B/wEbAVkBqQH/AZwB4QHvAf8BRgGwAdYB/wEuAScBLwH/AZABKwEeAf8DGwH/A6oB/wMUAf8CBAFb + Af8BDgErAYgB/wEnAZQBtAH/AQUBFAFJAf8BAgEbAYoB/wEVAYwBzwH/ARUBkwHcAf8BFgGPAdUB/wEM + AVMBwwH/AQYBLQGlAf8BAQERAYkB/wEBAQcBVwH/AgUBUAH/AgABUAH/AgABUAH/AgABUAH/AgABUAH/ + AgABUAH/AgABUAH/AgUBUAH/AgYBUgH/AgYBWgH/AQYBFQGOAf8BEwFLAbgB/wEpAZoB0gH/ASABjQHL + Af8BCgEyAaUB/wEAAQcBUwH/AQUBFAFJAf8BJwGXAbYB/wEOAS8BigH/AgQBWwH/EAADAwEEAxYBHgM2 + AVkBTwJRAZwBVwJZAb8BWQJcAckBWgJdAcoBXAJeAc4BWAJfAeMBVwJiAfYB8AP/AcMB+wL/AcMB+wL/ + Ad0D/wFxAX0BhQH8A1kBxwM3AVsDDwEUAwABAU8AAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/ + AgAC/wIAAv8kAAMUAf8DsAH/AxQB/wGvATcBKgH/AVkBHgEWAf8BPAEZARsB/wE3AVMBhQH/AbAB7gH3 + Af8BmwHjAe8B/wEAATEBkQH/AQYBLQFGAf8BpQEdAUkB/wHAATABlQH/AcsBPgGpAf8B1gFJAbcB/wHe + AVMBwgH/AeEBVQHGAf8B3gFTAcIB/wHWAUkBtwH/AcsBPgGoAf8BwwEvAZEB/wGBARkBOwH/AQABNwGA + Af8BDgFRAaUB/wG3AfMB+gH/AZYB2gHkAf8BLwEkASwB/wFPAR0BGAH/AaMBMgEnAf8DGwH/A7AB/wMU + Af8CBAFbAf8BDgErAYgB/wEnAZQBtAH/AQUBFAFJAf8BAgEpAY8B/wE1AccB6AH/ATwB0AHzAf8BPQHL + AfIB/wEzAbsB5gH/AR0BjQHMAf8BCQE0AaUB/wEEARABgQH/AQABBQFQAf8CAAFQAf8CAAFQAf8CAAFQ + Af8CAAFQAf8CAAFQAf8CAAFQAf8CAAFQAf8CBgFQAf8BAwEJAVoB/wEPAUkBtQH/AT4B0AHxAf8BTgHp + Af0B/wFLAeUB+wH/AScBqQHcAf8BAQEYAYQB/wEFARUBSQH/AScBmwG4Af8BDgEvAYsB/wIEAVsB/xAA + AwIBAwMKAQ0DHAEnAy8BSQM8AWYDRAF6A0gBhAFOAk8BlwFZAlwBzAFTAmQB8QT/AcMB+wL/AcMB+wL/ + AdcD/wGoAakBrQH9A1sByAM3AVoDCwEPUwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/ + AgAC/yQAAxQB/wO2Af8DFAH/AbABNgEqAf8BsgE2ASkB/wGfAS0BIQH/AVoBHQEUAf8BIQEZASgB/wGT + AdQB6AH/AZYB3gHvAf8BAAFAAZYB/wEZASQBOwH/AbgBIQFUAf8BvwEuAZMB/wHGATcBoAH/AcsBPQGm + Af8BzQE/AaoB/wHLAT0BpgH/AcYBNwGgAf8BwAEuAZEB/wGdARwBRQH/AQABOQFTAf8BDgFQAagB/wGv + AesB+AH/AU0BoAHDAf8BPwIYAf8BXAEdARMB/wGtATQBJwH/AakBNAEpAf8DGwH/A7YB/wMUAf8CBAFb + Af8BDgErAYgB/wEmAZQBtAH/AQUBFAFJAf8BAAEkAY4B/wEuAcMB5wH/ATUBzgHyAf8BNQHIAfIB/wEr + AbQB5gH/ARgBigHKAf8BCAEyAZ8B/wEAAQwBVgH/AgABRwH/AgABRQH/AgABRQH/AgABRQH/AgABRQH/ + AgABRQH/AgABRQH/AgABRQH/AgABRgH/AQABBgFUAf8BHwGVAcsB/wFDAekB/QH/AUUB7gL/AUUB7gL/ + ATcB1QHwAf8BAAElAZAB/wEFARYBSQH/AScBnAG5Af8BDgEvAYsB/wIEAVsB/xMAAQEDBwEJAxYBHwMv + AUkBQQJCAXMBTAJNAZEBUAJSAaMBVQJXAboDXwHgAUkCYgH2AfMD/wHDAfsC/wHDAfsC/wHdA/8BcQF9 + AYUB/AFXAloBvQMxAU8DCQEMUwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/yQA + AxQB/wO7Af8DFAH/Aa0BMwEpAf8BswE1ASoB/wGzATUBKgH/AagBMAElAf8BWQEaARMB/wEhARkBKAH/ + AZEB0QHqAf8BWAG6Ad0B/wEAAUkBkwH/AUIBFgExAf8BuAEfAVcB/wG8AScBhwH/AcABKQGKAf8BvwEq + AYwB/wHAASkBigH/AbwBJgGGAf8BtAEeAU8B/wEVAScBPAH/AQMBTwGiAf8BnQHeAfEB/wFNAaABxgH/ + AUEBFwEYAf8BlgEnAR4B/wGyATUBKgH/AbMBNQEqAf8BpgExASgB/wMcAf8DuwH/AxQB/wIEAVsB/wEO + ASsBiAH/ASIBlAG0Af8BBAEUAUkB/wEAARYBhQH/AQwBggHKAf8BCwGOAdcB/wELAYoB1wH/AQsBhgHP + Af8BCwFTAcAB/wEFAToBqgH/AQEBGwGMAf8CAAFCAf8CAAE8Af8CAAE8Af8CAAE8Af8CAAE8Af8CAAE8 + Af8CAAE8Af8CAAE+Af8CAAFAAf8BAAEDAVAB/wEVAYABwQH/ATgB4wH7Af8BPAHuAv8BPAHuAv8BKQHG + AeoB/wEAAR0BjAH/AQUBFgFLAf8BJwGdAb0B/wEOATABiwH/AgQBWwH/EwABAQMKAQ0DKgFAAU4CTwGX + AVgCXAHRA1wB6gNnAfICWQFgAfUBagGEAYoB+wHaAeoB9QH/AdgD/wHDAfsC/wHFAf0C/wHvA/8DYgH2 + AVACUgGjAycBOgMHAQlTAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JAADFAH/ + A8AB/wMUAf8BqQExAScB/wGvATIBKAH/Aa8BMgEoAf8BrwEyASgB/wGlAS0BJAH/AVUBGAERAf8BIgEr + AUAB/wGYAdoB8QH/AS4BjwG8Af8BAAE0AVAB/wFRAQwBIgH/AUUBGAEzAf8BNAEeATkB/wE0AR4BOQH/ + ATgBHQE4Af8BTQEUAS8B/wE7AQ8BIAH/AQABRAGQAf8BXAG8AeAB/wGEAbsB4QH/ATMBFQEbAf8BkQEk + ARsB/wGvATIBKAH/Aa8BMgEoAf8BrwEyASgB/wGiAS8BJgH/AxwB/wPAAf8DFAH/AgQBXAH/AQ4BKwGL + Af8BJQGUAbQB/wEBARABRQH/AQABJAGMAf8BLQHaAesB/wEyAeQB9QH/ATIB4gH1Af8BLQHZAfMB/wEn + AcIB6QH/ARgBkwHRAf8BCAE0AaMB/wIAATkB/wIAATIB/wIAATIB/wIAATIB/wIAATIB/wIAATIB/wIA + ATIB/wIAATUB/wIAATUB/wIAAT0B/wEAASMBkAH/ARkBngHWAf8BLQHRAfAB/wEnAcMB6gH/AQ4BVAG9 + Af8BAAEHAVIB/wECARIBSwH/AScBnQG9Af8BDgEwAY4B/wIEAVwB/xMAAQEDDwEUAzsBYwNeAdgE/wH7 + A/8B8wP/Ae4D/wHiA/8B0QP/AcYB/gL/AcQB/AL/AdYD/wHnAfEB+AH/AVcCXAHfA0QBeQMYASIDBAEG + UwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/yQAAxQB/wPHAf8DFAH/AaYBLQEm + Af8BrAEuAScB/wGsAS4BJwH/AawBLgEnAf8BrAEuAScB/wGaASYBHwH/AUwBFgEUAf8BPwGQAbIB/wGW + AdIB8QH/AQQBRwGiAf8BAAFAAYsB/wEAAUgBkwH/AQIBTgGaAf8BBAFQAZwB/wEBAU0BlwH/AQABSAGT + Af8BAAE7AYsB/wEpAYkBuwH/AZgB2AHzAf8BIwExAUcB/wFUARYBEQH/AasBLQEmAf8BrAEuAScB/wGs + AS4BJwH/AawBLgEnAf8BnwEsASUB/wMcAf8DxwH/AxQB/wIGAYUB/wESATIBjQH/AScBlwG0Af8BAAEO + AUMB/wEAAQUBRAH/AQABKAGMAf8BAQEqAZIB/wEBASoBkgH/AQABKAGQAf8BAAEjAYYB/wEAARYBVgH/ + AQABBwFGAf8CAAEvAf8CAAEpAf8CAAEpAf8CAAEpAf8CAAEpAf8CAAEpAf8CAAEpAf8CAAEpAf8CAAEv + Af8CAAEwAf8CAAE7Af8BAAEOAVYB/wEAASQBigH/AQABHAGFAf8BAAEHAU8B/wIAATwB/wEAAQ8BRAH/ + AScBnAG5Af8BEgEzAZEB/wIGAYUB/xMAAQEDDQESAzgBXAFYAlsBywGWAaMBrAH+AeoD/wHNA/8BxAH8 + Av8BwwH7Av8BwwH7Av8BxgH+Av8B2AP/AfMB+AH8Af8DXQHwA1IBqQMuAUcDDAEQAwIBA1MAAf8DAAH/ + AwAB/wMAAf8DAAH/RAADFAH/A88B/wMUAf8BowEqASQB/wGoASsBJQH/AagBKwElAf8BqAErASUB/wGo + ASsBJQH/AagBKwElAf8BjQEeARkB/wEnARkBJAH/AYwB0gHzAf8BwwHwAfgB/wHVAe4B9wH/AeAB9wH8 + Af8B5wP/AegD/wHmAf4C/wHdAfIB+gH/Ac0B7QH3Af8BtQHvAfsB/wFNAasBzwH/AUIBEgEUAf8BlgEj + AR0B/wGoASsBJQH/AagBKwElAf8BqAErASUB/wGoASsBJQH/AZ0BKQEjAf8DHQH/A88B/wMUAf8CDAGK + Af8BEwE1AZgB/wEoAZUBtgH/ARIBOQGIAf8BBAESAUIB/wEEARIBRwH/AQQBEgFHAf8BBAESAUcB/wEE + ARIBQQH/AQQBEgFBAf8BBAESAUEB/wEEARIBPAH/AQABDAE7Af8BAAEMATsB/wEAAQwBOwH/AQABDAE7 + Af8BAAEMATsB/wEAAQwBOwH/AQABDAE7Af8BAAEMATsB/wEEARIBPAH/AQQBEwFCAf8BBAEUAUMB/wEE + ARQBQwH/AQQBFAFJAf8BBAEUAUkB/wEEARMBSAH/AQQBEgFCAf8BEAE5AYcB/wEnAZQBtQH/ARMBNQGY + Af8CDAGKAf8TAAEBAwcBCgMmATgDSgGLAVkCXAHPAWUBcQF1AfgB8wH4AfwB/wHyA/8B5gP/AegD/wH6 + A/8BlgGmAbAB/gNhAe4DVQGyAzgBXAMVAR0DBQEHAwABAVMAAf8DAAH/AwAB/wMAAf8DAAH/RAADFAH/ + A9cB/wMUAf8BnwEnASMB/wGkASgBJAH/AaQBKAEkAf8BpAEoASQB/wGkASgBJAH/AaQBKAEkAf8BmQEj + AR8B/wE8ARABFAH/Aa8B3AHkAf8B4gHwAfIB/wGNAaQBrwH/AUABRgFSAf8BLgEqATgB/wEvASsBOQH/ + ATEBLgE7Af8BSwFXAYYB/wGlAcABxQH/Ae8C+wH/ATcBggGXAf8BTQERARAB/wGjAScBIwH/AaQBKAEk + Af8BpAEoASQB/wGkASgBJAH/AaQBKAEkAf8BmQEmASIB/wMdAf8D1wH/AxQB/wINAZQB/wESATABmwH/ + ATMBogHDAf8BRgG3Ac0B/wFCAbkBzQH/AUIBuQHNAf8BQAG5Ac0B/wE/AbkBzQH/AT8BuQHNAf8BPwG5 + Ac0B/wE/AbkBzQH/AT8BuQHNAf8BPwG5Ac0B/wE/AbkBzQH/AT8BuQHNAf8BPwG5Ac0B/wE/AbkBzQH/ + AT8BuQHNAf8BPwG5Ac0B/wE/AbkBzQH/AUIBuQHNAf8BQgG8Ac8B/wFCAb8B0gH/AUIBvwHSAf8BQgG/ + AdIB/wFCAb8B0gH/AUABvAHPAf8BPwG5Ac0B/wE+AbYByAH/AS4BngHAAf8BEgEvAZsB/wINAZQB/xQA + AwQBBQMRARcDKQE/A0QBeQFVAlYBtAFcAmEB3ANfAfMBaAF0AXkB+gFoAXQBeQH6A10B7QFbAl4B0AFQ + AlEBnwM2AVkDGAEhAwcBCgMBAQJXAAH/AwAB/wMAAf8DAAH/AwAB/0QAAxQB/wPfAf8DFAH/AZwBJAEi + Af8BoQElASMB/wGhASUBIwH/AaEBJQEjAf8BoQElASMB/wGhASUBIwH/AZsBIgEgAf8BQgEPARIB/wGP + AZYBoQH/ATABDQEVAf8BSgIPAf8BTQEPAQ4B/wGBARcBFQH/AYEBFwEVAf8BgQEXARUB/wFMAQ8BDgH/ + AUcBDwEQAf8BJAEYAScB/wFUAVgBiAH/AUwBDwEOAf8BoAEkASIB/wGhASUBIwH/AaEBJQEjAf8BoQEl + ASMB/wGhASUBIwH/AZYBIwEhAf8DHgH/A98B/wMUAf8CDgGeAf8BDwEWAZQB/wEeATgBnwH/ATEBWAGu + Af8BNAFcAasB/wE0AVwBqwH/ATIBXAGrAf8BMQFcAacB/wExAVwBpgH/AS8BWQGmAf8BKwFWAaYB/wEr + AVYBogH/ASsBVgGhAf8BKwFWAaEB/wErAVYBoQH/ASsBVgGhAf8BKwFWAaEB/wErAVYBoQH/ASsBVgGh + Af8BKwFWAaEB/wEvAVYBogH/AS8BVgGmAf8BMgFZAaYB/wE0AVwBpgH/ATQBXAGnAf8BNAFcAasB/wEy + AVwBqwH/ATEBXAGrAf8BLgFYAa4B/wEcATgBnwH/AQ8BFgGUAf8CDgGeAf8XAAEBAwQBBgMMARADHAEo + AzEBTQNCAXUDTgGZAVMCVQGtA1IBqQNLAY4BPAI9AWcDKQE+AxQBGwMHAQkDAgEDWwAB/wMAAf8DAAH/ + AwAB/wMAAf9EAANMAfMD3wH/AysB/wGKAh4B/wGbASABIQH/AZsBIAEhAf8BmwEgASEB/wGbASABIQH/ + AZsBIAEhAf8BmgEfASAB/wFHAQwBDQH/AUEBDAEPAf8BSQIMAf8BmQEfASAB/wGaASABIQH/AZsBIAEh + Af8BmwEgASEB/wGbASABIQH/AZoBHwEgAf8BkgEcAR0B/wFIAgwB/wE+AQwBEAH/AUkCDAH/AZoBIAEh + Af8BmwEgASEB/wGbASABIQH/AZsBIAEhAf8BmwEgASEB/wFZARwBHQH/AzMB/wPdAf8DTgHwAhMBpAH/ + Ag4BngH/Ag0BlAH/AgwBjwH/AgwBjAH/AgwBhgH/AgwBggH/AgcBWwH/AgYBWwH/AgUBWAH/AgQBVQH/ + AgQBUwH/AgQBUwH/AgQBUwH/AgQBUwH/AgQBUwH/AgQBUwH/AgQBUwH/AgQBUwH/AgQBUwH/AgQBUwH/ + AgQBVQH/AgUBWAH/AgYBWwH/AgcBWwH/AgwBggH/AgwBhgH/AgwBjAH/AgwBjwH/Ag0BlAH/Ag4BngH/ + AhMBpAH/GwABAQMCAQMDBgEIAwwBEAMWAR4DIgEyAyoBQAMpAT4DHwEsAxIBGQMKAQ0DBAEGAwEBAl8A + Af8DAAH/AwAB/wMAAf8DAAH/RAADVwG9A78B/wOUAf8BPwEdAR8B/wGKARwBIgH/AZMBGgEhAf8BkwEa + ASEB/wGTARoBIQH/AZMBGgEhAf8BkwEaASEB/wGSARoBIAH/AY4BGAEfAf8BkgEaASEB/wGTARoBIQH/ + AZMBGgEhAf8BkwEaASEB/wGTARoBIQH/AZMBGgEhAf8BkwEaASEB/wGTARoBIQH/AZIBGgEgAf8BjQEY + AR4B/wGSARoBIQH/AZMBGgEhAf8BkwEaASEB/wGTARoBIQH/AZMBGgEhAf8BgAEdASIB/wE0ARwBHgH/ + A7QB/wO0Af8DVAGuAhYBrAH/AhYBqQH/AhYBpgH/AhEBpgH/AhABpgH/AhABowH/AhABnwH/Ag4BngH/ + Ag4BlwH/Ag4BlwH/Ag4BlgH/Ag4BlgH/Ag4BjgH/Ag4BjgH/Ag4BjgH/Ag4BjgH/Ag4BjgH/Ag4BjgH/ + Ag4BjgH/Ag4BjgH/Ag4BlgH/Ag4BlgH/Ag4BlwH/Ag4BlwH/Ag4BngH/AhABnwH/AhABowH/AhABpgH/ + AhEBpgH/AhYBpgH/AhYBqQH/AhYBrAH/JAADAQECAwMEBAQGAQgDBgEIAwQBBgMDAQQDAAEBZwAB/wMA + Af8DAAH/AwAB/wMAAf9EAAM0AVQDQwH/A+4B/wOTAf8DKgH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/ + AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/ + AxQB/wMzAf8DsgH/A+oB/wMzAf8DLQFFAhYBrAH/AhYBrAH/AhYBrAH/AhYBrAH/AhYBrAH/AhYBrAH/ + AhYBrAH/AhIBqAH/AhEBpAH/Ag4BogH/Ag4BnwH/Ag4BnwH/Ag4BnAH/Ag4BnAH/Ag4BnAH/Ag4BnAH/ + Ag4BnAH/Ag4BnAH/Ag4BnAH/Ag4BnAH/Ag4BnwH/Ag4BnwH/Ag4BogH/AhEBpwH/AhIBqAH/AhYBrAH/ + AhYBrAH/AhYBrAH/AhYBrAH/AhYBrAH/AhYBrAH/AhYBrAH//wAFAANKAY0DQgH/A80B/wP5Af8D+wH/ A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/ - A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A/sB/wPrAf8DvQH/Ay4B/wNIAYcEAANIAYUCFwGsAf8CFwGs - Af8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFgGpAf8CFAGpAf8CFAGmAf8CEAGkAf8CDwGh - Af8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CDwGhAf8CEAGkAf8CFAGmAf8CFAGp - Af8CFgGrAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8CFwGsAf8DSAGF/wAJAAM3 - AVoDWQHDAysB/AMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMV - Af8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DFQH/AxUB/wMVAf8DVQHqA1QBrgMtAUUIAAMHAQoDSAGF - AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBqwH/AhYBqgH/ - AhUBqgH/AhUBqAH/AhUBpAH/AhUBpAH/AhUBpAH/AhUBpAH/AhUBqAH/AhUBqgH/AhYBqgH/AhcBqwH/ - AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/AhcBrAH/A0gBhQMHAQr/AAEA - AUIBTQE+BwABPgMAASgDAAGAAwABQAMAAQEBAAEBBgABBBYAA///AP8AAwABwAIAAQMEAAj/AYACAAEB - BAAC/wH4AQcE/wgAAv8B8AEDBP8IAAL/AeABAQH/AcEC/wgAAv8BwAEBAf8BwQL/CAAC/wGAAQEB/wHB - Av8IAAL/AQABAQH/AcEC/wgAAf8B/gEAAQEB/wHBAv8IAAH/AfwBAAEBAf8CwQH/CAAB/wH8AQABAQH/ - AsEB/wgAAf8BgAEAAQEB/wLBAf8IAAH+AgABAQH/AsEB/wgAAfgCAAEDAf8CwQH/CAAB8AIAAQcB4AEB - AcABBwgAAfACAAEfAeABAQHAAQcIAAHwAgABPwHgAQEBwAEHCAAB8AIAAX8B4AEBAcABBwgAAfACAAH/ - AeABAQHAAQcIAAHwAQABAQL/AsEB/wgAAfABAAEDAv8CwQH/CAAB8AEAAQMC/wLBAf8IAAHwAQABAwL/ - AsEB/wgAAfABAAEDAv8CwQH/CAAB8AEAAQMC/wHBAv8IAAHwAQABAwL/AcEC/wgAAfgBAAEHAv8BwQL/ - CAAB+AEAAQ8C/wHBAv8IAAH8AQABHwL/AcEC/wgAAf8BgAF/Av8BwQL/CAAI/wGAAgABAQQACP8BwAIA - AQMEAAj/Cw== + A/sB/wP7Af8D+wH/A/sB/wP7Af8D+wH/A+sB/wO9Af8DLQH/A0gBhwQAA0gBhQIWAawB/wIWAawB/wIW + AawB/wIWAawB/wIWAawB/wIWAawB/wIWAawB/wIVAakB/wITAakB/wITAaYB/wIPAaQB/wIOAaEB/wIO + AaEB/wIOAaEB/wIOAaEB/wIOAaEB/wIOAaEB/wIOAaEB/wIOAaEB/wIPAaQB/wITAaYB/wITAakB/wIV + AasB/wIWAawB/wIWAawB/wIWAawB/wIWAawB/wIWAawB/wIWAawB/wIWAawB/wNIAYX/AAkAAzcBWgNZ + AcMDKwH8AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wMU + Af8DFAH/AxQB/wMUAf8DFAH/AxQB/wMUAf8DFAH/AxQB/wNVAeoDVAGuAy0BRQgAAwcBCgNIAYUCFgGs + Af8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8CFgGrAf8CFQGqAf8CFAGq + Af8CFAGoAf8CFAGkAf8CFAGkAf8CFAGkAf8CFAGkAf8CFAGoAf8CFAGqAf8CFQGqAf8CFgGrAf8CFgGs + Af8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8CFgGsAf8DSAGFAwcBCv8AAQABQgFN + AT4HAAE+AwABKAMAAYADAAFAAwABAQEAAQEGAAEEFgAD//8A/wADAAHAAgABAwQACP8BgAIAAQEEAAL/ + AfgBBwT/CAAC/wHwAQME/wgAAv8B4AEBAf8BwQL/CAAC/wHAAQEB/wHBAv8IAAL/AYABAQH/AcEC/wgA + Av8BAAEBAf8BwQL/CAAB/wH+AQABAQH/AcEC/wgAAf8B/AEAAQEB/wLBAf8IAAH/AfwBAAEBAf8CwQH/ + CAAB/wGAAQABAQH/AsEB/wgAAf4CAAEBAf8CwQH/CAAB+AIAAQMB/wLBAf8IAAHwAgABBwHgAQEBwAEH + CAAB8AIAAR8B4AEBAcABBwgAAfACAAE/AeABAQHAAQcIAAHwAgABfwHgAQEBwAEHCAAB8AIAAf8B4AEB + AcABBwgAAfABAAEBAv8CwQH/CAAB8AEAAQMC/wLBAf8IAAHwAQABAwL/AsEB/wgAAfABAAEDAv8CwQH/ + CAAB8AEAAQMC/wLBAf8IAAHwAQABAwL/AcEC/wgAAfABAAEDAv8BwQL/CAAB+AEAAQcC/wHBAv8IAAH4 + AQABDwL/AcEC/wgAAfwBAAEfAv8BwQL/CAAB/wGAAX8C/wHBAv8IAAj/AYACAAEBBAAI/wHAAgABAwQA + CP8L \ No newline at end of file diff --git a/ThirdParty/FastGraphLine.cs b/ThirdParty/FastGraphLine.cs new file mode 100644 index 0000000..49eccd4 --- /dev/null +++ b/ThirdParty/FastGraphLine.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DutyContent.ThirdParty +{ + class FastGraphLine + { + private PictureBox _pbx; + private Bitmap _bmp; + + private int _midv; + private int _dcnt; + + public int Width { get; private set; } = -1; + public int Height { get; private set; } = -1; + + // + public FastGraphLine(PictureBox pbx) + { + _pbx = pbx; + } + + // + public void Enter() + { + if (_pbx == null) + return; + + if (Width != _pbx.ClientSize.Width || Height != _pbx.ClientSize.Height) + { + Width = _pbx.ClientSize.Width; + Height = _pbx.ClientSize.Height; + + _midv = Height / 2; + _dcnt = (Width - 40) / 20; + + _bmp = new Bitmap(Width, Height); + } + + if (_bmp != null) + { + using (var g = Graphics.FromImage(_bmp)) + { + g.Clear(Color.Black); + g.DrawLine(Pens.DarkBlue, 0, _midv, Width - 1, _midv); + } + } + } + + // + public void SetValues(List vs, int mindelta = 5, int maxdelta = 5) + { + if (_bmp == null && vs.Count >= 2) + return; + + int min = int.MaxValue, max = int.MinValue; + int cnt = vs.Count - _dcnt; + + if (cnt < 0) + cnt = 0; + + for (var i = vs.Count - 1; i >= cnt; i--) + { + if (min > vs[i]) + min = vs[i]; + if (max < vs[i]) + max = vs[i]; + } + + min -= mindelta; + max += maxdelta; + + // + MesgLog.L("Count: {0}, MM: {1}/{2}", vs.Count, min, max); + + float scale = (float)Height / (float)(max - min); + int xx = 10; + + using (var g = Graphics.FromImage(_bmp)) + { + Pen pen = new Pen(Color.White, 2.0f); + + for (var i = vs.Count - 2; i >= cnt; i--) + { + var y1 = (int)((vs[i + 1] - min) * scale); + var y2 = (int)((vs[i] - min) * scale); + + g.DrawLine(pen, xx, y1, xx + 10, y2); + + xx += 10; + } + } + } + + // + public void Leave() + { + _pbx.Image = _bmp; + _pbx.Refresh(); + } + } +}