diff --git a/Binary/poshsecframework.zip b/Binary/poshsecframework.zip index 337fffa..17e5f47 100644 Binary files a/Binary/poshsecframework.zip and b/Binary/poshsecframework.zip differ diff --git a/poshsecframework/Interface/frmMain.Designer.cs b/poshsecframework/Interface/frmMain.Designer.cs index e1fbb32..a534f57 100644 --- a/poshsecframework/Interface/frmMain.Designer.cs +++ b/poshsecframework/Interface/frmMain.Designer.cs @@ -30,9 +30,9 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain)); - System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Local Network"); - System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Networks", new System.Windows.Forms.TreeNode[] { - treeNode3}); + System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Local Network"); + System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Networks", new System.Windows.Forms.TreeNode[] { + treeNode1}); this.mnuMain = new System.Windows.Forms.MenuStrip(); this.mnuFile = new System.Windows.Forms.ToolStripMenuItem(); this.mnuScan = new System.Windows.Forms.ToolStripMenuItem(); @@ -107,6 +107,7 @@ private void InitializeComponent() this.btnExportSystems = new System.Windows.Forms.ToolStripButton(); this.tslSystemCount = new System.Windows.Forms.ToolStripLabel(); this.tbpPowerShell = new System.Windows.Forms.TabPage(); + this.txtPShellOutput = new poshsecframework.Controls.RichTextBoxCaret(); this.cmnuPSFConsole = new System.Windows.Forms.ContextMenuStrip(this.components); this.cmbtnCopy = new System.Windows.Forms.ToolStripMenuItem(); this.cmbtnPaste = new System.Windows.Forms.ToolStripMenuItem(); @@ -158,7 +159,6 @@ private void InitializeComponent() this.cmnuNotify = new System.Windows.Forms.ContextMenuStrip(this.components); this.cmnuRestore = new System.Windows.Forms.ToolStripMenuItem(); this.cmnuExit = new System.Windows.Forms.ToolStripMenuItem(); - this.txtPShellOutput = new poshsecframework.Controls.RichTextBoxCaret(); this.mnuMain.SuspendLayout(); this.stsMain.SuspendLayout(); this.tbMain.SuspendLayout(); @@ -675,15 +675,15 @@ private void InitializeComponent() this.tvwNetworks.ImageList = this.imgList16; this.tvwNetworks.Location = new System.Drawing.Point(0, 25); this.tvwNetworks.Name = "tvwNetworks"; - treeNode3.ImageKey = "Diagram.png"; - treeNode3.Name = "ndNone"; - treeNode3.SelectedImageKey = "Diagram.png"; - treeNode3.Tag = "1"; - treeNode3.Text = "Local Network"; - treeNode4.Name = "ndNetwork"; - treeNode4.Text = "Networks"; + treeNode1.ImageKey = "Diagram.png"; + treeNode1.Name = "ndNone"; + treeNode1.SelectedImageKey = "Diagram.png"; + treeNode1.Tag = "1"; + treeNode1.Text = "Local Network"; + treeNode2.Name = "ndNetwork"; + treeNode2.Text = "Networks"; this.tvwNetworks.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode4}); + treeNode2}); this.tvwNetworks.SelectedImageIndex = 1; this.tvwNetworks.ShowPlusMinus = false; this.tvwNetworks.ShowRootLines = false; @@ -937,6 +937,25 @@ private void InitializeComponent() this.tbpPowerShell.TabIndex = 1; this.tbpPowerShell.Text = "PowerShell"; // + // txtPShellOutput + // + this.txtPShellOutput.BackColor = System.Drawing.Color.SteelBlue; + this.txtPShellOutput.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.txtPShellOutput.ContextMenuStrip = this.cmnuPSFConsole; + this.txtPShellOutput.Cursor = System.Windows.Forms.Cursors.Arrow; + this.txtPShellOutput.DetectUrls = false; + this.txtPShellOutput.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtPShellOutput.Font = new System.Drawing.Font("Lucida Console", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtPShellOutput.ForeColor = System.Drawing.Color.White; + this.txtPShellOutput.Location = new System.Drawing.Point(3, 3); + this.txtPShellOutput.Margin = new System.Windows.Forms.Padding(5, 5, 5, 0); + this.txtPShellOutput.Name = "txtPShellOutput"; + this.txtPShellOutput.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.txtPShellOutput.Size = new System.Drawing.Size(942, 307); + this.txtPShellOutput.TabIndex = 0; + this.txtPShellOutput.Text = ""; + this.txtPShellOutput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtPShellOutput_KeyDown); + // // cmnuPSFConsole // this.cmnuPSFConsole.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -1392,25 +1411,6 @@ private void InitializeComponent() this.cmnuExit.Text = "Exit"; this.cmnuExit.Click += new System.EventHandler(this.cmnuExit_Click); // - // txtPShellOutput - // - this.txtPShellOutput.BackColor = System.Drawing.Color.SteelBlue; - this.txtPShellOutput.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.txtPShellOutput.ContextMenuStrip = this.cmnuPSFConsole; - this.txtPShellOutput.Cursor = System.Windows.Forms.Cursors.Arrow; - this.txtPShellOutput.DetectUrls = false; - this.txtPShellOutput.Dock = System.Windows.Forms.DockStyle.Fill; - this.txtPShellOutput.Font = new System.Drawing.Font("Lucida Console", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtPShellOutput.ForeColor = System.Drawing.Color.White; - this.txtPShellOutput.Location = new System.Drawing.Point(3, 3); - this.txtPShellOutput.Margin = new System.Windows.Forms.Padding(5, 5, 5, 0); - this.txtPShellOutput.Name = "txtPShellOutput"; - this.txtPShellOutput.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; - this.txtPShellOutput.Size = new System.Drawing.Size(942, 307); - this.txtPShellOutput.TabIndex = 0; - this.txtPShellOutput.Text = ""; - this.txtPShellOutput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtPShellOutput_KeyDown); - // // frmMain // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); diff --git a/poshsecframework/Interface/frmMain.resx b/poshsecframework/Interface/frmMain.resx index 93fa647..7e1ef57 100644 --- a/poshsecframework/Interface/frmMain.resx +++ b/poshsecframework/Interface/frmMain.resx @@ -126,11 +126,8 @@ 957, 17 - - 253, 56 - - - 145, 56 + + 367, 17 1047, 17 @@ -140,16 +137,16 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACI - KQAAAk1TRnQBSQFMAgEBCQEAATgBDgE4AQ4BEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + KQAAAk1TRnQBSQFMAgEBCQEAAXgBDgF4AQ4BEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABMAMAAQEBAAEgBgABMBYAAxoBJAMzAVIDMwFSAzMBUgMzAVIDMwFSAzMBUgMzAVIDQgF1AzgBXQMj ATQDHQEpAxsBJgMGAQjIAAMzAVIw/wMtAUUDBgEIxAADMwFSMP8DLgFIAwcBCsQAAzMBUjD/Ay8BSQMH AQrEAAMzAVIw/wMzAVIDAgEDxAADMwFSBf8BlAEAAv8BlAEAAv8BlAEAAv8BlAEAAv8BlAEAAv8BlAEA - Af8BvwGJAQcB/wG/AYkBBwH/Ab8BiQEHAv8BlAEABf8DMwFSyAADMwFSBf8BlAEABf8BvwGJAQcC/wGU - AQAC/wGUAQAC/wGUAQAO/wGUAQAF/wMzAVLIAAMzAVIF/wGUAQAB/wG/AYkBBwn/Ab8BiQEHAv8BlAEA - Af8BvwGJAQcB/wG/AYkBBwH/Ab8BiQEHAv8BlAEABf8DMwFSyAADMwFSBf8BlAEAAv8BlAEAAv8BlAEA - Af8BvwGJAQcG/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAF/wMzAVLIAAMzAVIF/wGUAQAB/wG/ - AYkBBwn/Ab8BiQEHAv8BlAEAAv8BlAEAAv8BlAEAAv8BlAEAAv8BlAEABf8DMwFSyAADMwFSBf8BlAEA - Bf8BvwGJAQcC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAF/wMzAVLIAAMz + Af8BvwGJAQAB/wG/AYkBAAH/Ab8BiQEAAv8BlAEABf8DMwFSyAADMwFSBf8BlAEABf8BvwGJAQAC/wGU + AQAC/wGUAQAC/wGUAQAO/wGUAQAF/wMzAVLIAAMzAVIF/wGUAQAB/wG/AYkBAAn/Ab8BiQEAAv8BlAEA + Af8BvwGJAQAB/wG/AYkBAAH/Ab8BiQEAAv8BlAEABf8DMwFSyAADMwFSBf8BlAEAAv8BlAEAAv8BlAEA + Af8BvwGJAQAG/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAF/wMzAVLIAAMzAVIF/wGUAQAB/wG/ + AYkBAAn/Ab8BiQEAAv8BlAEAAv8BlAEAAv8BlAEAAv8BlAEAAv8BlAEABf8DMwFSyAADMwFSBf8BlAEA + Bf8BvwGJAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAF/wMzAVLIAAMz AVIF/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGUAQAC/wGU AQAF/wMzAVLIAAMzAVIw/wMzAVLIAAMzAVIw/wMzAVLIAAMzAVIw/wMzAVLIAAMWAR8DMwFSAzMBUgMz AVIDMwFSAzMBUgMzAVIDMwFSAzMBUgMzAVIDMwFSAzMBUgMzAVIDGgEkxAAI/wO3Af8DnwH/A58B/wOf @@ -320,15 +317,6 @@ AQMBAQGABP8B/gEPAccB4ws= - - 1264, 17 - - - 694, 56 - - - 367, 17 - 253, 56 @@ -343,7 +331,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACW - DgAAAk1TRnQBSQFMAgEBBAEAAUgBDQFIAQ0BEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + DgAAAk1TRnQBSQFMAgEBBAEAAYgBDQGIAQ0BEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AQgADJgE4AxYBHjgA AyYBOAMWAR44AAMmATgDFgEeOAADJgE4AxYBHjQAAyYBOANiAfYDtgH/AxgBITAAAyYBOANiAfYDtgH/ AxgBITAAAyYBOANiAfYDtgH/AxgBITAAAyYBOANiAfYDtgH/AxgBISwAAyYBOANiAfYD4AH/A9gB/wO2 @@ -411,6 +399,9 @@ 145, 56 + + 1264, 17 + 694, 56 @@ -420,9 +411,6 @@ 501, 56 - - 275, 17 - 17, 17 @@ -434,7 +422,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAe - GAAAAk1TRnQBSQFMAgEBBQEAAVABDQFQAQ0BEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + GAAAAk1TRnQBSQFMAgEBBQEAAZABDQGQAQ0BEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABIAMAAQEBAAEgBgABIP8AIwADGQEjA0UBfQJaAV8B2wJMAV8B8wJMAV8B8wJaAV8B2wNFAX0DGQEj 3AADMwFTAlgBYQHmAgAB1AH/AYQBkAHnAf8BlQGgAe4B/wGVAZ8B7QH/AYMBjgHlAf8CAAHOAf8CWAFh AeYDMwFT1AADMwFTAlIBZQH0AQABhAHjAf8BoQGsAfQB/wEAAYsB7AH/AgAB5AH/AgAB4wH/AQABhwHq @@ -542,9 +530,6 @@ 275, 17 - - 485, 17 - 350, 56 @@ -3119,7 +3104,7 @@ - 166 + 25 diff --git a/poshsecframework/Interface/frmSettings.Designer.cs b/poshsecframework/Interface/frmSettings.Designer.cs index a7643d7..6e957b9 100644 --- a/poshsecframework/Interface/frmSettings.Designer.cs +++ b/poshsecframework/Interface/frmSettings.Designer.cs @@ -105,6 +105,9 @@ private void InitializeComponent() this.btnEditModule = new System.Windows.Forms.ToolStripButton(); this.btnDeleteModule = new System.Windows.Forms.ToolStripButton(); this.btnCheckUpdates = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); this.ttPSFHelp = new System.Windows.Forms.ToolTip(this.components); this.panel1.SuspendLayout(); this.tbpGeneral.SuspendLayout(); @@ -883,7 +886,10 @@ private void InitializeComponent() this.lblRestartRequired, this.btnEditModule, this.btnDeleteModule, - this.btnCheckUpdates}); + this.btnCheckUpdates, + this.toolStripSeparator1, + this.toolStripLabel1, + this.toolStripButton1}); this.tbModules.Location = new System.Drawing.Point(3, 3); this.tbModules.Name = "tbModules"; this.tbModules.Size = new System.Drawing.Size(517, 25); @@ -954,6 +960,25 @@ private void InitializeComponent() this.btnCheckUpdates.ToolTipText = "Check for Updates"; this.btnCheckUpdates.Click += new System.EventHandler(this.btnCheckUpdates_Click); // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // toolStripLabel1 + // + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(81, 22); + this.toolStripLabel1.Text = "Update Alerts:"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = global::poshsecframework.Properties.Resources.dialogyes; + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(43, 22); + this.toolStripButton1.Text = "On"; + // // ttPSFHelp // this.ttPSFHelp.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; @@ -1093,5 +1118,8 @@ private void InitializeComponent() private System.Windows.Forms.Panel panel5; private System.Windows.Forms.CheckBox ckShowinTaskbar; private System.Windows.Forms.Label lblShowinTaskbar; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripLabel toolStripLabel1; + private System.Windows.Forms.ToolStripButton toolStripButton1; } } \ No newline at end of file diff --git a/poshsecframework/Interface/frmSettings.cs b/poshsecframework/Interface/frmSettings.cs index aadfd11..1adf004 100644 --- a/poshsecframework/Interface/frmSettings.cs +++ b/poshsecframework/Interface/frmSettings.cs @@ -574,7 +574,10 @@ private void btnCheckUpdates_Click(object sender, EventArgs e) frm.DoUpdate = true; if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { - restart = frm.Restart; + if (!restart) + { + restart = frm.Restart; + } AddModule(frm.RepositoryName, frm.LocationName, frm.Branch, frm.LastModified); SaveModules(); } diff --git a/poshsecframework/Interface/frmSettings.resx b/poshsecframework/Interface/frmSettings.resx index 1d4228a..32db093 100644 --- a/poshsecframework/Interface/frmSettings.resx +++ b/poshsecframework/Interface/frmSettings.resx @@ -125,9 +125,6 @@ If you use your Github Personal Access Token it will increase to 5000 per hour. Click this button for more information. - - 17, 17 - 242, 17 @@ -135,101 +132,100 @@ Click this button for more information. AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADQ - FQAAAk1TRnQBSQFMAgEBAwEAAagBAAGoAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA - AwABEAMAAQEBAAEgBgABEBIAAVIBUwFSAagBVQFcAVUB6gEAAVwBJQH/AQABXAElAf8BAAFcASUB/wEA - AVwBJQH/AQABXAElAf8BAAFcASUB/wEAAVwBJQH/AQABXAElAf8BAAFcASUB/wEAAVwBJQH/AQABXAEl - Af8BAAFcASUB/wEAAVwBJQH/AVYBWAFWAbsDPAFmAYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/AYUBigGI + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADG + FQAAAk1TRnQBSQFMAgEBAwEAAcgBAAHIAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABEAMAAQEBAAEgBgABEBIAAVIBUwFSAagBVQFcAVUB6gEAAVgBIQH/AQABWAEhAf8BAAFYASEB/wEA + AVgBIQH/AQABWAEhAf8BAAFYASEB/wEAAVgBIQH/AQABWAEhAf8BAAFYASEB/wEAAVgBIQH/AQABWAEh + Af8BAAFYASEB/wEAAVgBIQH/AVYBWAFWAbsDPAFmAYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/AYUBigGI Af8BhQGKAYgB/wGFAYoBiAH/AYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/AYUBigGIAf8BhQGKAYgB/wGF AYoBiAH/AYUBigGIAf8BhQGKAYgB/wM8AWYCUgFTAagCAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGk Af8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CVgFY - AbtBAAFcASUB/wEAAY8BOAH/AQABjwE4Af8BAAGOATYB/wEAAY8BOAH/AQABjwE2Af8BAAGPATYB/wEA - AY8BNgH/AQABjgE2Af8BAAGPATYB/wEAAY8BNgH/AQABjwE2Af8BAAGPATYB/wEAAY4BNgH/AQABjwE2 - Af8BAAFcASUB/wGFAYoBiAH/Ae0C7wH/Ae0C7wH/Ae0C7wH/Ae0B7wHuAf8B7QLvAf8B7ALvAf8B7AHv - Ae4B/wEMAaQBSwH/AYUByQGmAf8B7QLuAf8B7QLvAf8B7QHvAe4B/wHtAe8B7gH/AewC7gH/AYUBigGI + AbtBAAFYASEB/wEAAY8BNAH/AQABjwE0Af8BAAGOATIB/wEAAY8BNAH/AQABjwEyAf8BAAGPATIB/wEA + AY8BMgH/AQABjgEyAf8BAAGPATIB/wEAAY8BMgH/AQABjwEyAf8BAAGPATIB/wEAAY4BMgH/AQABjwEy + Af8BAAFYASEB/wGFAYoBiAH/Ae0C7wH/Ae0C7wH/Ae0C7wH/Ae0B7wHuAf8B7QLvAf8B7ALvAf8B7AHv + Ae4B/wEIAaQBRwH/AYUByQGmAf8B7QLuAf8B7QLvAf8B7QHvAe4B/wHtAe8B7gH/AewC7gH/AYUBigGI Af8CAAGkAf8CAAHMAf8CAAHMAf8CAAHNAf8CAAHNAf8CAAHNAf8CAAHMAf8CAAHMAf8CAAHMAf8CAAHN - Af8CAAHNAf8CAAHMAf8CAAHNAf8CAAHNAf8CAAHMAf8CAAGkAf9BAAFcASUB/wEAAZIBOQH/AQABkgE5 - Af8BAAGVATkB/wEAAZUBOQH/AQABkgE5Af8BAAGSAToB/wEAAZIBOQH/AQABkgE5Af8BAAGSATkB/wEA - AZIBOAH/AQABkgE5Af8BAAGSATkB/wEAAZIBOQH/AQABkgE5Af8BAAFcASUB/wGFAYoBiAH/Ae8C8AH/ - Ae8C8AH/Ae4C8QH/Ae4C8AH/Ae4B8QHwAf8B7gLwAf8B7gLwAf8BAAGaATkB/wEAAZoBOQH/AaMB1AG7 + Af8CAAHNAf8CAAHMAf8CAAHNAf8CAAHNAf8CAAHMAf8CAAGkAf9BAAFYASEB/wEAAZIBNQH/AQABkgE1 + Af8BAAGVATUB/wEAAZUBNQH/AQABkgE1Af8BAAGSATYB/wEAAZIBNQH/AQABkgE1Af8BAAGSATUB/wEA + AZIBNAH/AQABkgE1Af8BAAGSATUB/wEAAZIBNQH/AQABkgE1Af8BAAFYASEB/wGFAYoBiAH/Ae8C8AH/ + Ae8C8AH/Ae4C8QH/Ae4C8AH/Ae4B8QHwAf8B7gLwAf8B7gLwAf8BAAGaATUB/wEAAZoBNQH/AaMB1AG7 Af8B7wLwAf8B7gLwAf8B7gLwAf8B7gHwAe8B/wGFAYoBiAH/AgABpAH/AgABzwH/AgABzwH/AgABzwH/ AgAB0AH/AgAB0AH/AgABzwH/AgABzwH/AgABzwH/AgAB0AH/AgAB0AH/AgAB0AH/AgABzwH/AgABzwH/ - AgABzwH/AgABpAH/QQABXAElAf8BAAGVATsB/wEAAZUBOwH/AQABlQE7Af8BAAGVATsB/wEAAZUBOwH/ - AQABlQE6Af8BAAGVATsB/wEAAZUBOwH/AQABlQE7Af8BAAGWATsB/wEAAZUBOwH/AQABlQE7Af8BAAGV - ATsB/wEAAZUBOgH/AQABXAElAf8BhQGKAYgB/wHwAfIB8QH/AfAB8gHxAf8B8AHyAfEB/wGPAc0BrQH/ - ARIBpQFQAf8BAAGaATkB/wEAAZoBOQH/AQABmgE5Af8BNAGeAV4B/wEAAZoBOQH/AWIBxAGdAf8B7wLx + AgABzwH/AgABpAH/QQABWAEhAf8BAAGVATcB/wEAAZUBNwH/AQABlQE3Af8BAAGVATcB/wEAAZUBNwH/ + AQABlQE2Af8BAAGVATcB/wEAAZUBNwH/AQABlQE3Af8BAAGWATcB/wEAAZUBNwH/AQABlQE3Af8BAAGV + ATcB/wEAAZUBNgH/AQABWAEhAf8BhQGKAYgB/wHwAfIB8QH/AfAB8gHxAf8B8AHyAfEB/wGPAc0BrQH/ + AQ4BpQFMAf8BAAGaATUB/wEAAZoBNQH/AQABmgE1Af8BMAGeAVoB/wEAAZoBNQH/AV4BxAGdAf8B7wLx Af8B7wLxAf8B7wLxAf8BhQGKAYgB/wIAAaQB/wIAAdIB/wIAAdMB/wIAAdIB/wIAAdIB/wIAAdIB/wIA AdMB/wIAAdIB/wIAAdMB/wIAAdMB/wIAAdIB/wIAAdIB/wIAAdIB/wIAAdIB/wIAAdIB/wIAAaQB/0EA - AVwBJQH/AQABlgE+Af8BAAGZAT4B/wEAAZkBPgH/AQABlgE8Af8BAAGZAT4B/wEAAZkBPAH/AQABlgE8 - Af8BAAGWAT4B/wEAAZYBPgH/AQABlgE8Af8BAAGZAT4B/wEAAZYBPgH/AQABmQE8Af8BAAGZATwB/wEA - AVwBJQH/AYUBigGIAf8B8gLzAf8BiwHMAasB/wEAAZ4BQAH/AQABmgE5Af8BAAHIAVQB/wEBAdIBXgH/ - ATYB4gGVAf8BYwHiAawB/wE2AeIBlQH/ATQBngFeAf8BAAGaATkB/wFdAcIBmgH/AfEB8wHyAf8B8ALy + AVgBIQH/AQABlgE6Af8BAAGZAToB/wEAAZkBOgH/AQABlgE4Af8BAAGZAToB/wEAAZkBOAH/AQABlgE4 + Af8BAAGWAToB/wEAAZYBOgH/AQABlgE4Af8BAAGZAToB/wEAAZYBOgH/AQABmQE4Af8BAAGZATgB/wEA + AVgBIQH/AYUBigGIAf8B8gLzAf8BiwHMAasB/wEAAZ4BPAH/AQABmgE1Af8BAAHIAVAB/wEAAdIBWgH/ + ATIB4gGVAf8BXwHiAawB/wEyAeIBlQH/ATABngFaAf8BAAGaATUB/wFZAcIBmgH/AfEB8wHyAf8B8ALy Af8BhQGKAYgB/wIAAaQB/wIAAdUB/wIAAdQB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAdUB/wIA - AdUB/wIAAdQB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAaQB/0EAAVwBJQH/AQABnAFA - Af8BAAGcAT8B/wEAAZwBQAH/AQABmQFAAf8BAAGcAUAB/wEAAZwBQAH/AQABmQFAAf8BAAGZAT8B/wEA - AZwBPwH/AQABnAE/Af8BAAGZAT8B/wEAAZkBPwH/AQABnAE/Af8BAAGcAUAB/wEAAVwBJQH/AYUBigGI - Af8BxAHiAdMB/wEAAZoBOQH/ARsBhQFFAf8BNgHiAZUB/wE2AeIBlQH/AR8B4gGKAf8BAQHSAV4B/wEA - AcgBVAH/AQAByAFUAf8BNgHiAZUB/wE0AZ4BXgH/AQABmgE5Af8BPAG2AYIB/wHyAfMB9AH/AYUBigGI + AdUB/wIAAdQB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAdUB/wIAAaQB/0EAAVgBIQH/AQABnAE8 + Af8BAAGcATsB/wEAAZwBPAH/AQABmQE8Af8BAAGcATwB/wEAAZwBPAH/AQABmQE8Af8BAAGZATsB/wEA + AZwBOwH/AQABnAE7Af8BAAGZATsB/wEAAZkBOwH/AQABnAE7Af8BAAGcATwB/wEAAVgBIQH/AYUBigGI + Af8BxAHiAdMB/wEAAZoBNQH/ARcBhQFBAf8BMgHiAZUB/wEyAeIBlQH/ARsB4gGKAf8BAAHSAVoB/wEA + AcgBUAH/AQAByAFQAf8BMgHiAZUB/wEwAZ4BWgH/AQABmgE1Af8BOAG2AYIB/wHyAfMB9AH/AYUBigGI Af8CAAGkAf8CAAHXAf8CAAHYAf8CAAHYAf8CAAHXAf8CAAHXAf8CAAHYAf8CAAHXAf8CAAHXAf8CAAHX - Af8CAAHYAf8CAAHXAf8CAAHYAf8CAAHXAf8CAAHYAf8CAAGkAf9BAAFcASUB/wEAAZ8BQQH/AQABoAFB - Af8BAAGfAUEB/wEAAZ8BQQH/AQABnwFBAf8BAAGfAUEB/wEAAZ8BQQH/AQABnwFDAf8BAAGgAUMB/wEA - AZ8BQQH/AQABnwFBAf8BAAGfAUEB/wEAAZ8BQQH/AQABnwFBAf8BAAFcASUB/wGFAYoBiAH/ARABpgFP - Af8BGwGFAUUB/wE2AeIBlQH/AQEB0gFeAf8BAAHIAVQB/wEAAcgBVAH/AQAByAFUAf8BAAHIAVQB/wEA - AcgBVAH/AQAByAFUAf8BNgHiAZUB/wE0AZ4BXgH/AQABmgE5Af8BXwHEAZsB/wGFAYoBiAH/AgABpAH/ + Af8CAAHYAf8CAAHXAf8CAAHYAf8CAAHXAf8CAAHYAf8CAAGkAf9BAAFYASEB/wEAAZ8BPQH/AQABoAE9 + Af8BAAGfAT0B/wEAAZ8BPQH/AQABnwE9Af8BAAGfAT0B/wEAAZ8BPQH/AQABnwE/Af8BAAGgAT8B/wEA + AZ8BPQH/AQABnwE9Af8BAAGfAT0B/wEAAZ8BPQH/AQABnwE9Af8BAAFYASEB/wGFAYoBiAH/AQwBpgFL + Af8BFwGFAUEB/wEyAeIBlQH/AQAB0gFaAf8BAAHIAVAB/wEAAcgBUAH/AQAByAFQAf8BAAHIAVAB/wEA + AcgBUAH/AQAByAFQAf8BMgHiAZUB/wEwAZ4BWgH/AQABmgE1Af8BWwHEAZsB/wGFAYoBiAH/AgABpAH/ AgAB2gH/AgAB2gH/AgAB2gH/AgAB2wH/AgAB2wH/AgAB2gH/AgAB2gH/AgAB2gH/AgAB2wH/AgAB2gH/ - AgAB2gH/AgAB2gH/AgAB2wH/AgAB2wH/AgABpAH/QQABXAElAf8BAgGgAUQB/wECAaABRAH/AQIBoAFE - Af8BAQGgAUQB/wECAaABRAH/AQIBoAFEAf8BAQGjAUQB/wEBAaMBRAH/AQEBoAFEAf8BAgGgAUQB/wEB - AaABQwH/AQEBowFEAf8BAQGgAUQB/wEBAaABQwH/AQABXAElAf8BhQGKAYgB/wEAAZoBOQH/ATYB4gGV - Af8BHwHiAYoB/wEBAdIBXgH/AR8B4gGKAf8BYwHiAawB/wFjAeIBrAH/AWMB4gGsAf8BAAHIAVQB/wE2 - AeIBlQH/ATQBngFeAf8BAAGaATkB/wFLAb0BjQH/AfUC9gH/AYUBigGIAf8CAAGkAf8CAAHdAf8CAAHd + AgAB2gH/AgAB2gH/AgAB2wH/AgAB2wH/AgABpAH/QQABWAEhAf8BAAGgAUAB/wEAAaABQAH/AQABoAFA + Af8BAAGgAUAB/wEAAaABQAH/AQABoAFAAf8BAAGjAUAB/wEAAaMBQAH/AQABoAFAAf8BAAGgAUAB/wEA + AaABPwH/AQABowFAAf8BAAGgAUAB/wEAAaABPwH/AQABWAEhAf8BhQGKAYgB/wEAAZoBNQH/ATIB4gGV + Af8BGwHiAYoB/wEAAdIBWgH/ARsB4gGKAf8BXwHiAawB/wFfAeIBrAH/AV8B4gGsAf8BAAHIAVAB/wEy + AeIBlQH/ATABngFaAf8BAAGaATUB/wFHAb0BjQH/AfUC9gH/AYUBigGIAf8CAAGkAf8CAAHdAf8CAAHd Af8CAAHdAf8CAAHdAf8CAAHdAf8CAAHdAf8CAAHdAf8CAAHdAf8CAAHdAf8CAAHdAf8CAAHeAf8CAAHd - Af8CAAHdAf8CAAHeAf8CAAGkAf9BAAFcASUB/wEEAaYBRwH/AQQBpgFHAf8BBAGmAUcB/wEEAaMBRQH/ - AQQBpgFHAf8BBAGmAUcB/wEEAaMBRwH/AQQBpgFHAf8BBAGjAUcB/wEEAaYBRwH/AQQBowFFAf8BBAGm - AUcB/wEDAaYBRwH/AQQBowFHAf8BAAFcASUB/wGFAYoBiAH/AQABmgE5Af8BYwHiAawB/wEfAeIBigH/ - AWMB4gGsAf8BNAGeAV4B/wEAAZoBOQH/AQABmgE5Af8BAAGaATkB/wE2AeIBlQH/ARsBhQFFAf8BAAGa - ATkB/wFMAb0BjgH/AvcB+AH/AfYB+AH3Af8BhQGKAYgB/wIAAaQB/wECAQMB4AH/AgIB4AH/AQMBAgHg - Af8CAgHgAf8BAgEDAeAB/wECAQMB4AH/AQMBAgHfAf8CAgHgAf8CAgHgAf8CAgHgAf8CAwHgAf8CAgHg - Af8CAwHgAf8CAgHgAf8CAAGkAf9BAAFcASUB/wEGAakBSgH/AQcBqQFIAf8BBwGpAUoB/wEGAakBSgH/ - AQYBqQFIAf8BBgGpAUgB/wEGAakBSAH/AQYBpgFKAf8BBgGpAUoB/wEGAaYBSgH/AQYBqQFKAf8BBwGm - AUgB/wEGAakBSgH/AQYBqQFIAf8BAAFcASUB/wGFAYoBiAH/AQABnQE/Af8BNgHiAZUB/wFjAeIBrAH/ - ARsBhQFFAf8BAAGaATkB/wEvAbIBZQH/AfkB+gH5Af8BAAGaATkB/wEbAYUBRQH/AQABmgE5Af8BZgHI - AaEB/wH4AvkB/wH4AvkB/wH4AvkB/wGFAYoBiAH/AgABpAH/AgUB4gH/AgUB4wH/AgUB4gH/AQUBBgHi - Af8CBQHjAf8CBQHiAf8BBgEFAeMB/wEFAQYB4wH/AQUBBgHjAf8CBgHjAf8BBQEGAeMB/wIFAeMB/wIG - AeMB/wIFAeIB/wIAAaQB/0EAAVwBJQH/AQkBqgFMAf8BCgGqAUsB/wEJAaoBTAH/AQkBrQFMAf8BCgGq - AUwB/wEKAaoBSwH/AQkBqgFLAf8BCgGqAUsB/wEJAaoBSwH/AQoBqgFLAf8BCQGqAUwB/wEJAaoBSwH/ - AQoBqgFLAf8BCQGqAUsB/wEAAVwBJQH/AYUBigGIAf8BFAGoAVIB/wEbAYUBRQH/AWMB4gGsAf8BAAGa - ATkB/wGNAc8BrgH/AvoB+wH/AfoC+wH/AQABmgE5Af8BAAGaATkB/wGzAd4ByAH/AfoC+wH/A/oB/wP6 - Af8D+gH/AYUBigGIAf8CAAGkAf8CCQHmAf8CCQHlAf8BCQEIAeUB/wIIAeYB/wIJAeUB/wIIAeUB/wIJ - AeUB/wEIAQkB5QH/AggB5QH/AQgBCQHlAf8BCAEJAeUB/wIIAeUB/wIJAeYB/wIJAeUB/wIAAaQB/0EA - AVwBJQH/AQwBrQFNAf8BDAGtAU0B/wEMAa0BTgH/AQwBrQFNAf8BDAGwAU0B/wEMAa0BTQH/AQwBsAFN - Af8BDAGtAU4B/wEMAa0BTQH/AQwBrQFNAf8BCwGtAU0B/wEMAa0BTQH/AQsBsAFNAf8BDAGtAU0B/wEA - AVwBJQH/AYUBigGIAf8BYgHHAZ4B/wEAAZoBOQH/ATYB4gGVAf8BAAGaATkB/wGOAdABrgH/AvwB+wH/ - AfsC/AH/AQ0BpQFNAf8B8wH2AfkB/wP8Af8D+wH/AfsB/AH7Af8C+wH8Af8B+wL8Af8BhQGKAYgB/wIA - AaQB/wILAegB/wILAegB/wIMAegB/wEMAQsB6AH/AgwB6AH/AgwB6AH/AQsBDAHoAf8CDAHoAf8CCwHo - Af8BDAELAegB/wIMAegB/wEMAQsB6AH/AQwBCwHpAf8CDAHoAf8CAAGkAf9BAAFcASUB/wEPAbMBUAH/ - AQ4BswFQAf8BDgGzAVAB/wEOAbABUAH/AQ4BsAFQAf8BDwGwAVAB/wEOAbABUAH/AQ8BsAFQAf8BDgGz - AVAB/wEOAbABUAH/AQ4BswFQAf8BDgGwAVAB/wEOAbABUAH/AQ4BsAFQAf8BAAFcASUB/wGFAYoBiAH/ - A/0B/wEkAa4BXQH/AQABmgE5Af8BGwGFAUUB/wEAAZoBOQH/AWIBxwGeAf8D/QH/A/0B/wP9Af8D/QH/ - A/0B/wP9Af8B/AL9Af8D/QH/AYUBigGIAf8CAAGkAf8CDwHrAf8BDgEPAeoB/wIPAeoB/wIPAesB/wIP - AeoB/wIPAeoB/wIPAesB/wIPAesB/wIPAeoB/wIPAeoB/wIPAesB/wEQAQ8B6wH/Ag8B6gH/Ag8B6wH/ - AgABpAH/QQABXAElAf8BEQG1AVIB/wERAbUBUgH/AREBtQFSAf8BEAG1AVEB/wEQAbMBUgH/AREBtQFR - Af8BEAGzAVEB/wERAbUBUgH/AREBswFSAf8BEAG1AVIB/wEQAbMBUQH/ARABswFRAf8BEAGzAVEB/wER - AbUBUgH/AQABXAElAf8BhQGKAYgC/wH+Av8B+wH8Af0B/wFAAboBhgH/AQABmgE5Af8BAAGaATkB/wEA - AZoBOQH/AVwBxQGbAf8B8wH2AfkB/wH6AfsB/AH/Av4C/wH+Af8B/gH/Af4B/wH+A/8B/gH/A/4B/wGF - AYoBiAH/AgABpAH/AhIB7gH/AhIB7QH/ARIBEwHuAf8CEgHtAf8CEgHtAf8CEgHuAf8CEgHuAf8CEgHt - Af8CEgHtAf8CEgHuAf8BEwESAe4B/wESARMB7QH/ARIBEwHtAf8CEgHuAf8CAAGkAf9AAAFZAWQBWQHs - ARABswFRAf8BEAGzAVEB/wEQAbMBUQH/ARABswFRAf8BEAGzAVEB/wEQAbMBUQH/ARABswFRAf8BEAGz - AVEB/wEQAbMBUQH/ARABswFRAf8BEAGzAVEB/wEQAbMBUQH/ARABswFRAf8BEAGzAVEB/wFVAVwBVQHq - AYUBigGIDf8B6wHxAfcB/wFQAcABkgH/ASQBrgFdAf8BJAGuAV0B/wFaAcQBmAH/AfUB+AH7Ff8BhQGK - AYgB/wIAAaQB/wIUAe8B/wIUAe8B/wIUAe8B/wIUAe8B/wIUAe8B/wIUAe8B/wIUAe8B/wIUAe8B/wIU - Ae8B/wIUAe8B/wIUAe8B/wIUAe8B/wIUAe8B/wIUAe8B/wIAAaQB/0AAAVYBWAFWAbsBWQFkAVkB7AEA - AVwBJQH/AQABXAElAf8BAAFcASUB/wEAAVwBJQH/AQABXAElAf8BAAFcASUB/wEAAVwBJQH/AQABXAEl - Af8BAAFcASUB/wEAAVwBJQH/AQABXAElAf8BAAFcASUB/wEAAVwBJQH/AVIBUwFSAagDPAFmAYUBigGI - Af8BhQGKAYgB/wGFAYoBiAH/AYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/AYUBigGIAf8BhQGKAYgB/wGF - AYoBiAH/AYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/AYUBigGIAf8BhQGKAYgB/wNAAXECXAFgAdQCAAGk - Af8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGkAf8CAAGk - Af8CAAGkAf8CAAGkAf8CAAGkAf8CXAFgAdRAAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUA - AYAXAAP/gQAL + Af8CAAHdAf8CAAHeAf8CAAGkAf9BAAFYASEB/wEAAaYBQwH/AQABpgFDAf8BAAGmAUMB/wEAAaMBQQH/ + AQABpgFDAf8BAAGmAUMB/wEAAaMBQwH/AQABpgFDAf8BAAGjAUMB/wEAAaYBQwH/AQABowFBAf8BAAGm + AUMB/wEAAaYBQwH/AQABowFDAf8BAAFYASEB/wGFAYoBiAH/AQABmgE1Af8BXwHiAawB/wEbAeIBigH/ + AV8B4gGsAf8BMAGeAVoB/wEAAZoBNQH/AQABmgE1Af8BAAGaATUB/wEyAeIBlQH/ARcBhQFBAf8BAAGa + ATUB/wFIAb0BjgH/AvcB+AH/AfYB+AH3Af8BhQGKAYgB/wIAAaQB/wIAAeAB/wIAAeAB/wIAAeAB/wIA + AeAB/wIAAeAB/wIAAeAB/wIAAd8B/wIAAeAB/wIAAeAB/wIAAeAB/wIAAeAB/wIAAeAB/wIAAeAB/wIA + AeAB/wIAAaQB/0EAAVgBIQH/AQIBqQFGAf8BAwGpAUQB/wEDAakBRgH/AQIBqQFGAf8BAgGpAUQB/wEC + AakBRAH/AQIBqQFEAf8BAgGmAUYB/wECAakBRgH/AQIBpgFGAf8BAgGpAUYB/wEDAaYBRAH/AQIBqQFG + Af8BAgGpAUQB/wEAAVgBIQH/AYUBigGIAf8BAAGdATsB/wEyAeIBlQH/AV8B4gGsAf8BFwGFAUEB/wEA + AZoBNQH/ASsBsgFhAf8B+QH6AfkB/wEAAZoBNQH/ARcBhQFBAf8BAAGaATUB/wFiAcgBoQH/AfgC+QH/ + AfgC+QH/AfgC+QH/AYUBigGIAf8CAAGkAf8CAQHiAf8CAQHjAf8CAQHiAf8BAQECAeIB/wIBAeMB/wIB + AeIB/wECAQEB4wH/AQEBAgHjAf8BAQECAeMB/wICAeMB/wEBAQIB4wH/AgEB4wH/AgIB4wH/AgEB4gH/ + AgABpAH/QQABWAEhAf8BBQGqAUgB/wEGAaoBRwH/AQUBqgFIAf8BBQGtAUgB/wEGAaoBSAH/AQYBqgFH + Af8BBQGqAUcB/wEGAaoBRwH/AQUBqgFHAf8BBgGqAUcB/wEFAaoBSAH/AQUBqgFHAf8BBgGqAUcB/wEF + AaoBRwH/AQABWAEhAf8BhQGKAYgB/wEQAagBTgH/ARcBhQFBAf8BXwHiAawB/wEAAZoBNQH/AY0BzwGu + Af8C+gH7Af8B+gL7Af8BAAGaATUB/wEAAZoBNQH/AbMB3gHIAf8B+gL7Af8D+gH/A/oB/wP6Af8BhQGK + AYgB/wIAAaQB/wIFAeYB/wIFAeUB/wEFAQQB5QH/AgQB5gH/AgUB5QH/AgQB5QH/AgUB5QH/AQQBBQHl + Af8CBAHlAf8BBAEFAeUB/wEEAQUB5QH/AgQB5QH/AgUB5gH/AgUB5QH/AgABpAH/QQABWAEhAf8BCAGt + AUkB/wEIAa0BSQH/AQgBrQFKAf8BCAGtAUkB/wEIAbABSQH/AQgBrQFJAf8BCAGwAUkB/wEIAa0BSgH/ + AQgBrQFJAf8BCAGtAUkB/wEHAa0BSQH/AQgBrQFJAf8BBwGwAUkB/wEIAa0BSQH/AQABWAEhAf8BhQGK + AYgB/wFeAccBngH/AQABmgE1Af8BMgHiAZUB/wEAAZoBNQH/AY4B0AGuAf8C/AH7Af8B+wL8Af8BCQGl + AUkB/wHzAfYB+QH/A/wB/wP7Af8B+wH8AfsB/wL7AfwB/wH7AvwB/wGFAYoBiAH/AgABpAH/AgcB6AH/ + AgcB6AH/AggB6AH/AQgBBwHoAf8CCAHoAf8CCAHoAf8BBwEIAegB/wIIAegB/wIHAegB/wEIAQcB6AH/ + AggB6AH/AQgBBwHoAf8BCAEHAekB/wIIAegB/wIAAaQB/0EAAVgBIQH/AQsBswFMAf8BCgGzAUwB/wEK + AbMBTAH/AQoBsAFMAf8BCgGwAUwB/wELAbABTAH/AQoBsAFMAf8BCwGwAUwB/wEKAbMBTAH/AQoBsAFM + Af8BCgGzAUwB/wEKAbABTAH/AQoBsAFMAf8BCgGwAUwB/wEAAVgBIQH/AYUBigGIAf8D/QH/ASABrgFZ + Af8BAAGaATUB/wEXAYUBQQH/AQABmgE1Af8BXgHHAZ4B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wH8 + Av0B/wP9Af8BhQGKAYgB/wIAAaQB/wILAesB/wEKAQsB6gH/AgsB6gH/AgsB6wH/AgsB6gH/AgsB6gH/ + AgsB6wH/AgsB6wH/AgsB6gH/AgsB6gH/AgsB6wH/AQwBCwHrAf8CCwHqAf8CCwHrAf8CAAGkAf9BAAFY + ASEB/wENAbUBTgH/AQ0BtQFOAf8BDQG1AU4B/wEMAbUBTQH/AQwBswFOAf8BDQG1AU0B/wEMAbMBTQH/ + AQ0BtQFOAf8BDQGzAU4B/wEMAbUBTgH/AQwBswFNAf8BDAGzAU0B/wEMAbMBTQH/AQ0BtQFOAf8BAAFY + ASEB/wGFAYoBiAL/Af4C/wH7AfwB/QH/ATwBugGGAf8BAAGaATUB/wEAAZoBNQH/AQABmgE1Af8BWAHF + AZsB/wHzAfYB+QH/AfoB+wH8Af8C/gL/Af4B/wH+Af8B/gH/Af4D/wH+Af8D/gH/AYUBigGIAf8CAAGk + Af8CDgHuAf8CDgHtAf8BDgEPAe4B/wIOAe0B/wIOAe0B/wIOAe4B/wIOAe4B/wIOAe0B/wIOAe0B/wIO + Ae4B/wEPAQ4B7gH/AQ4BDwHtAf8BDgEPAe0B/wIOAe4B/wIAAaQB/0AAAVkBZAFZAewBDAGzAU0B/wEM + AbMBTQH/AQwBswFNAf8BDAGzAU0B/wEMAbMBTQH/AQwBswFNAf8BDAGzAU0B/wEMAbMBTQH/AQwBswFN + Af8BDAGzAU0B/wEMAbMBTQH/AQwBswFNAf8BDAGzAU0B/wEMAbMBTQH/AVUBXAFVAeoBhQGKAYgN/wHr + AfEB9wH/AUwBwAGSAf8BIAGuAVkB/wEgAa4BWQH/AVYBxAGYAf8B9QH4AfsV/wGFAYoBiAH/AgABpAH/ + AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/ + AhAB7wH/AhAB7wH/AhAB7wH/AhAB7wH/AgABpAH/QAABVgFYAVYBuwFZAWQBWQHsAQABWAEhAf8BAAFY + ASEB/wEAAVgBIQH/AQABWAEhAf8BAAFYASEB/wEAAVgBIQH/AQABWAEhAf8BAAFYASEB/wEAAVgBIQH/ + AQABWAEhAf8BAAFYASEB/wEAAVgBIQH/AQABWAEhAf8BUgFTAVIBqAM8AWYBhQGKAYgB/wGFAYoBiAH/ + AYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/AYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/AYUBigGIAf8BhQGK + AYgB/wGFAYoBiAH/AYUBigGIAf8BhQGKAYgB/wGFAYoBiAH/A0ABcQJcAWAB1AIAAaQB/wIAAaQB/wIA + AaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIA + AaQB/wIAAaQB/wJcAWAB1EAAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/+BAAs= diff --git a/poshsecframework/PShell/pscredentialeditor.cs b/poshsecframework/PShell/pscredentialeditor.cs new file mode 100644 index 0000000..6c78cd8 --- /dev/null +++ b/poshsecframework/PShell/pscredentialeditor.cs @@ -0,0 +1,117 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.Design; +using System.Linq; +using System.Net; +using System.Management.Automation; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows.Forms; + +namespace poshsecframework.PShell +{ + class pscredentialeditor : System.Drawing.Design.UITypeEditor + { + [DllImport("credui.dll", CharSet = CharSet.Auto)] + private static extern int CredUIPromptForWindowsCredentials(ref CREDUI_INFO notUsedHere, + int authError, + ref uint authPackage, + IntPtr InAuthBuffer, + uint InAuthBufferSize, + out IntPtr refOutAuthBuffer, + out uint refOutAuthBufferSize, + ref bool fSave, + int flags); + + [DllImport("credui.dll", CharSet = CharSet.Auto)] + private static extern bool CredUnPackAuthenticationBuffer(int dwFlags, + IntPtr pAuthBuffer, + uint cbAuthBuffer, + StringBuilder pszUserName, + ref int pcchMaxUserName, + StringBuilder pszDomainName, + ref int pcchMaxDomainame, + StringBuilder pszPassword, + ref int pcchMaxPassword); + + [DllImport("ole32.dll")] + public static extern void CoTaskMemFree(IntPtr ptr); + + public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context) + { + return System.Drawing.Design.UITypeEditorEditStyle.Modal; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] + private struct CREDUI_INFO + { + public int cbSize; + public IntPtr hwndParent; + public string pszMessageText; + public string pszCaptionText; + public IntPtr hbmBanner; + } + + [RefreshProperties(System.ComponentModel.RefreshProperties.All)] + public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) + { + if (context == null || context.Instance == null) + { + return base.EditValue(context, provider, value); + } + else + { + value = null; + NetworkCredential creds = GetCredential(); + if (creds != null) + { + System.Security.SecureString pwd = new System.Security.SecureString(); + foreach(var c in creds.Password) + { + pwd.AppendChar(c); + } + PSCredential rtncrds = new PSCredential(creds.UserName, pwd); + creds = null; + pwd = null; + GC.Collect(); + value = rtncrds; + } + return value; + } + } + + public static NetworkCredential GetCredential() + { + CREDUI_INFO credui = new CREDUI_INFO(); + credui.pszCaptionText = "Please enter the credentials."; + credui.pszMessageText = "DisplayedMessage"; + credui.cbSize = Marshal.SizeOf(credui); + uint authPackage = 0; + IntPtr outCredBuffer = new IntPtr(); + uint outCredSize; + bool save = false; + int result = CredUIPromptForWindowsCredentials(ref credui,0,ref authPackage,IntPtr.Zero,0,out outCredBuffer,out outCredSize,ref save,0x1); + + var usernameBuf = new StringBuilder(100); + var passwordBuf = new StringBuilder(100); + var domainBuf = new StringBuilder(100); + + int maxUserName = 100; + int maxDomain = 100; + int maxPassword = 100; + NetworkCredential netcreds = null; + if (result == 0) + { + if (CredUnPackAuthenticationBuffer(0, outCredBuffer, outCredSize, usernameBuf, ref maxUserName, domainBuf, ref maxDomain, passwordBuf, ref maxPassword)) + { + CoTaskMemFree(outCredBuffer); + netcreds = new NetworkCredential(usernameBuf.ToString(), passwordBuf.ToString(), domainBuf.ToString()); + } + } + + return netcreds; + } + } +} diff --git a/poshsecframework/PShell/pscript.cs b/poshsecframework/PShell/pscript.cs index 42d3561..a133a32 100644 --- a/poshsecframework/PShell/pscript.cs +++ b/poshsecframework/PShell/pscript.cs @@ -504,6 +504,14 @@ public List CheckForParams(String scriptcommand) { prm.IsHostList = true; } + if (prm.Name.ToLower() == "file" || prm.Name.ToLower() == "filename") + { + prm.IsFileName = true; + } + if (prm.Name.ToLower() == "credential") + { + prm.IsCredential = true; + } parm.Properties.Add(prm); } idx++; diff --git a/poshsecframework/PShell/psfhostinterface.cs b/poshsecframework/PShell/psfhostinterface.cs index 9ecc90b..a32dcec 100644 --- a/poshsecframework/PShell/psfhostinterface.cs +++ b/poshsecframework/PShell/psfhostinterface.cs @@ -144,6 +144,10 @@ public override void WriteWarningLine(string message) { prm.IsFileName = true; } + if (prm.Name.ToLower() == "credential") + { + prm.IsCredential = true; + } parm.Properties.Add(prm); } if (frm.ShowParams(parm) == System.Windows.Forms.DialogResult.OK) diff --git a/poshsecframework/PShell/pshell.cs b/poshsecframework/PShell/pshell.cs index 7baebeb..3e7aa78 100644 --- a/poshsecframework/PShell/pshell.cs +++ b/poshsecframework/PShell/pshell.cs @@ -144,7 +144,10 @@ public void Run(string ScriptCommand, bool IsCommand = false, bool Clicked = tru ps.IsCommand = IsCommand; ps.Clicked = clicked; ps.ScriptListView = lvw; - ps.Parameters.Clear(); + if (ps.Parameters != null) + { + ps.Parameters.Clear(); + } Thread thd = new Thread(ps.RunScript); thd.SetApartmentState(ApartmentState.STA); diff --git a/poshsecframework/PShell/psparameter.cs b/poshsecframework/PShell/psparameter.cs index a915a8b..da1e3f4 100644 --- a/poshsecframework/PShell/psparameter.cs +++ b/poshsecframework/PShell/psparameter.cs @@ -24,6 +24,7 @@ public class psparameter public Object DefaultValue { get; set; } public Boolean IsFileName { get; set; } public Boolean IsHostList { get; set; } + public Boolean IsCredential { get; set; } private Type type; [XmlIgnoreAttribute()] diff --git a/poshsecframework/PShell/psparamtype.cs b/poshsecframework/PShell/psparamtype.cs index 1c58fed..514433e 100644 --- a/poshsecframework/PShell/psparamtype.cs +++ b/poshsecframework/PShell/psparamtype.cs @@ -136,6 +136,10 @@ public override object GetEditor(Type editorBaseType) { return new pshosteditor(); } + else if (psparam.IsCredential) + { + return new pscredentialeditor(); + } else { return base.GetEditor(editorBaseType); diff --git a/poshsecframework/Properties/AssemblyInfo.cs b/poshsecframework/Properties/AssemblyInfo.cs index 792c979..644f5e1 100644 --- a/poshsecframework/Properties/AssemblyInfo.cs +++ b/poshsecframework/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("0.2.0.0")] -[assembly: AssemblyFileVersion("0.2.0.0")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/poshsecframework/poshsecframework.csproj b/poshsecframework/poshsecframework.csproj index 6207c9c..1d06d28 100644 --- a/poshsecframework/poshsecframework.csproj +++ b/poshsecframework/poshsecframework.csproj @@ -144,11 +144,14 @@ + - + + Code +