diff --git a/J-Runner/CPUkeydb/AddCpuKey.Designer.cs b/J-Runner/CPUkeydb/AddCpuKey.Designer.cs
deleted file mode 100644
index 7de7e21..0000000
--- a/J-Runner/CPUkeydb/AddCpuKey.Designer.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-namespace JRunner
-{
- partial class AddCpuKey
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddCpuKey));
- this.lblNand = new System.Windows.Forms.Label();
- this.txtFilename = new System.Windows.Forms.TextBox();
- this.ldlCpukey = new System.Windows.Forms.Label();
- this.btnFile = new System.Windows.Forms.Button();
- this.btnOk = new System.Windows.Forms.Button();
- this.txtCpuKey = new System.Windows.Forms.TextBox();
- this.SuspendLayout();
- //
- // lblNand
- //
- this.lblNand.AutoSize = true;
- this.lblNand.Location = new System.Drawing.Point(24, 16);
- this.lblNand.Name = "lblNand";
- this.lblNand.Size = new System.Drawing.Size(33, 13);
- this.lblNand.TabIndex = 0;
- this.lblNand.Text = "Nand";
- //
- // txtFilename
- //
- this.txtFilename.AllowDrop = true;
- this.txtFilename.BackColor = System.Drawing.SystemColors.ControlLightLight;
- this.txtFilename.Location = new System.Drawing.Point(27, 32);
- this.txtFilename.Name = "txtFilename";
- this.txtFilename.ReadOnly = true;
- this.txtFilename.Size = new System.Drawing.Size(200, 20);
- this.txtFilename.TabIndex = 1;
- this.txtFilename.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
- this.txtFilename.DragDrop += new System.Windows.Forms.DragEventHandler(this.textBox1_DragDrop);
- this.txtFilename.DragEnter += new System.Windows.Forms.DragEventHandler(this.textBox1_DragEnter);
- //
- // ldlCpukey
- //
- this.ldlCpukey.AutoSize = true;
- this.ldlCpukey.Location = new System.Drawing.Point(24, 68);
- this.ldlCpukey.Name = "ldlCpukey";
- this.ldlCpukey.Size = new System.Drawing.Size(50, 13);
- this.ldlCpukey.TabIndex = 2;
- this.ldlCpukey.Text = "CPU Key";
- //
- // btnFile
- //
- this.btnFile.Location = new System.Drawing.Point(239, 30);
- this.btnFile.Name = "btnFile";
- this.btnFile.Size = new System.Drawing.Size(28, 23);
- this.btnFile.TabIndex = 4;
- this.btnFile.Text = "...";
- this.btnFile.UseVisualStyleBackColor = true;
- this.btnFile.Click += new System.EventHandler(this.button1_Click);
- //
- // btnOk
- //
- this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.btnOk.Location = new System.Drawing.Point(99, 119);
- this.btnOk.Name = "btnOk";
- this.btnOk.Size = new System.Drawing.Size(75, 23);
- this.btnOk.TabIndex = 5;
- this.btnOk.Text = "OK";
- this.btnOk.UseVisualStyleBackColor = true;
- this.btnOk.Click += new System.EventHandler(this.button2_Click);
- //
- // txtCpuKey
- //
- this.txtCpuKey.AllowDrop = true;
- this.txtCpuKey.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
- this.txtCpuKey.Location = new System.Drawing.Point(27, 84);
- this.txtCpuKey.MaxLength = 32;
- this.txtCpuKey.Name = "txtCpuKey";
- this.txtCpuKey.Size = new System.Drawing.Size(234, 20);
- this.txtCpuKey.TabIndex = 24;
- this.txtCpuKey.TextChanged += new System.EventHandler(this.cpukeytext_TextChanged);
- this.txtCpuKey.DragDrop += new System.Windows.Forms.DragEventHandler(this.cpukeytext_DragDrop);
- this.txtCpuKey.DragEnter += new System.Windows.Forms.DragEventHandler(this.cpukeytext_DragEnter);
- //
- // AddCpuKey
- //
- this.AcceptButton = this.btnOk;
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(284, 154);
- this.Controls.Add(this.txtCpuKey);
- this.Controls.Add(this.btnOk);
- this.Controls.Add(this.btnFile);
- this.Controls.Add(this.ldlCpukey);
- this.Controls.Add(this.txtFilename);
- this.Controls.Add(this.lblNand);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "AddCpuKey";
- this.ShowInTaskbar = false;
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Text = "Add Entry";
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.Label lblNand;
- private System.Windows.Forms.TextBox txtFilename;
- private System.Windows.Forms.Label ldlCpukey;
- private System.Windows.Forms.Button btnFile;
- private System.Windows.Forms.Button btnOk;
- private System.Windows.Forms.TextBox txtCpuKey;
- }
-}
\ No newline at end of file
diff --git a/J-Runner/CPUkeydb/AddCpuKey.cs b/J-Runner/CPUkeydb/AddCpuKey.cs
deleted file mode 100644
index c3394e3..0000000
--- a/J-Runner/CPUkeydb/AddCpuKey.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using System;
-using System.IO;
-using System.Text.RegularExpressions;
-using System.Windows.Forms;
-
-namespace JRunner
-{
- public partial class AddCpuKey : Form
- {
- public string filename1, cerial, mobo, DVDkey, RegioN, OSIG;
- public long kv_crc;
-
- public AddCpuKey()
- {
- InitializeComponent();
- }
-
-
- void nandinit()
- {
- Regex objAlphaPattern = new Regex("[a-fA-F0-9]{32}$");
- bool sts = objAlphaPattern.IsMatch(txtCpuKey.Text);
- bool cpucheck = false;
- bool check = false;
- if (filename1 != null && Path.GetExtension(filename1) == ".bin")
- {
- if ((txtCpuKey.Text.Length == 32 && sts)) cpucheck = true;
- if (cpucheck) check = Nand.Nand.cpukeyverification(filename1, txtCpuKey.Text);
-
- }
- if (check)
- {
- kv_crc = MainForm.nand.kvcrc();
- cerial = MainForm.nand.ki.serial;
- mobo = Nand.Nand.getConsoleName(MainForm.nand, variables.flashconfig);
- DVDkey = MainForm.nand.ki.dvdkey;
- RegioN = MainForm.nand.ki.region;
- OSIG = MainForm.nand.ki.osig;
- }
- }
-
- public string serial()
- {
- return cerial;
- }
- public string motherboard()
- {
- return mobo;
- }
-
- public string cpukey()
- {
- return txtCpuKey.Text;
- }
- public long kvcrc()
- {
- return kv_crc;
- }
- public string dvdkey()
- {
- return this.DVDkey;
- }
- public string region()
- {
- return this.RegioN;
- }
- public string osig()
- {
- return this.OSIG;
- }
-
- ///
- /// Form functions
- ///
- ///
- ///
- void textBox1_DragDrop(object sender, DragEventArgs e)
- {
- string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
- if (Path.GetExtension(s[0]) == ".bin" || Path.GetExtension(s[0]) == ".ecc")
- {
- this.txtFilename.Text = s[0];
- filename1 = s[0];
- nandinit();
- }
-
- }
- void textBox1_DragEnter(object sender, DragEventArgs e)
- {
- if (e.Data.GetDataPresent(DataFormats.FileDrop))
- e.Effect = DragDropEffects.All;
- else
- e.Effect = DragDropEffects.None;
- }
- void cpukeytext_DragDrop(object sender, DragEventArgs e)
- {
- string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
- if (Path.GetExtension(s[0]) == ".txt")
- {
- Regex objAlphaPattern = new Regex("[a-fA-F0-9]{32}$");
- bool sts = objAlphaPattern.IsMatch(File.ReadAllText(s[0]));
- if (File.ReadAllText(s[0]).Length == 32 && sts)
- {
- txtCpuKey.Text = File.ReadAllText(s[0]);
- }
- }
-
- }
- void cpukeytext_DragEnter(object sender, DragEventArgs e)
- {
- if (e.Data.GetDataPresent(DataFormats.FileDrop))
- e.Effect = DragDropEffects.All;
- else
- e.Effect = DragDropEffects.None;
- }
- private void button1_Click(object sender, EventArgs e)
- {
- OpenFileDialog openFileDialog1 = new OpenFileDialog();
- openFileDialog1.Filter = "(*.bin)|*.bin|All files (*.*)|*.*";
- openFileDialog1.Title = "Select a File";
- if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- filename1 = openFileDialog1.FileName;
-
- }
- if (filename1 != null) this.txtFilename.Text = filename1;
- }
- private void button2_Click(object sender, EventArgs e)
- {
- nandinit();
- this.Close();
- }
-
- void cpukeytext_TextChanged(object sender, System.EventArgs e)
- {
- if (txtCpuKey.Text.Length == 32) nandinit();
- }
- }
-}
diff --git a/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs b/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs
index 6e8c6cb..08e81c1 100644
--- a/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs
+++ b/J-Runner/CPUkeydb/CpuKeyDB.Designer.cs
@@ -45,7 +45,6 @@ private void InitializeComponent()
this.lblSerial = new System.Windows.Forms.Label();
this.lblCount = new System.Windows.Forms.Label();
this.lblNumber = new System.Windows.Forms.Label();
- this.btnAdd = new System.Windows.Forms.Button();
this.btnExport = new System.Windows.Forms.Button();
this.btnClose = new System.Windows.Forms.Button();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
@@ -203,25 +202,14 @@ private void InitializeComponent()
this.lblNumber.TabIndex = 8;
this.lblNumber.Text = "0";
//
- // btnAdd
- //
- this.btnAdd.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnAdd.Location = new System.Drawing.Point(611, 39);
- this.btnAdd.Name = "btnAdd";
- this.btnAdd.Size = new System.Drawing.Size(98, 23);
- this.btnAdd.TabIndex = 9;
- this.btnAdd.Text = "Add Value";
- this.btnAdd.UseVisualStyleBackColor = true;
- this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
- //
// btnExport
//
this.btnExport.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnExport.Location = new System.Drawing.Point(611, 155);
+ this.btnExport.Location = new System.Drawing.Point(611, 126);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(98, 23);
this.btnExport.TabIndex = 11;
- this.btnExport.Text = "Export DB";
+ this.btnExport.Text = "Export Table";
this.btnExport.UseVisualStyleBackColor = true;
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
//
@@ -292,7 +280,7 @@ private void InitializeComponent()
//
// btnScan
//
- this.btnScan.Location = new System.Drawing.Point(611, 68);
+ this.btnScan.Location = new System.Drawing.Point(611, 39);
this.btnScan.Name = "btnScan";
this.btnScan.Size = new System.Drawing.Size(98, 23);
this.btnScan.TabIndex = 16;
@@ -302,7 +290,7 @@ private void InitializeComponent()
//
// btnreverse
//
- this.btnreverse.Location = new System.Drawing.Point(611, 97);
+ this.btnreverse.Location = new System.Drawing.Point(611, 68);
this.btnreverse.Name = "btnreverse";
this.btnreverse.Size = new System.Drawing.Size(98, 23);
this.btnreverse.TabIndex = 17;
@@ -312,11 +300,11 @@ private void InitializeComponent()
//
// btnImport
//
- this.btnImport.Location = new System.Drawing.Point(611, 126);
+ this.btnImport.Location = new System.Drawing.Point(611, 97);
this.btnImport.Name = "btnImport";
this.btnImport.Size = new System.Drawing.Size(98, 23);
this.btnImport.TabIndex = 18;
- this.btnImport.Text = "Import DB";
+ this.btnImport.Text = "Import Table";
this.btnImport.UseVisualStyleBackColor = true;
this.btnImport.Click += new System.EventHandler(this.btnImport_Click);
//
@@ -399,7 +387,6 @@ private void InitializeComponent()
this.Controls.Add(this.rbtnSerial);
this.Controls.Add(this.btnClose);
this.Controls.Add(this.btnExport);
- this.Controls.Add(this.btnAdd);
this.Controls.Add(this.lblNumber);
this.Controls.Add(this.lblCount);
this.Controls.Add(this.lblSerial);
@@ -430,7 +417,6 @@ private void InitializeComponent()
private System.Windows.Forms.Label lblSerial;
private System.Windows.Forms.Label lblCount;
private System.Windows.Forms.Label lblNumber;
- private System.Windows.Forms.Button btnAdd;
private System.Windows.Forms.Button btnExport;
private System.Windows.Forms.Button btnClose;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
diff --git a/J-Runner/CPUkeydb/CpuKeyDB.cs b/J-Runner/CPUkeydb/CpuKeyDB.cs
index 7224356..db516d8 100644
--- a/J-Runner/CPUkeydb/CpuKeyDB.cs
+++ b/J-Runner/CPUkeydb/CpuKeyDB.cs
@@ -9,7 +9,6 @@
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
-using MessageBox = System.Windows.Forms.MessageBox;
using OpenFileDialog = System.Windows.Forms.OpenFileDialog;
using SaveFileDialog = System.Windows.Forms.SaveFileDialog;
@@ -53,7 +52,6 @@ private void cpukeydb_Load(object sender, EventArgs e)
if (valueName == "Index")
{
index = Convert.ToInt32(cpukeydb.GetValue(valueName));
- lblNumber.Text = index.ToString();
for (int i = 1; i <= index; i++)
{
try
@@ -65,9 +63,7 @@ private void cpukeydb_Load(object sender, EventArgs e)
index = index - 1;
cpukeys.SetValue("Index", i); ;
cpukeydb.SetValue("Index", index);
- lblNumber.Text = index.ToString();
cpukeys.DeleteValue("Deleted");
- //continue;
}
DataRow cpurow = cputable.NewRow();
cpurow[0] = Convert.ToInt32(cpukeys.GetValue("Index"));
@@ -90,16 +86,17 @@ private void cpukeydb_Load(object sender, EventArgs e)
if (variables.debugMode) Console.WriteLine(ex.ToString());
continue;
}
+ lblNumber.Text = cputable.Rows.Count.ToString();
}
}
}
}
- public static bool addkey_s(regentries entry, DataSet1 hi)
+ public static bool addkey_s(regentries entry, DataSet1 db, bool stealth = false, bool updDialog = false)
{
if (string.IsNullOrEmpty(entry.kvcrc)) return false;
- DataTable cputable = hi.DataTable1;
+ DataTable cputable = db.DataTable1;
RegistryKey cpukeydb = Registry.CurrentUser.CreateSubKey("CPUKey_DB");
foreach (string subkey in cpukeydb.GetSubKeyNames())
{
@@ -107,13 +104,15 @@ public static bool addkey_s(regentries entry, DataSet1 hi)
{
if (cpukeydb.OpenSubKey(subkey).GetValue("CRC_KV").ToString() == entry.kvcrc || cpukeydb.OpenSubKey(subkey).GetValue("Serial").ToString() == entry.serial)
{
- Console.WriteLine("Key already Exists");
+ if (!stealth) Console.WriteLine("Key already exists");
return false;
}
}
}
int index = Convert.ToInt32(cpukeydb.GetValue("Index")) + 1;
+ if (updDialog) MainForm.mainForm.cpukeydb.index = index; // Update nonstatically if the dialog calls it, dirty but I don't have time to rewrite this dialog
+
cpukeydb.SetValue("Index", index);
RegistryKey cpukeys = cpukeydb.CreateSubKey(index.ToString());
cpukeys.SetValue("Index", index);
@@ -142,7 +141,7 @@ public static bool addkey_s(regentries entry, DataSet1 hi)
}
catch (System.Data.ConstraintException) { }
- Console.WriteLine("Added Key to Database");
+ if (!stealth) Console.WriteLine("Added Key to Database");
return true;
}
public static string getkey_s(long kvcrc, DataSet1 hi)
@@ -186,7 +185,7 @@ public static bool getkey_s(string cpukey, DataSet1 hi)
public void deletekey(int indexrow)
{
if (variables.debugMode) Console.WriteLine("Deleting Key");
- lblNumber.Text = (--index).ToString();
+ --index;
DataTable cputable = dataSet1.DataTable1;
RegistryKey cpukeydb = Registry.CurrentUser.CreateSubKey("CPUKey_DB");
if (variables.debugMode) Console.WriteLine("Index Row {0} | Index {1}", indexrow, index);
@@ -199,7 +198,7 @@ public void deletekey(int indexrow)
}
else
{
- if (variables.debugMode) Console.WriteLine("Setting Deleted");
+ if (variables.debugMode) Console.WriteLine("Setting deleted");
RegistryKey cpukeys = cpukeydb.CreateSubKey(cputable.Rows[indexrow][0].ToString());
foreach (string valueN in cpukeys.GetValueNames())
{
@@ -212,8 +211,10 @@ public void deletekey(int indexrow)
if (variables.debugMode) Console.WriteLine("Done");
}
cputable.Rows.Remove(cputable.Rows[indexrow]);
+ lblNumber.Text = cputable.Rows.Count.ToString();
if (variables.debugMode) Console.WriteLine("Finished");
- this.Refresh();
+ //this.Refresh(); // Uncomment if below is removed
+ MainForm.mainForm.restartCpuKeyDb(); // Fix the sorting in registry and table, there is probably a better way to do this
}
private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
@@ -309,7 +310,8 @@ public void ExportKey(string RegKey, string SavePath)
{
if (proc != null) proc.Dispose();
}
- MessageBox.Show("Export is completed.");
+ Console.WriteLine("CPU Key Database Export Complete");
+ Console.WriteLine("");
}
enum STATES
@@ -436,9 +438,11 @@ private void importReg(string regfile)
if (getkey_s(entry.cpukey, dataSet1)) continue;
- if (addkey_s(entry, dataSet1)) counter++;
+ if (addkey_s(entry, dataSet1, true, true)) counter++;
}
- Console.WriteLine("Done, added {0} keys", counter);
+ DataTable cputable = dataSet1.DataTable1;
+ lblNumber.Text = cputable.Rows.Count.ToString();
+ Console.WriteLine("Added {0} keys", counter);
Console.WriteLine("");
MainForm.mainForm.BeginInvoke(new Action(() => {
@@ -452,28 +456,6 @@ private void importReg(string regfile)
}
#region Buttons
- ///
- /// Manual Add value
- ///
- ///
- ///
- private void btnAdd_Click(object sender, EventArgs e)
- {
- AddCpuKey myNewForm = new AddCpuKey();
- myNewForm.ShowDialog();
- if (myNewForm.DialogResult != DialogResult.OK) return;
- regentries entry = new regentries();
- entry.kvcrc = myNewForm.kvcrc().ToString("X");
- entry.cpukey = myNewForm.cpukey();
- entry.serial = myNewForm.serial();
- entry.extra = myNewForm.motherboard();
- entry.dvdkey = myNewForm.dvdkey();
- entry.region = myNewForm.region();
- entry.osig = myNewForm.osig();
- addkey_s(entry, dataSet1);
- lblNumber.Text = index.ToString();
-
- }
private void EditMobotoolStripMenuItem1_Click(object sender, EventArgs e)
{
string EdID = dataGridView1.CurrentRow.Cells[0].Value.ToString();
@@ -595,10 +577,10 @@ private void scan(string folder)
}
median = (counter) / textfiles;
if (median == 0) median = 1;
- percent = ((nandfiles + (textfiles - median)) * 100) / ((filePaths.Length - textfiles) * median);
+ percent = ((nandfiles + (textfiles - median)) * 100) / Math.Max((filePaths.Length - textfiles) * median, 1);
if (percent > previous && percent < 100)
{
- if (percent % 5 == 0) Console.WriteLine("\rCompletion {0}%", percent);
+ if (percent % 5 == 0) Console.WriteLine("\rCompleted: {0}%", percent);
Console.Out.Flush();
previous = percent;
}
@@ -641,7 +623,7 @@ private void scan(string folder)
}
catch (Exception ex)
{
- if (variables.debugMode) Console.WriteLine(nand.ToString() + " Balls");
+ if (variables.debugMode) Console.WriteLine(nand.ToString());
if (variables.debugMode) Console.WriteLine(ex.ToString());
}
@@ -699,11 +681,12 @@ private void scan(string folder)
entry.region = nan.ki.region;
entry.dvdkey = nan.ki.dvdkey;
- addkey_s(entry, dataSet1);
+ addkey_s(entry, dataSet1, true, true);
}
found = false;
}
catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); }
+ lblNumber.Text = cputable.Rows.Count.ToString();
}
else if (variables.debugMode) Console.WriteLine("2nd time veri failed");
}
@@ -713,8 +696,7 @@ private void scan(string folder)
}
catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); }
this.Refresh();
- Console.WriteLine("\rCompletion 100%");
- Console.WriteLine("Done");
+ Console.WriteLine("\rCompleted: 100%");
Console.WriteLine("");
MainForm.mainForm.BeginInvoke(new Action(() => {
@@ -755,7 +737,7 @@ private void scan_cpukey(string folder, string cpukey)
percent = (i * 100) / (filePaths.Length);
if (percent > previous && percent < 100)
{
- if (percent % 5 == 0) Console.WriteLine("\rCompletion {0}%", percent);
+ if (percent % 5 == 0) Console.WriteLine("\rCompleted: {0}%", percent);
Console.Out.Flush();
previous = percent;
}
@@ -777,8 +759,7 @@ private void scan_cpukey(string folder, string cpukey)
}
catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); }
this.Refresh();
- Console.WriteLine("\rCompletion 100%");
- Console.WriteLine("Done");
+ Console.WriteLine("\rCompleted: 100%");
Console.WriteLine("");
MainForm.mainForm.BeginInvoke(new Action(() => {
@@ -819,7 +800,7 @@ private void scan_kv(string folder, long crc)
percent = (i * 100) / (filePaths.Length);
if (percent > previous && percent < 100)
{
- if (percent % 5 == 0) Console.WriteLine("\rCompletion {0}%", percent);
+ if (percent % 5 == 0) Console.WriteLine("\rCompleted: {0}%", percent);
Console.Out.Flush();
previous = percent;
}
@@ -838,8 +819,7 @@ private void scan_kv(string folder, long crc)
}
catch (Exception ex) { if (variables.debugMode) Console.WriteLine(ex.ToString()); }
this.Refresh();
- Console.WriteLine("\rCompletion 100%");
- Console.WriteLine("Done");
+ Console.WriteLine("\rCompleted: 100%");
Console.WriteLine("");
MainForm.mainForm.BeginInvoke(new Action(() => {
diff --git a/J-Runner/Classes/HID.cs b/J-Runner/Classes/HID.cs
index cea91ef..26b4ce5 100644
--- a/J-Runner/Classes/HID.cs
+++ b/J-Runner/Classes/HID.cs
@@ -314,7 +314,7 @@ private static void restart()
}
public static void program(ref ProgressBar pb)
{
- if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
+ if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
if (_deviceList.Count() != 0) _selectedDevice = _deviceList[0];
else { Console.WriteLine("Device Not Found"); return; }
if (_selectedDevice.IsConnected)
@@ -354,7 +354,7 @@ public static void program(ref ProgressBar pb)
public static void ver(ref ProgressBar pb)
{
- if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
+ if (string.IsNullOrEmpty(variables.filename1)) { MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
if (_deviceList.Count() != 0) _selectedDevice = _deviceList[0];
else { Console.WriteLine("Device Not Found"); return; }
if (_selectedDevice.IsConnected)
diff --git a/J-Runner/Forms/UpdateAvailable.Designer.cs b/J-Runner/Forms/UpdateAvailable.Designer.cs
new file mode 100644
index 0000000..26dd05e
--- /dev/null
+++ b/J-Runner/Forms/UpdateAvailable.Designer.cs
@@ -0,0 +1,85 @@
+
+namespace JRunner
+{
+ partial class UpdateAvailable
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UpdateAvailable));
+ this.SuccessWizard = new AeroWizard.WizardControl();
+ this.SuccessPage = new AeroWizard.WizardPage();
+ ((System.ComponentModel.ISupportInitialize)(this.SuccessWizard)).BeginInit();
+ this.SuspendLayout();
+ //
+ // SuccessWizard
+ //
+ this.SuccessWizard.CancelButtonText = "&Skip Update";
+ this.SuccessWizard.FinishButtonText = "&Download and Install";
+ this.SuccessWizard.Location = new System.Drawing.Point(0, 0);
+ this.SuccessWizard.Name = "SuccessWizard";
+ this.SuccessWizard.NextButtonText = "&Download and Install";
+ this.SuccessWizard.Pages.Add(this.SuccessPage);
+ this.SuccessWizard.Size = new System.Drawing.Size(554, 401);
+ this.SuccessWizard.TabIndex = 0;
+ this.SuccessWizard.Title = "J-Runner with Extras";
+ this.SuccessWizard.TitleIcon = ((System.Drawing.Icon)(resources.GetObject("SuccessWizard.TitleIcon")));
+ //
+ // SuccessPage
+ //
+ this.SuccessPage.AllowBack = false;
+ this.SuccessPage.IsFinishPage = true;
+ this.SuccessPage.Name = "SuccessPage";
+ this.SuccessPage.Size = new System.Drawing.Size(507, 247);
+ this.SuccessPage.TabIndex = 0;
+ this.SuccessPage.Text = "Updates Available";
+ //
+ // UpdateAvailable
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(554, 401);
+ this.ControlBox = false;
+ this.Controls.Add(this.SuccessWizard);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "UpdateAvailable";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "J-Runner with Extras";
+ this.Load += new System.EventHandler(this.UpdateSuccess_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.SuccessWizard)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private AeroWizard.WizardControl SuccessWizard;
+ private AeroWizard.WizardPage SuccessPage;
+ }
+}
\ No newline at end of file
diff --git a/J-Runner/Forms/UpdateAvailable.cs b/J-Runner/Forms/UpdateAvailable.cs
new file mode 100644
index 0000000..22b7c63
--- /dev/null
+++ b/J-Runner/Forms/UpdateAvailable.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Windows.Forms;
+
+namespace JRunner
+{
+ public partial class UpdateAvailable : Form
+ {
+ public UpdateAvailable()
+ {
+ InitializeComponent();
+ SuccessWizard.Cancelling += WizardCancelled;
+ SuccessWizard.Finished += WizardFinished;
+ }
+
+ private void UpdateSuccess_Load(object sender, EventArgs e)
+ {
+ // Make sure we're on top
+ bool top = TopMost;
+ TopMost = true; // Bring to front
+ TopMost = top; // Set it back
+ Activate();
+ }
+
+ private void WizardCancelled(object sender, EventArgs e) // No
+ {
+ Upd.allowUpdate = false;
+ Upd.cancelSource.Cancel();
+ }
+
+ private void WizardFinished(object sender, EventArgs e) // Yes
+ {
+ Upd.allowUpdate = true;
+ Upd.cancelSource.Cancel();
+ this.Close();
+ }
+ }
+}
diff --git a/J-Runner/CPUkeydb/AddCpuKey.resx b/J-Runner/Forms/UpdateAvailable.resx
similarity index 53%
rename from J-Runner/CPUkeydb/AddCpuKey.resx
rename to J-Runner/Forms/UpdateAvailable.resx
index 7f4b487..81948d3 100644
--- a/J-Runner/CPUkeydb/AddCpuKey.resx
+++ b/J-Runner/Forms/UpdateAvailable.resx
@@ -117,10 +117,503 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- True
-
+
+
+ AAABAAoAMDAQAAEABABoBgAApgAAACAgEAABAAQA6AIAAA4HAAAQEBAAAQAEACgBAAD2CQAAMDAAAAEA
+ CACoDgAAHgsAACAgAAABAAgAqAgAAMYZAAAQEAAAAQAIAGgFAABuIgAAAAAAAAEAIACzEAAA1icAADAw
+ AAABACAAqCUAAIk4AAAgIAAAAQAgAKgQAAAxXgAAEBAAAAEAIABoBAAA2W4AACgAAAAwAAAAYAAAAAEA
+ BAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDA
+ wAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAcAAAAAAAAAAAAAAAAAcAAABwAAAAAAAAAAcAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAcHAAAAAAAAAAAAAAAABwcHBwAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//
+ /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
+ AAD///////8AAP///////wAA/gAf//4DAADwAAP//AcAAOAAAf/4DwAAwAAA//AfAADAAAD/8B8AAMD/
+ wP/gPwAAwf/g/8B/AADB/+D/gP8AAMH/4P8A/wAAwf/g/wAPAADB/+D+AAcAAMH/4PwABwAAwf/g+AAD
+ AADB/+D4AAMAAP//4P//AwAA///g//+DAAD//+D//4MAAP//4P//gwAA///gf/4DAAD//+AAAAMAAP//
+ 4AAAAwAA///gAAAHAAD//+AAAAcAAP//4AAAHwAA////////AAD///////8AAP///////wAA////////
+ AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP//
+ /////wAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
+ gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ cAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAABwAAAABwAABwAAAAAABwAA
+ AAAHAAAAAABwAAAAAAAAAAAAAAAAAAAAcAAAAAAAAHAAAAcAcAAAAHAAAAAAAAAAAAAAAAAAAABwAAAA
+ AAAAAAAABwAAAAAAcAAABwAAAAAAcAAAAAAAAHAAAAAAAAAAAHAAAAAAAABwAAAAAAAAAAAAAAAAAAAA
+ cAAAAAAAAAAAAAAAAAAAAHAAd3d3d3cAAHAAAAAAAABwAAAAAAAAAABwAAAAAAAAcAAAAAAAAAAAAAAA
+ AAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////////////8Af/w8AB
+ /4OAAP8Hg+D+D4fw/h+H8Pwfh/D4B4fw8AOH8OAB//D/4f/w/+H/8P/h//AAAf/wAAH/8AAD//AAB///
+ ////////////////////////////////////////KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A
+ AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAd3AAAA
+ AAAAAAAAAAAAAAAAAHAAcABwBwAAAAB3cAAAAABwAAAAAAAAAAAHAHAAAAAAcAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAP//AACB+QAAgPMAALznAAC8wQAAvMEAAPz9
+ AAD8AQAA/AEAAP//AAD//wAA//8AAP//AAAoAAAAMAAAAGAAAAABAAgAAAAAAAAJAAAAAAAAAAAAAAAB
+ AAAAAQAAAAAAAAQEBAAJCQkADQ0NABMTEwAVFRUAGhoaAB8fHwAhISEAJSUlAC0tLQAwMDAAQ0NDAEdH
+ RwBJSUkATU1NAFBQUABaWloAYWFhAGRkZABtbW0AdXV1AHl5eQB9fX0AgICAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBQAAAAAA
+ AAAABg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAABEAAAAA
+ AAAAAAAAAAAAAAAABQAAAAAACQAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAL
+ AAAAAAAFAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAACQYGBgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAJAAAAAAAA
+ AAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAFAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAA
+ AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAABIAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAA
+ AAAAAAAAAA4AAAAACwsLCwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLCwsLCwsLCwkAAAAAAAMAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAABgDAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD///////8AAP//
+ /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////
+ AAD///////8AAP4AH//+AwAA8AAD//wHAADgAAH/+A8AAMAAAP/wHwAAwAAA//AfAADA/8D/4D8AAMH/
+ 4P/AfwAAwf/g/4D/AADB/+D/AP8AAMH/4P8ADwAAwf/g/gAHAADB/+D8AAcAAMH/4PgAAwAAwf/g+AAD
+ AAD//+D//wMAAP//4P//gwAA///g//+DAAD//+D//4MAAP//4H/+AwAA///gAAADAAD//+AAAAMAAP//
+ 4AAABwAA///gAAAHAAD//+AAAB8AAP///////wAA////////AAD///////8AAP///////wAA////////
+ AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AACgA
+ AAAgAAAAQAAAAAEACAAAAAAAAAQAAAAAAAAAAAAAAAEAAAABAAAAAAAACQkJAA8PDwATExMAFRUVAB4e
+ HgAiIiIAJycnACkpKQAvLy8AODg4AD09PQBDQ0MATk5OAFJSUgBXV1cAYGBgAHNzcwB0dHQAenp6AAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAANBAAAAAAAAQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEAAAAS
+ AAAADwAAAAAAAAAAAAAAAAAEAAAAAAAAAAAJAAAADAAAAAALAAAADwAAAAAAEwEAAAAAAAAAAAAADQAA
+ AAUAAAAAAAoAAAYAAAAAAAAAEwAAAAAAAAAAAAAAAAABAAAAAAAACgAABgAAAAAAAAATAAAAAAAAAAAA
+ AAAAABIAAAAAAAALAAAGAAAAAAAAABMAAAAAAAAAAAEAAAAAAAAEAAAAAAoAAAYAAAAAAAAAEwAAAAAA
+ AAAJAAAAAAAAAAABAAAACgAABgAAAAAAAAATAAAAAAAADQAAAAAAAAAAAAATAAAAAAAAAAAAAAAAABMA
+ AAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAAAACQAABgAAAAAAAAAAAAAA
+ AAATAAAAAAAAAAAAAAAAAAAEAAAJAAAAAAAAAAAAAAAAABMAAAAPEBAQEBAQEBAQCwAAAAsAAAAAAAAA
+ AAAAAAAAEwAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAEAAAAA
+ AAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////
+ ////////////////////////8Af/w8AB/4OAAP8Hg+D+D4fw/h+H8Pwfh/D4B4fw8AOH8OAB//D/4f/w
+ /+H/8P/h//AAAf/wAAH/8AAD//AAB///////////////////////////////////////////KAAAABAA
+ AAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAFBQUACQkJABAQEAAVFRUAGhoaAB4e
+ HgAhISEAKysrACwsLAAwMDAANjY2AD4+PgBEREQASUlJAFVVVQBeXl4AZGRkAHR0dAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDu/g+Qit9o5Th8
+ YgAAAABJRU5ErkJggigAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEKAQEBIgAAADAAAAAwAAAA
+ MAAAADAAAAAjAQEBCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmAAAAMAAAADAAAAAwAAAA
+ MAAAADAAAAAwAgICBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAiUBAQF5AAAAtwAAAOkAAAD+AAAA
+ /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAOcAAAC0AQEBdQEBAR8AAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAUYAAAD8AAAA
+ /gAAAP4AAAD+AAAA/gAAAP4BAQGvAwMDAQAAAAAAAAAAAAAAAAAAAAABAQElAQEBsgAAAP0AAAD/AAAA
+ /wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAPwBAQGlAQEB
+ GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEB
+ IQEBAesAAAD+AAAA/wAAAP8AAAD+AAAA/wEBAdoCAgIOAAAAAAAAAAAAAAAAAAAAAAEBATkAAADxAAAA
+ /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA
+ /gAAAP4AAAD+AQEB6QEBASsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAACAgILAQEBzwAAAP4AAAD+AAAA/gAAAP4AAAD+AQEB8gICAioAAAAAAAAAAAAAAAAAAAAAAAAA
+ BQAAAN8AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP4AAAD/AAAA
+ /wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wEBAdEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAQGlAAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD9AQEBUwAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD+AQEB+wAAAOQAAADkAQEB
+ 5AAAAOQBAQH1AAAA/gAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4CAgIwAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAXIAAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQGKAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD+AAAA/gAAAP4AAAD+AQEB4AEBAWQBAQEgAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBGAEBAV0BAQHeAAAA/gAAAP4AAAD+AAAA/gAAAP4EBARAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBRAEBAfoAAAD+AAAA/gAAAP4AAAD+AAAA
+ /gEBAbwBAQEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA
+ UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQFOAAAA/wAAAP4AAAD/AAAA
+ /wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIfAQEB7AAAAP8AAAD+AAAA
+ /wAAAP8AAAD+AQEB4AEBARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA
+ /wAAAP4AAAD/AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA
+ /wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQkBAQHPAAAA
+ /wAAAP8AAAD+AAAA/wAAAP8AAAD3AQEBNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ LAAAAP4AAAD+AAAA/gAAAP4AAAD+AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA/gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAEBAaQAAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4BAQGeAAAAQwAAAD8BAQEPAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAgICcwEBAf8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQH0AgIC
+ gwICAgIAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA/wAAAP4AAAD/AAAASwAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAQFBAAAA/AAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA
+ /wAAAP8AAAD+AAAA/wICApwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA
+ SwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA
+ /gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAEBASABAQHrAAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA
+ /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4BAQFKAAAAAAAAAAAAAAAAAAAALAAAAP4AAAD/AAAA
+ /wAAAP4AAAD/AAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA
+ /wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAgICCgEBAc0AAAD/AAAA/wAAAP8AAAD+AAAA
+ /wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQG4AAAAAAAAAAAAAAAAAQEB
+ JAEBAdIBAQHSAQEB0gEBAdIBAQHSAQEBPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAAAAAAAAAAAAAAAwMDeAICAtIBAQHSAQEB
+ 0gEBAdIBAQHSAQEB0gEBAdIBAQHSAQEB0gEBAdIBAQHdAAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD2AgIC
+ BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA/gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBngAAAP4AAAD+AAAA
+ /gAAAP4AAAD+AgICLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4FBQU/AAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEB
+ RQAAAP8AAAD+AAAA/wAAAP8AAAD+AAAARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA
+ /wAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAQEBQQAAAP8AAAD+AAAA/wAAAP8AAAD+AAAARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA
+ /gAAAP4AAAD+AAAA/gAAAP4FBQU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBewAAAP4AAAD+AAAA/gAAAP4AAAD+AAAARQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4DAwOTBAQEcQMDA3EDAwNxAwMDcQMDA3EDAwNxAwMD
+ cQMDA3EDAwNxAwMDcQMDA3EDAwNxAwMDcQQEBHECAgKAAQEB8gAAAP8AAAD+AAAA/wAAAP8AAAD+AQEB
+ LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA
+ /wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA
+ /wAAAP8AAAD3AQEBBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA
+ /wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA
+ /wAAAP8AAAD+AAAA/wAAAP8BAQGxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA/gAAAP4AAAD+AAAA
+ /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA
+ /gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4BAQE+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAAAA
+ /wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA
+ /wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wEBAYYAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAABHAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA
+ /wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAP8BAQHeAAAAYAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAA
+ GAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABYAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8A
+ AP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA/4B/
+ //4BAAD4AAf//AEAAOAAAf/4AwAAwAAA//AHAACAAAB/8A8AAIAAAH/gHwAAgD8Af8AfAACA/8B/gD8A
+ AID/wH8AfwAAgP/AfwAfAACA/8B+AAcAAID/wHwABwAAgP/AeAADAACA/8BwAAMAAID/wHAAAQAA///A
+ f/8BAAD//8B//wEAAP//wH//AQAA///Af/8BAAD//8AAAAEAAP//wAAAAQAA///AAAADAAD//8AAAAMA
+ AP//wAAABwAA///AAAAPAAD//8AAAD8AAP///////wAA////////AAD///////8AAP///////wAA////
+ ////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAA
+ AEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEKAAAA
+ HwAAACAAAAAgAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAABsAAAAgAAAAIAAAACAAAAAYAAAAAAAAAAAAAAAAAAAABAEBAVsAAACwAAAA
+ 6AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9AAAAMMBAQF3AQEBEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAQFPAAAA/QAAAP8AAAD/AAAA/gEBAVUAAAAAAAAAAAEBARkAAADQAAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADrAQEBQgAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICKQAAAPAAAAD/AAAA/wAAAP8BAQGLAAAAAAAAAAAAAAAAAAAA
+ qAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADqAQEB
+ CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQ4AAADXAAAA/wAAAP8AAAD/AQEBvAEBAQMAAAAAAAAA
+ AAAAAAAAAADHAAAA/wAAAP8AAAD+AAAArAEBAWMBAQFIAQEBQwEBAUMBAQFTAQEBhgAAAPAAAAD/AAAA
+ /wAAAP8DAwMpAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBsQAAAP8AAAD/AAAA/wAAAOEBAQEVAAAA
+ AAAAAAAAAAAAAAAAAAAAAMcAAAD/AAAA/wAAAN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ hwAAAP8AAAD/AAAA/wQEBCoAAAAAAAAAAAAAAAAAAAAAAAAAAAICAn8AAAD/AAAA/wAAAP8AAAD3AQEB
+ NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxwAAAP8AAAD/AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAACEAAAA/wAAAP8AAAD/BAQEKgAAAAAAAAAAAAAAAAAAAAABAQFNAAAA/QAAAP8AAAD/AAAA
+ /wEBAYwAAAArAAAABgAAAAAAAAAAAAAAAAAAAAAAAADHAAAA/wAAAP8AAADcAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAIQAAAD/AAAA/wAAAP8EBAQqAAAAAAAAAAAAAAAAAQEBKAEBAfAAAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAADoAgICRwAAAAAAAAAAAAAAAAAAAMcAAAD/AAAA/wAAANwAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAP8AAAD/AAAA/wQEBCoAAAAAAAAAAAEBAQ4AAADWAAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD1AQEBIQAAAAAAAAAAAAAAxwAAAP8AAAD/AAAA
+ 3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAA/wAAAP8AAAD/BAQEKgAAAAABAQECAQEB
+ sAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQGGAAAAAAAAAAACAgIqAgIC
+ NwICAjcCAgIvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAD/AAAA/wAAAP8EBAQqAAAA
+ AAICAgkCAgI3AgICNwICAjcCAgI3AgICNwICAjcCAgI3AQEBVwAAAPwAAAD/AAAA/wEBAcEAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAP8AAAD/AAAA
+ /wQEBCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAP8AAAD/AAAA
+ 2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAA
+ /wAAAP8AAAD/BAQEKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQUAAADsAAAA
+ /wAAAP8AAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAIQAAAD/AAAA/wAAAP8CAgKvAgICoAICAqACAgKgAgICoAICAqACAgKgAgICoAICAqACAgKgAQEB
+ wQAAAP8AAAD/AAAA/wAAAMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAhAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEBhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAACEAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPABAQEcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADWAAAAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAQAAAAEAAAABAAAAAQAAAA
+ EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////
+ ///////////////////////8H//BwAH/gYAA/wOAAH4DgAB8B4fwfA+H8HgHh/BwA4fwYAGH8EABh/BA
+ Af/wf+H/8H/B//AAAf/wAAH/8AAB//AAA//wAA//////////////////////////////////////KAAA
+ ABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAoAAAAQAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAEAAAAAYAAAAGAAAA
+ iwAAAOUAAAD/AAAA/wAAAPwAAADOAAAAUAAAAAAAAAAAAAAAAAAAAAABAQFaAAAA/gAAAOEBAQEVAAAA
+ WwAAAP8AAADqAAAAqgAAAKEAAAC2AAAA+wAAAPkBAQEMAAAAAAAAAAAAAAAwAAAA9QAAAPcBAQE1AAAA
+ AAAAAGMAAAD/AAAAbgAAAAAAAAAAAAAAAAAAAMIAAAD/AgICFQAAAAAAAAATAAAA3gAAAP8BAQF5AAAA
+ AQAAAAAAAABjAAAA/wAAAG4AAAAAAAAAAAAAAAAAAADBAAAA/wICAhUAAAADAAAAuwAAAP8AAAD/AAAA
+ /wAAAMkAAAAIAAAAPAEBAZsAAABCAAAAAAAAAAAAAAAAAAAAwQAAAP8CAgIVAgICPAEBAZsBAQGbAQEB
+ mwAAANQAAAD/AAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEAAAD/AgICFQAAAAAAAAAAAAAA
+ AAAAAAAAAABxAAAA/wAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAAAA/wEBAdMBAQHPAQEB
+ zwEBAc8BAQHPAAAA7wAAAP8AAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAP8AAAD/AAAA
+ /wAAAP8AAAD/AAAA/wAAAP8AAADAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAIAAAA
+ CAAAAAgAAAAIAAAACAAAAAgAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADj+AAAAPAA
+ AABhAAAcQQAAHAAAABwAAAD8eAAA/AAAAPwAAAD8AwAA//8AAP//AAD//wAA
+
+
AAABAAoAMDAQAAEABABoBgAApgAAACAgEAABAAQA6AIAAA4HAAAQEBAAAQAEACgBAAD2CQAAMDAAAAEA
diff --git a/J-Runner/JRunner.csproj b/J-Runner/JRunner.csproj
index 91e056b..d7e3561 100644
--- a/J-Runner/JRunner.csproj
+++ b/J-Runner/JRunner.csproj
@@ -428,12 +428,6 @@
-
- Form
-
-
- AddCpuKey.cs
-
Form
@@ -621,10 +615,6 @@
EditMobo.cs
Designer
-
- AddCpuKey.cs
- Designer
-
CpuKeyDB.cs
Designer
diff --git a/J-Runner/MainForm.cs b/J-Runner/MainForm.cs
index d66ee8f..63d0525 100644
--- a/J-Runner/MainForm.cs
+++ b/J-Runner/MainForm.cs
@@ -1971,7 +1971,7 @@ void nandinit(bool nomove = false, bool dontUpdateHackType = false)
if (string.IsNullOrEmpty(variables.filename1)) return;
if (!File.Exists(variables.filename1))
{
- MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
@@ -2975,20 +2975,29 @@ private void cPUKeyDatabaseToolStripMenuItem_Click(object sender, EventArgs e)
openCpuKeyDb();
}
- CpuKeyDB mycpukeydb;
+ public CpuKeyDB cpukeydb;
public void openCpuKeyDb()
{
if (Application.OpenForms.OfType().Any())
{
- mycpukeydb.WindowState = FormWindowState.Normal;
- mycpukeydb.Activate();
+ cpukeydb.WindowState = FormWindowState.Normal;
+ cpukeydb.Activate();
}
else
{
- mycpukeydb = new CpuKeyDB();
- mycpukeydb.Show();
- mycpukeydb.Location = new Point(Location.X + (Width - mycpukeydb.Width) / 2, Location.Y + 10);
- mycpukeydb.FormClosed += new FormClosedEventHandler(CpuKeyDb_FormClosed);
+ cpukeydb = new CpuKeyDB();
+ cpukeydb.Show();
+ cpukeydb.Location = new Point(Location.X + (Width - cpukeydb.Width) / 2, Location.Y + 10);
+ cpukeydb.FormClosed += new FormClosedEventHandler(CpuKeyDb_FormClosed);
+ }
+ }
+
+ public void restartCpuKeyDb()
+ {
+ if (Application.OpenForms.OfType().Any())
+ {
+ cpukeydb.Close();
+ openCpuKeyDb();
}
}
diff --git a/J-Runner/Nand/Nand.cs b/J-Runner/Nand/Nand.cs
index 04bac74..6a55340 100644
--- a/J-Runner/Nand/Nand.cs
+++ b/J-Runner/Nand/Nand.cs
@@ -1094,12 +1094,10 @@ public static bool cpukeyverification(string filename, string key_s, bool fast =
{
byte[] Keyvault = null;
-
long size = 0;
byte[] data;
if (fast) data = Oper.openfile(filename, ref size, 0x4200 * 3);
else data = Oper.returnportion(BadBlock.find_bad_blocks_X(filename, 2), 0, 40 * 1024); //2 * 0x4200);
-
byte[] key = Oper.StringToByteArray(key_s);
if (data[0] == 0xFF && data[1] == 0x4F)
@@ -2383,8 +2381,8 @@ public static bool imageknown(string filename, bool print = true)
if (!ascii.GetString(data).Contains("Microsoft") && print)
{
if (variables.debugMode) Console.WriteLine(ascii.GetString(data));
- if (data[0] == 0x46 && data[1] == 0x57 && data[2] == 0x41 && data[3] == 0x00) Console.WriteLine("DemoN fw");
- else if (size != 0x40000) Console.WriteLine("Header is wrong..");
+ if (data[0] == 0x46 && data[1] == 0x57 && data[2] == 0x41 && data[3] == 0x00) Console.WriteLine("DemoN FW");
+ else if (size != 0x40000) Console.WriteLine("Header is wrong");
}
if (data[0] == 0xFF && data[1] == 0x4F)
{
diff --git a/J-Runner/Panels/XeBuildPanel.cs b/J-Runner/Panels/XeBuildPanel.cs
index 9b3b6e0..e52d3cd 100644
--- a/J-Runner/Panels/XeBuildPanel.cs
+++ b/J-Runner/Panels/XeBuildPanel.cs
@@ -1231,13 +1231,13 @@ public void createxebuild_v2(bool custom, Nand.PrivateN nand, bool fullDataClean
loadFil(ref variables.filename1, true);
if (string.IsNullOrWhiteSpace(variables.filename1))
{
- MessageBox.Show("No file was selected!", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ MessageBox.Show("No file was selected", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
if (!File.Exists(variables.filename1))
{
- MessageBox.Show("File is missing. Ensure it wasn't moved and app can access it.", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ MessageBox.Show("File is missing\n\nEnsure that it was not moved and the program can access it", "Can't", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (Path.GetExtension(variables.filename1) != ".bin")
diff --git a/J-Runner/Resources/Build.txt b/J-Runner/Resources/Build.txt
index 495db45..c33b60f 100644
--- a/J-Runner/Resources/Build.txt
+++ b/J-Runner/Resources/Build.txt
@@ -1 +1 @@
-09-26-2022 05:00:39
\ No newline at end of file
+10-06-2022 03:04:40
\ No newline at end of file