增加ACR122U切换与简单界面

This commit is contained in:
XAS-712 2019-01-01 15:27:59 +08:00
parent 22cc96e2b1
commit 713d5d6262
3 changed files with 371 additions and 19 deletions

View File

@ -57,10 +57,35 @@
this.buttonCmfWrite = new System.Windows.Forms.Button();
this.buttonLockUfuid = new System.Windows.Forms.Button();
this.buttonMfFormat = new System.Windows.Forms.Button();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.buttonEMfoc = new System.Windows.Forms.Button();
this.buttonEMfRead = new System.Windows.Forms.Button();
this.buttonECmfoc = new System.Windows.Forms.Button();
this.groupBox6 = new System.Windows.Forms.GroupBox();
this.buttonEscan = new System.Windows.Forms.Button();
this.buttoEScanCard = new System.Windows.Forms.Button();
this.buttonESelectKey = new System.Windows.Forms.Button();
this.buttonEUpdate = new System.Windows.Forms.Button();
this.groupBox7 = new System.Windows.Forms.GroupBox();
this.buttonECuidWrite = new System.Windows.Forms.Button();
this.buttonEUIDWrite = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.buttonEMfWrite = new System.Windows.Forms.Button();
this.buttonEAdv = new System.Windows.Forms.Button();
this.buttonEnAcr122u = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox4.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox6.SuspendLayout();
this.groupBox7.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
@ -69,7 +94,7 @@
this.groupBox1.Controls.Add(this.buttonCLI);
this.groupBox1.Controls.Add(this.buttonScanCard);
this.groupBox1.Controls.Add(this.buttonListDev);
this.groupBox1.Location = new System.Drawing.Point(12, 12);
this.groupBox1.Location = new System.Drawing.Point(3, 6);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(200, 83);
this.groupBox1.TabIndex = 0;
@ -124,10 +149,10 @@
//
this.richTextBox1.BackColor = System.Drawing.Color.Black;
this.richTextBox1.ForeColor = System.Drawing.Color.Lime;
this.richTextBox1.Location = new System.Drawing.Point(12, 190);
this.richTextBox1.Location = new System.Drawing.Point(12, 219);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.ReadOnly = true;
this.richTextBox1.Size = new System.Drawing.Size(623, 300);
this.richTextBox1.Size = new System.Drawing.Size(623, 290);
this.richTextBox1.TabIndex = 1;
this.richTextBox1.Text = "Hello,cardman!\n建议点击\"检测\"以加快后续运行速度\n";
//
@ -153,7 +178,7 @@
this.groupBox2.Controls.Add(this.buttonMfWrite);
this.groupBox2.Controls.Add(this.buttonSelectKey);
this.groupBox2.Controls.Add(this.buttonMfRead);
this.groupBox2.Location = new System.Drawing.Point(218, 12);
this.groupBox2.Location = new System.Drawing.Point(209, 6);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(417, 83);
this.groupBox2.TabIndex = 4;
@ -254,7 +279,7 @@
this.groupBox3.Controls.Add(this.buttonKill);
this.groupBox3.Controls.Add(this.buttonConSave);
this.groupBox3.Controls.Add(this.buttonConClr);
this.groupBox3.Location = new System.Drawing.Point(467, 101);
this.groupBox3.Location = new System.Drawing.Point(458, 95);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(169, 83);
this.groupBox3.TabIndex = 5;
@ -297,7 +322,7 @@
// buttonMfcuk
//
this.buttonMfcuk.Font = new System.Drawing.Font("宋体", 8.5F);
this.buttonMfcuk.Location = new System.Drawing.Point(168, 24);
this.buttonMfcuk.Location = new System.Drawing.Point(122, 24);
this.buttonMfcuk.Name = "buttonMfcuk";
this.buttonMfcuk.Size = new System.Drawing.Size(70, 52);
this.buttonMfcuk.TabIndex = 3;
@ -311,7 +336,7 @@
this.buttonHexTool.Font = new System.Drawing.Font("宋体", 8.5F);
this.buttonHexTool.Location = new System.Drawing.Point(6, 53);
this.buttonHexTool.Name = "buttonHexTool";
this.buttonHexTool.Size = new System.Drawing.Size(156, 23);
this.buttonHexTool.Size = new System.Drawing.Size(110, 23);
this.buttonHexTool.TabIndex = 1;
this.buttonHexTool.Text = "Hex工具";
this.buttonHexTool.UseVisualStyleBackColor = true;
@ -322,7 +347,7 @@
this.buttonTool1.Font = new System.Drawing.Font("宋体", 8.5F);
this.buttonTool1.Location = new System.Drawing.Point(6, 24);
this.buttonTool1.Name = "buttonTool1";
this.buttonTool1.Size = new System.Drawing.Size(156, 23);
this.buttonTool1.Size = new System.Drawing.Size(110, 23);
this.buttonTool1.TabIndex = 0;
this.buttonTool1.Text = "key.mfd工具";
this.buttonTool1.UseVisualStyleBackColor = true;
@ -337,13 +362,14 @@
//
// groupBox4
//
this.groupBox4.Controls.Add(this.buttonEnAcr122u);
this.groupBox4.Controls.Add(this.buttonMfFormat);
this.groupBox4.Controls.Add(this.buttonLockUfuid);
this.groupBox4.Controls.Add(this.buttonCmfWrite);
this.groupBox4.Controls.Add(this.buttonMfcuk);
this.groupBox4.Controls.Add(this.buttonTool1);
this.groupBox4.Controls.Add(this.buttonHexTool);
this.groupBox4.Location = new System.Drawing.Point(12, 101);
this.groupBox4.Location = new System.Drawing.Point(3, 95);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(449, 83);
this.groupBox4.TabIndex = 11;
@ -352,7 +378,7 @@
//
// buttonCmfWrite
//
this.buttonCmfWrite.Location = new System.Drawing.Point(244, 23);
this.buttonCmfWrite.Location = new System.Drawing.Point(198, 23);
this.buttonCmfWrite.Name = "buttonCmfWrite";
this.buttonCmfWrite.Size = new System.Drawing.Size(75, 23);
this.buttonCmfWrite.TabIndex = 4;
@ -362,7 +388,7 @@
//
// buttonLockUfuid
//
this.buttonLockUfuid.Location = new System.Drawing.Point(244, 52);
this.buttonLockUfuid.Location = new System.Drawing.Point(198, 52);
this.buttonLockUfuid.Name = "buttonLockUfuid";
this.buttonLockUfuid.Size = new System.Drawing.Size(75, 23);
this.buttonLockUfuid.TabIndex = 5;
@ -372,7 +398,7 @@
//
// buttonMfFormat
//
this.buttonMfFormat.Location = new System.Drawing.Point(325, 23);
this.buttonMfFormat.Location = new System.Drawing.Point(279, 23);
this.buttonMfFormat.Name = "buttonMfFormat";
this.buttonMfFormat.Size = new System.Drawing.Size(75, 23);
this.buttonMfFormat.TabIndex = 6;
@ -380,16 +406,218 @@
this.buttonMfFormat.UseVisualStyleBackColor = true;
this.buttonMfFormat.Click += new System.EventHandler(this.buttonMfFormat_Click);
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Location = new System.Drawing.Point(5, 5);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(640, 212);
this.tabControl1.TabIndex = 11;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.groupBox1);
this.tabPage1.Controls.Add(this.groupBox4);
this.tabPage1.Controls.Add(this.groupBox2);
this.tabPage1.Controls.Add(this.groupBox3);
this.tabPage1.Location = new System.Drawing.Point(4, 25);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(632, 183);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "高级操作模式";
this.tabPage1.UseVisualStyleBackColor = true;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.buttonEAdv);
this.tabPage2.Controls.Add(this.groupBox7);
this.tabPage2.Controls.Add(this.groupBox6);
this.tabPage2.Controls.Add(this.groupBox5);
this.tabPage2.Location = new System.Drawing.Point(4, 25);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(632, 183);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "复制卡模式";
this.tabPage2.UseVisualStyleBackColor = true;
//
// groupBox5
//
this.groupBox5.Controls.Add(this.buttonESelectKey);
this.groupBox5.Controls.Add(this.buttonECmfoc);
this.groupBox5.Controls.Add(this.buttonEMfRead);
this.groupBox5.Controls.Add(this.buttonEMfoc);
this.groupBox5.Location = new System.Drawing.Point(140, 6);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(128, 171);
this.groupBox5.TabIndex = 0;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "[2]读取原卡";
//
// buttonEMfoc
//
this.buttonEMfoc.Location = new System.Drawing.Point(6, 25);
this.buttonEMfoc.Name = "buttonEMfoc";
this.buttonEMfoc.Size = new System.Drawing.Size(116, 25);
this.buttonEMfoc.TabIndex = 0;
this.buttonEMfoc.Text = "[1]半加密破解";
this.buttonEMfoc.UseVisualStyleBackColor = true;
this.buttonEMfoc.Click += new System.EventHandler(this.buttonEMfoc_Click);
//
// buttonEMfRead
//
this.buttonEMfRead.Location = new System.Drawing.Point(6, 140);
this.buttonEMfRead.Name = "buttonEMfRead";
this.buttonEMfRead.Size = new System.Drawing.Size(116, 25);
this.buttonEMfRead.TabIndex = 1;
this.buttonEMfRead.Text = "已知密钥读";
this.buttonEMfRead.UseVisualStyleBackColor = true;
this.buttonEMfRead.Click += new System.EventHandler(this.button2_Click);
//
// buttonECmfoc
//
this.buttonECmfoc.Location = new System.Drawing.Point(6, 80);
this.buttonECmfoc.Name = "buttonECmfoc";
this.buttonECmfoc.Size = new System.Drawing.Size(116, 25);
this.buttonECmfoc.TabIndex = 2;
this.buttonECmfoc.Text = "知一密破解";
this.buttonECmfoc.UseVisualStyleBackColor = true;
this.buttonECmfoc.Click += new System.EventHandler(this.buttonECmfoc_Click);
//
// groupBox6
//
this.groupBox6.Controls.Add(this.buttonEUpdate);
this.groupBox6.Controls.Add(this.buttoEScanCard);
this.groupBox6.Controls.Add(this.buttonEscan);
this.groupBox6.Location = new System.Drawing.Point(6, 6);
this.groupBox6.Name = "groupBox6";
this.groupBox6.Size = new System.Drawing.Size(128, 171);
this.groupBox6.TabIndex = 3;
this.groupBox6.TabStop = false;
this.groupBox6.Text = "[1]检测";
//
// buttonEscan
//
this.buttonEscan.Location = new System.Drawing.Point(6, 25);
this.buttonEscan.Name = "buttonEscan";
this.buttonEscan.Size = new System.Drawing.Size(116, 25);
this.buttonEscan.TabIndex = 0;
this.buttonEscan.Text = "[1]检测连接";
this.buttonEscan.UseVisualStyleBackColor = true;
this.buttonEscan.Click += new System.EventHandler(this.buttonEscan_Click);
//
// buttoEScanCard
//
this.buttoEScanCard.Location = new System.Drawing.Point(6, 56);
this.buttoEScanCard.Name = "buttoEScanCard";
this.buttoEScanCard.Size = new System.Drawing.Size(116, 25);
this.buttoEScanCard.TabIndex = 1;
this.buttoEScanCard.Text = "[2]扫描卡片";
this.buttoEScanCard.UseVisualStyleBackColor = true;
this.buttoEScanCard.Click += new System.EventHandler(this.buttoEScanCard_Click);
//
// buttonESelectKey
//
this.buttonESelectKey.Location = new System.Drawing.Point(6, 109);
this.buttonESelectKey.Name = "buttonESelectKey";
this.buttonESelectKey.Size = new System.Drawing.Size(116, 25);
this.buttonESelectKey.TabIndex = 2;
this.buttonESelectKey.Text = "加载密钥…";
this.buttonESelectKey.UseVisualStyleBackColor = true;
this.buttonESelectKey.Click += new System.EventHandler(this.buttonESelectKey_Click);
//
// buttonEUpdate
//
this.buttonEUpdate.Location = new System.Drawing.Point(6, 140);
this.buttonEUpdate.Name = "buttonEUpdate";
this.buttonEUpdate.Size = new System.Drawing.Size(116, 25);
this.buttonEUpdate.TabIndex = 4;
this.buttonEUpdate.Text = "检查M1T更新";
this.buttonEUpdate.UseVisualStyleBackColor = true;
this.buttonEUpdate.Click += new System.EventHandler(this.buttonEUpdate_Click);
//
// groupBox7
//
this.groupBox7.Controls.Add(this.buttonECuidWrite);
this.groupBox7.Controls.Add(this.buttonEUIDWrite);
this.groupBox7.Controls.Add(this.button4);
this.groupBox7.Controls.Add(this.buttonEMfWrite);
this.groupBox7.Location = new System.Drawing.Point(274, 6);
this.groupBox7.Name = "groupBox7";
this.groupBox7.Size = new System.Drawing.Size(128, 171);
this.groupBox7.TabIndex = 3;
this.groupBox7.TabStop = false;
this.groupBox7.Text = "[3]写入新卡";
//
// buttonECuidWrite
//
this.buttonECuidWrite.Location = new System.Drawing.Point(6, 56);
this.buttonECuidWrite.Name = "buttonECuidWrite";
this.buttonECuidWrite.Size = new System.Drawing.Size(116, 25);
this.buttonECuidWrite.TabIndex = 2;
this.buttonECuidWrite.Text = "写C/FUID卡";
this.buttonECuidWrite.UseVisualStyleBackColor = true;
this.buttonECuidWrite.Click += new System.EventHandler(this.buttonECuidWrite_Click);
//
// buttonEUIDWrite
//
this.buttonEUIDWrite.Location = new System.Drawing.Point(6, 25);
this.buttonEUIDWrite.Name = "buttonEUIDWrite";
this.buttonEUIDWrite.Size = new System.Drawing.Size(116, 25);
this.buttonEUIDWrite.TabIndex = 2;
this.buttonEUIDWrite.Text = "写(UF)UID卡";
this.buttonEUIDWrite.UseVisualStyleBackColor = true;
//
// button4
//
this.button4.Location = new System.Drawing.Point(6, 85);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(116, 25);
this.button4.TabIndex = 1;
this.button4.Text = "锁UFUID卡";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// buttonEMfWrite
//
this.buttonEMfWrite.Location = new System.Drawing.Point(6, 140);
this.buttonEMfWrite.Name = "buttonEMfWrite";
this.buttonEMfWrite.Size = new System.Drawing.Size(116, 25);
this.buttonEMfWrite.TabIndex = 0;
this.buttonEMfWrite.Text = "写入普通卡";
this.buttonEMfWrite.UseVisualStyleBackColor = true;
this.buttonEMfWrite.Click += new System.EventHandler(this.buttonEMfWrite_Click);
//
// buttonEAdv
//
this.buttonEAdv.Location = new System.Drawing.Point(408, 16);
this.buttonEAdv.Name = "buttonEAdv";
this.buttonEAdv.Size = new System.Drawing.Size(218, 40);
this.buttonEAdv.TabIndex = 4;
this.buttonEAdv.Text = "点此进入高级模式>>>";
this.buttonEAdv.UseVisualStyleBackColor = true;
this.buttonEAdv.Click += new System.EventHandler(this.buttonEAdv_Click);
//
// buttonEnAcr122u
//
this.buttonEnAcr122u.Location = new System.Drawing.Point(279, 52);
this.buttonEnAcr122u.Name = "buttonEnAcr122u";
this.buttonEnAcr122u.Size = new System.Drawing.Size(164, 23);
this.buttonEnAcr122u.TabIndex = 7;
this.buttonEnAcr122u.Text = "启用ACR122U支持";
this.buttonEnAcr122u.UseVisualStyleBackColor = true;
this.buttonEnAcr122u.Click += new System.EventHandler(this.buttonEnAcr122u_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(649, 502);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.ClientSize = new System.Drawing.Size(649, 521);
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.richTextBox1);
this.Controls.Add(this.groupBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.Name = "Form1";
@ -400,6 +628,12 @@
this.groupBox2.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
this.groupBox4.ResumeLayout(false);
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.groupBox5.ResumeLayout(false);
this.groupBox6.ResumeLayout(false);
this.groupBox7.ResumeLayout(false);
this.ResumeLayout(false);
}
@ -434,6 +668,25 @@
private System.Windows.Forms.Button buttonLockUfuid;
private System.Windows.Forms.Button buttonCmfWrite;
private System.Windows.Forms.Button buttonMfFormat;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.Button buttonECmfoc;
private System.Windows.Forms.Button buttonEMfRead;
private System.Windows.Forms.Button buttonEMfoc;
private System.Windows.Forms.GroupBox groupBox6;
private System.Windows.Forms.Button buttonEscan;
private System.Windows.Forms.Button buttoEScanCard;
private System.Windows.Forms.Button buttonESelectKey;
private System.Windows.Forms.Button buttonEUpdate;
private System.Windows.Forms.GroupBox groupBox7;
private System.Windows.Forms.Button buttonECuidWrite;
private System.Windows.Forms.Button buttonEUIDWrite;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button buttonEMfWrite;
private System.Windows.Forms.Button buttonEAdv;
private System.Windows.Forms.Button buttonEnAcr122u;
}
}

View File

@ -75,6 +75,8 @@ namespace MifareOneTool
omfd = "";
Text = "MifareOne Tool - 运行完毕";
}
Application.DoEvents();
}
private void logAppend(string msg)
@ -768,5 +770,102 @@ namespace MifareOneTool
lprocess = false;
b.ReportProgress(100, "##运行完毕##");
}
private void buttonEMfoc_Click(object sender, EventArgs e)
{
buttonMfoc_Click(sender,e);
}
private void buttonEscan_Click(object sender, EventArgs e)
{
buttonListDev_Click(sender, e);
}
private void buttoEScanCard_Click(object sender, EventArgs e)
{
buttonScanCard_Click(sender, e);
}
private void buttonECmfoc_Click(object sender, EventArgs e)
{
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
string rmfd = "Mfoc.tmp";
string key = "";
string[] ks = Interaction.InputBox("请输入已知的Key以英文半角逗号分隔。", "请输入已知Key", "FFFFFFFFFFFF", -1, -1).Trim().Split(',');
if (ks.Length > 0)
{
foreach (string k in ks)
{
string pat = "[0-9A-Fa-f]{12}";
if (Regex.IsMatch(k, pat))
{
key += "-k " + k.Substring(0, 12) + " ";
}
}
}
BackgroundWorker bgw = new BackgroundWorker();
bgw.DoWork += new DoWorkEventHandler(mfoc);
bgw.WorkerReportsProgress = true;
bgw.ProgressChanged += new ProgressChangedEventHandler(default_rpt);
bgw.RunWorkerAsync(new string[] { rmfd, key });
omfd = rmfd;
}
private void buttonEUpdate_Click(object sender, EventArgs e)
{
linkLabel1_LinkClicked(sender, null);
}
private void buttonESelectKey_Click(object sender, EventArgs e)
{
buttonSelectKey_Click(sender, e);
}
private void button2_Click(object sender, EventArgs e)
{
buttonMfRead_Click(sender, e);
}
private void buttonEMfWrite_Click(object sender, EventArgs e)
{
buttonMfWrite_Click(sender, e);
}
private void buttonECuidWrite_Click(object sender, EventArgs e)
{
buttonCmfWrite_Click(sender, e);
}
private void button4_Click(object sender, EventArgs e)
{
buttonLockUfuid_Click(sender, e);
}
private void buttonEAdv_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = tabControl1.TabPages.Count - 1;
}
private void buttonEnAcr122u_Click(object sender, EventArgs e)
{
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
if (MessageBox.Show("同时打开ACR122U支持可能会引起操作速度下降。\n请确认是否要继续操作", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
{ return; }
lprocess = true;
if (File.Exists("nfc-bin/libnfc(PN532Only).dll"))
{
logAppend("ACR122U支持已经打开过。");
}
if (File.Exists("nfc-bin/libnfc(ACR122U).dll"))
{
logAppend("正在打开ACR122U支持……");
File.Move("nfc-bin/libnfc.dll", "nfc-bin/libnfc(PN532Only).dll");
File.Move("nfc-bin/libnfc(ACR122U).dll", "nfc-bin/libnfc.dll");
logAppend("已打开。");
}
lprocess = false;
Text = "MifareOne Tool - 运行完毕";
logAppend("##运行完毕##");
}
}
}

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.3.0")]
[assembly: AssemblyFileVersion("1.3.3.0")]
[assembly: AssemblyVersion("1.4.0.0")]
[assembly: AssemblyFileVersion("1.4.0.0")]