Configurator.Net: Added motor armed indicator, auto refresh of com port list

git-svn-id: https://arducopter.googlecode.com/svn/trunk@1729 f9c3cf11-9bcb-44bc-f272-b75c42450872
This commit is contained in:
mandrolic 2011-02-26 15:44:39 +00:00
parent 195b695011
commit e20b350a89
7 changed files with 146 additions and 83 deletions

View File

@ -33,7 +33,7 @@
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>index.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<ApplicationRevision>5</ApplicationRevision>
<ApplicationRevision>6</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>

View File

@ -34,11 +34,17 @@ namespace ArducopterConfigurator.PresentationModels
private const string STOP_UPDATES = "X";
private bool waitingForCalibData;
public SensorsVm()
{
RefreshCalibrationOffsetsCommand = new DelegateCommand(_ => RefreshCalibValues());
UpdateCalibrationOffsetsCommand = new DelegateCommand(_ => UpdateCalibValues());
CalculateCalibrationOffsetsCommand = new DelegateCommand(_ => CalcCalibValues());
PropertyChanged += ((sender, e) =>
{
IsArmed = !(MotorFront == 1040 && MotorRear == 1040 && MotorLeft == 1040 && MotorRight == 1040);
});
}
public void RefreshCalibValues()
@ -79,9 +85,9 @@ namespace ArducopterConfigurator.PresentationModels
"GyroPitch",
"GyroYaw",
"Unused", // Throttle
"Unused", // control roll
"Unused", // control pitch
"Unused", // control yaw
"ControlRoll", // control roll
"ControlPitch", // control pitch
"ControlYaw", // control yaw
"MotorFront",
"MotorRear",
"MotorRight",
@ -165,6 +171,29 @@ namespace ArducopterConfigurator.PresentationModels
#endregion
private bool _isArmed;
/// <summary>
/// Whether the Arducopter is Armed or not
/// </summary>
/// <remarks>
/// We don't get this information directly, but we can infer it if all motors are
/// at 1040 then the thing is NOT armed.
/// </remarks>
public bool IsArmed
{
get { return _isArmed; }
set
{
if (_isArmed == value) return;
_isArmed = value;
FirePropertyChanged("IsArmed");
}
}
#region Sensor Properties
private int _loopTime;
@ -299,6 +328,46 @@ namespace ArducopterConfigurator.PresentationModels
FirePropertyChanged("AccelZ");
}
}
private int _controlRoll;
public int ControlRoll
{
get { return _controlRoll; }
set
{
if (_controlRoll == value) return;
_controlRoll = value;
FirePropertyChanged("ControlRoll");
}
}
private int _controlPitch;
public int ControlPitch
{
get { return _controlPitch; }
set
{
if (_controlPitch == value) return;
_controlPitch = value;
FirePropertyChanged("ControlPitch");
}
}
private int _controlYaw;
public int ControlYaw
{
get { return _controlYaw; }
set
{
if (_controlYaw == value) return;
_controlYaw = value;
FirePropertyChanged("ControlYaw");
}
}
#endregion
public int Unused { get; set; }

View File

@ -70,6 +70,7 @@
this.cirularIndicatorControl4 = new ArducopterConfigurator.Views.controls.CirularIndicatorControl();
this.cirularIndicatorControl5 = new ArducopterConfigurator.Views.controls.CirularIndicatorControl();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.label1 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.FlightDataVmBindingSource)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
@ -79,6 +80,7 @@
//
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorLeft", true));
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Visible", this.FlightDataVmBindingSource, "IsArmed", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.textBox1.Enabled = false;
this.textBox1.Location = new System.Drawing.Point(99, 162);
this.textBox1.Name = "textBox1";
@ -217,8 +219,9 @@
//
this.textBox8.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox8.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorFront", true));
this.textBox8.DataBindings.Add(new System.Windows.Forms.Binding("Visible", this.FlightDataVmBindingSource, "IsArmed", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.textBox8.Enabled = false;
this.textBox8.Location = new System.Drawing.Point(173, 83);
this.textBox8.Location = new System.Drawing.Point(182, 83);
this.textBox8.Name = "textBox8";
this.textBox8.ReadOnly = true;
this.textBox8.Size = new System.Drawing.Size(38, 13);
@ -228,8 +231,9 @@
//
this.textBox9.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox9.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorRear", true));
this.textBox9.DataBindings.Add(new System.Windows.Forms.Binding("Visible", this.FlightDataVmBindingSource, "IsArmed", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.textBox9.Enabled = false;
this.textBox9.Location = new System.Drawing.Point(117, 192);
this.textBox9.Location = new System.Drawing.Point(107, 192);
this.textBox9.Name = "textBox9";
this.textBox9.ReadOnly = true;
this.textBox9.Size = new System.Drawing.Size(32, 13);
@ -239,6 +243,7 @@
//
this.textBox10.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox10.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.FlightDataVmBindingSource, "MotorRight", true));
this.textBox10.DataBindings.Add(new System.Windows.Forms.Binding("Visible", this.FlightDataVmBindingSource, "IsArmed", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.textBox10.Enabled = false;
this.textBox10.Location = new System.Drawing.Point(186, 163);
this.textBox10.Name = "textBox10";
@ -424,7 +429,7 @@
//
this.button2.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.FlightDataVmBindingSource, "RefreshCalibrationOffsetsCommand", true));
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
this.button2.Location = new System.Drawing.Point(280, 214);
this.button2.Location = new System.Drawing.Point(311, 214);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(26, 26);
this.button2.TabIndex = 46;
@ -434,7 +439,7 @@
//
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.FlightDataVmBindingSource, "UpdateCalibrationOffsetsCommand", true));
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
this.button1.Location = new System.Drawing.Point(280, 185);
this.button1.Location = new System.Drawing.Point(311, 185);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(26, 26);
this.button1.TabIndex = 45;
@ -444,7 +449,7 @@
//
this.button3.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.FlightDataVmBindingSource, "CalculateCalibrationOffsetsCommand", true));
this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image")));
this.button3.Location = new System.Drawing.Point(280, 156);
this.button3.Location = new System.Drawing.Point(311, 156);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(26, 26);
this.button3.TabIndex = 47;
@ -454,7 +459,7 @@
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(312, 163);
this.label11.Location = new System.Drawing.Point(343, 163);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(78, 13);
this.label11.TabIndex = 48;
@ -463,7 +468,7 @@
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(312, 192);
this.label12.Location = new System.Drawing.Point(343, 192);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(84, 13);
this.label12.TabIndex = 49;
@ -472,7 +477,7 @@
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(312, 223);
this.label13.Location = new System.Drawing.Point(343, 223);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(96, 13);
this.label13.TabIndex = 50;
@ -590,10 +595,24 @@
this.cirularIndicatorControl5.TabIndex = 56;
this.cirularIndicatorControl5.Value = 1500;
//
// label1
//
this.label1.AutoSize = true;
this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.label1.DataBindings.Add(new System.Windows.Forms.Binding("Visible", this.FlightDataVmBindingSource, "IsArmed", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.Red;
this.label1.Location = new System.Drawing.Point(308, 29);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(59, 19);
this.label1.TabIndex = 57;
this.label1.Text = "ARMED";
//
// FlightDataView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label1);
this.Controls.Add(this.cirularIndicatorControl5);
this.Controls.Add(this.cirularIndicatorControl4);
this.Controls.Add(this.cirularIndicatorControl3);
@ -633,7 +652,7 @@
this.Controls.Add(this.pictureBox2);
this.DoubleBuffered = true;
this.Name = "FlightDataView";
this.Size = new System.Drawing.Size(412, 260);
this.Size = new System.Drawing.Size(453, 260);
((System.ComponentModel.ISupportInitialize)(this.FlightDataVmBindingSource)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
@ -684,5 +703,6 @@
private ArducopterConfigurator.Views.controls.CirularIndicatorControl cirularIndicatorControl4;
private ArducopterConfigurator.Views.controls.CirularIndicatorControl cirularIndicatorControl5;
private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.Label label1;
}
}

View File

@ -146,8 +146,8 @@
<data name="button1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBgAA
CwYBZDTpJAAAA11JREFUOE8tkYtTVHUUx+8fU5PCUjjlMDT42JB4qcSjoumxk00FG6USapngOrvuDg+B
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
Cv8BNGKaggAAA11JREFUOE8tkYtTVHUUx+8fU5PCUjjlMDT42JB4qcSjoumxk00FG6USapngOrvuDg+B
SlYmZQKFxWZyyiBRHBChKMCw5e6CzYagsu+9+4gWVxb49NulO/d353vO/X7P+Z7zk87/uICm7nvKdcM0
X/wV0yWZxss2mjplmnptNPdYOdM9TUOPwL3zGDrsFNf+wgHdBB39i0hv1o2g7fRwuHueGP8/q4/hSQKv
syq+ImJD4LggxAU+1D3LwU4Hr33+A9Leoz9RdcVNlcXJCmtJycamVgjjIpNUCyTUIsfGKtre+2gtS5Qd
@ -172,4 +172,7 @@
kDAHyJw4EoECAARSrmTK0SPIjAQxYjW4taBWrF8zhrU4tkBAADs=
</value>
</data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>225, 28</value>
</metadata>
</root>

View File

@ -37,13 +37,12 @@ namespace ArducopterConfigurator
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
this.button3 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.btnConnect = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.label1 = new System.Windows.Forms.Label();
this.btnConnect = new System.Windows.Forms.Button();
this.cmboComPorts = new System.Windows.Forms.ComboBox();
this.button1 = new System.Windows.Forms.Button();
this.lblConnectionStatus = new System.Windows.Forms.Label();
this.button2 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.mainVmBindingSource)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.availablePortsBindingSource)).BeginInit();
this.SuspendLayout();
@ -90,10 +89,36 @@ namespace ArducopterConfigurator
this.toolTip.SetToolTip(this.button4, "Save to Eeprom");
this.button4.UseVisualStyleBackColor = true;
//
// btnConnect
//
this.btnConnect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnConnect.Cursor = System.Windows.Forms.Cursors.Arrow;
this.btnConnect.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.mainVmBindingSource, "ConnectCommand", true));
this.btnConnect.Image = ((System.Drawing.Image)(resources.GetObject("btnConnect.Image")));
this.btnConnect.Location = new System.Drawing.Point(96, 407);
this.btnConnect.Name = "btnConnect";
this.btnConnect.Size = new System.Drawing.Size(26, 26);
this.btnConnect.TabIndex = 6;
this.toolTip.SetToolTip(this.btnConnect, "Connect");
this.btnConnect.UseVisualStyleBackColor = true;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.button1.Cursor = System.Windows.Forms.Cursors.Arrow;
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.mainVmBindingSource, "DisconnectCommand", true));
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
this.button1.Location = new System.Drawing.Point(127, 407);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(26, 26);
this.button1.TabIndex = 7;
this.toolTip.SetToolTip(this.button1, "Disconnect");
this.button1.UseVisualStyleBackColor = true;
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(350, 412);
this.linkLabel1.Location = new System.Drawing.Point(346, 415);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(84, 13);
this.linkLabel1.TabIndex = 13;
@ -104,25 +129,12 @@ namespace ArducopterConfigurator
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(350, 396);
this.label1.Location = new System.Drawing.Point(346, 399);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(89, 13);
this.label1.TabIndex = 14;
this.label1.Text = "Use with caution!";
//
// btnConnect
//
this.btnConnect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnConnect.Cursor = System.Windows.Forms.Cursors.Arrow;
this.btnConnect.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.mainVmBindingSource, "ConnectCommand", true));
this.btnConnect.Image = ((System.Drawing.Image)(resources.GetObject("btnConnect.Image")));
this.btnConnect.Location = new System.Drawing.Point(128, 407);
this.btnConnect.Name = "btnConnect";
this.btnConnect.Size = new System.Drawing.Size(26, 26);
this.btnConnect.TabIndex = 6;
this.toolTip.SetToolTip(this.btnConnect, "Connect");
this.btnConnect.UseVisualStyleBackColor = true;
//
// cmboComPorts
//
this.cmboComPorts.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@ -133,49 +145,23 @@ namespace ArducopterConfigurator
this.cmboComPorts.Name = "cmboComPorts";
this.cmboComPorts.Size = new System.Drawing.Size(79, 21);
this.cmboComPorts.TabIndex = 5;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.button1.Cursor = System.Windows.Forms.Cursors.Arrow;
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.mainVmBindingSource, "DisconnectCommand", true));
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
this.button1.Location = new System.Drawing.Point(159, 407);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(26, 26);
this.button1.TabIndex = 7;
this.toolTip.SetToolTip(this.button1, "Disconnect");
this.button1.UseVisualStyleBackColor = true;
this.cmboComPorts.DropDown += new System.EventHandler(this.cmboComPorts_DropDown);
//
// lblConnectionStatus
//
this.lblConnectionStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblConnectionStatus.AutoSize = true;
this.lblConnectionStatus.Location = new System.Drawing.Point(191, 412);
this.lblConnectionStatus.Location = new System.Drawing.Point(159, 418);
this.lblConnectionStatus.Name = "lblConnectionStatus";
this.lblConnectionStatus.Size = new System.Drawing.Size(112, 13);
this.lblConnectionStatus.TabIndex = 8;
this.lblConnectionStatus.Text = "connection string here";
//
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.button2.Cursor = System.Windows.Forms.Cursors.Arrow;
this.button2.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.mainVmBindingSource, "RefreshPortListCommand", true));
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
this.button2.Location = new System.Drawing.Point(96, 407);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(26, 26);
this.button2.TabIndex = 9;
this.toolTip.SetToolTip(this.button2, "Refresh port list");
this.button2.UseVisualStyleBackColor = true;
//
// mainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(554, 445);
this.Controls.Add(this.button2);
this.Controls.Add(this.label1);
this.Controls.Add(this.lblConnectionStatus);
this.Controls.Add(this.button1);
@ -212,7 +198,6 @@ namespace ArducopterConfigurator
private System.Windows.Forms.ComboBox cmboComPorts;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label lblConnectionStatus;
private System.Windows.Forms.Button button2;
}
}

View File

@ -194,5 +194,10 @@ namespace ArducopterConfigurator
{
System.Diagnostics.Process.Start("http://diydrones.com/profile/AndrewRadford");
}
private void cmboComPorts_DropDown(object sender, EventArgs e)
{
_vm.RefreshPortListCommand.Execute(null);
}
}
}

View File

@ -130,8 +130,8 @@
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALCAAA
CwgBwL2l2gAABLRJREFUWEftVm1Mk1cYJVn8NxPjD7Nl2YeAWWJCliWbYxuwDzIdYDHIpgiKG9IBqYVR
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBgAA
CwYBZDTpJAAABLRJREFUWEftVm1Mk1cYJVn8NxPjD7Nl2YeAWWJCliWbYxuwDzIdYDHIpgiKG9IBqYVR
UEuFgu8AKZ+1CGg7ZUBhDtdYMykMaPmmxSJfwoAhTuwYCBuEIIgMPOu9TnRY2rVz4Y8/Tpomvfec8zzn
eXrtANitJlaVnBh/KsDqCmxVeGCjzB52Yrt/4GXZRrxT7GasqnWZslqAk9wJv6EHbYvV0C6qULNwAao/
z6FhsQwvFjn8/wLWSdei854GknkBUuaiIZzhgjfNhnpRCbu8Z1DT3GqVCLMVICVdI1kDQkqwVvos/Wxd
@ -208,25 +208,6 @@
BhLrRLnuOY77c3SdVF9/1Z6Mx+tteFq4VGW8PAcvTtYgaDXBp9fTuDPvEIgrkGZH9HQtHrG538mW8JCF
9IMnziwMOwvRwZNDcQVeUcD48Wo8WGtHfxrFBRZWyMbCyhJi9CyjaKfE67ZYEuIKWnje5beKLDAOSkgs
IEcrx3nZquyh7NsISVnw5bFgit2/J/uPz/w7PYg4GfFdEjIAAAAASUVORK5CYII=
</value>
</data>
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuAAA
DrgBakH1WwAAAtVJREFUOE9jYKAaiN/PweB3RIohcL8MGIPYIDFigVbd+cTIeXfuxS+5+yQWiCPn3X4o
X3Y2EaRfMOOojkbN2XKprCMGOM2TyDoakrfm3tcZ59/+nw7EnQef/dGqPJnKELhTLHzGtcNzT77+X7Hh
wQXdsuOeDAz1TKgGWazktG87M6dx95P/vcde/u8/8ep/4Zo772Sz9tsw+K8X8Oo9N7Nr18PP666+/1+z
8d5VsDgykEvZ4ZO/6taHroPP/sfOvHSvZM3tL7EzLt5hcFsuC1ZnPJNLJWtvYenqGx/mnnr1P3jCme0M
9vMFoGaksTrVHZxZv/3h/9T5l96IRW/wMyvZU2ZVtnsKg0UvJ8Kiejbjwp2tHTvv/61Ye/OjfPJGD4ic
UreYf8ehU9Wb7v33btq/jUG9kxdoIyuDy0x+9AAT8J6rnzD99KvaDXf+qyStLofIq9TLWJbtuBUw5cJ/
3fQ10xkYQplxhrRVv7pV1e7ngVPO/5eNWNQIdUGxmHrKmhN61Uf+q8QtWc7AEI8a9xa9Qjy2XcFAi/jE
PCdH6RTt/q5Tuve3iNfUZJhFzPKBMybole7/r5G8+j6nfpUZsguEHLvcjNJXPlPwnzZdKXL+CfWSg/81
U1c/5bZo0oWrEzCtttNKWvFKK3/3fznfyQe5VHINYV6RcO6q1crd+V8hdfMfhfTt/9Syd/yX8+oHetWY
FckiY1YJh+Y6zeS137SydvzXjZ53R8y0KpCBwZVbJWDqVrHEHf/ZInf8F07Y8V/Rf9otVtUsjBTJyMBv
LyBmXtqpHTHvk27IlGt8KuFuDCK2RhrB0x4rJW3+LxmzARjym/7rBE99wqkQY47sTUYghx2IxRgY+I04
xW3yWHnUUoB8LwYm7ghuOc+pvCoRy3lUIxfzqcUsEFSPamIV1NOB6gHpBQNQ2gaFPi8QCwKxKBBLArEU
EEtA+cJAWgCIuaGawfkBAATBFuWVyulDAAAAAElFTkSuQmCC
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">