CP-12154: Offer Call Home enrollment when connecting to Call-Home capable hosts

- Check call home enrollment status on connecting to a pool: If status is unknown it means that the pool is not enrolled (enabled) and has never been (disabled). If that's the case, then show the Health Check Overview dialog with the pool selected
- "Enroll now" on Health Check Overview will try enroll the selected pool into call home using existing token authentication. If this is not possible, then a dialog will be presented for the user to perform the initial authentication.
This commit is contained in:
Mihaela Stoica 2015-06-08 16:46:16 +01:00
parent 2dd4c52350
commit 8ce3dc9952
20 changed files with 7805 additions and 710 deletions

View File

@ -1,4 +1,5 @@
using System.Linq;
using XenAdmin.Dialogs;
using XenAdmin.Dialogs.CallHome;
namespace XenAdmin.Commands
@ -20,7 +21,8 @@ namespace XenAdmin.Commands
protected override void ExecuteCore(SelectedItemCollection selection)
{
MainWindowCommandInterface.ShowForm(typeof(CallHomeOverviewDialog));
if (Program.MainWindow.HealthCheckOverviewLauncher != null)
Program.MainWindow.HealthCheckOverviewLauncher.LaunchIfRequired(false, selection);
}
protected override bool CanExecuteCore(SelectedItemCollection selection)

View File

@ -0,0 +1,215 @@
namespace XenAdmin.Controls
{
partial class CallHomeAuthenticationPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CallHomeAuthenticationPanel));
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.usernameLabel = new System.Windows.Forms.Label();
this.authenticationStatusTable = new System.Windows.Forms.TableLayoutPanel();
this.authenticateButton = new System.Windows.Forms.Button();
this.statusPictureBox = new System.Windows.Forms.PictureBox();
this.passwordLabel = new System.Windows.Forms.Label();
this.passwordTextBox = new System.Windows.Forms.TextBox();
this.usernameTextBox = new System.Windows.Forms.TextBox();
this.spinnerIcon = new XenAdmin.Controls.SpinnerIcon();
this.statusLabel = new XenAdmin.Controls.Common.AutoHeightLabel();
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tableLayoutPanel1.SuspendLayout();
this.authenticationStatusTable.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.statusPictureBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.spinnerIcon)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.usernameLabel, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.authenticationStatusTable, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.passwordLabel, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.passwordTextBox, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.usernameTextBox, 1, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// usernameLabel
//
resources.ApplyResources(this.usernameLabel, "usernameLabel");
this.usernameLabel.Name = "usernameLabel";
//
// authenticationStatusTable
//
resources.ApplyResources(this.authenticationStatusTable, "authenticationStatusTable");
this.tableLayoutPanel1.SetColumnSpan(this.authenticationStatusTable, 2);
this.authenticationStatusTable.Controls.Add(this.spinnerIcon, 0, 0);
this.authenticationStatusTable.Controls.Add(this.authenticateButton, 0, 0);
this.authenticationStatusTable.Controls.Add(this.statusPictureBox, 2, 0);
this.authenticationStatusTable.Controls.Add(this.statusLabel, 3, 0);
this.authenticationStatusTable.Name = "authenticationStatusTable";
//
// authenticateButton
//
resources.ApplyResources(this.authenticateButton, "authenticateButton");
this.authenticateButton.Name = "authenticateButton";
this.authenticateButton.UseVisualStyleBackColor = true;
this.authenticateButton.Click += new System.EventHandler(this.authenticateButton_Click);
//
// statusPictureBox
//
resources.ApplyResources(this.statusPictureBox, "statusPictureBox");
this.statusPictureBox.Image = global::XenAdmin.Properties.Resources._000_error_h32bit_16;
this.statusPictureBox.Name = "statusPictureBox";
this.statusPictureBox.TabStop = false;
//
// passwordLabel
//
resources.ApplyResources(this.passwordLabel, "passwordLabel");
this.passwordLabel.Name = "passwordLabel";
//
// passwordTextBox
//
resources.ApplyResources(this.passwordTextBox, "passwordTextBox");
this.passwordTextBox.Name = "passwordTextBox";
this.passwordTextBox.UseSystemPasswordChar = true;
this.passwordTextBox.TextChanged += new System.EventHandler(this.credentials_TextChanged);
//
// usernameTextBox
//
resources.ApplyResources(this.usernameTextBox, "usernameTextBox");
this.usernameTextBox.Name = "usernameTextBox";
this.usernameTextBox.TextChanged += new System.EventHandler(this.credentials_TextChanged);
//
// spinnerIcon
//
resources.ApplyResources(this.spinnerIcon, "spinnerIcon");
this.spinnerIcon.Name = "spinnerIcon";
this.spinnerIcon.SucceededImage = global::XenAdmin.Properties.Resources._000_Tick_h32bit_16;
this.spinnerIcon.TabStop = false;
//
// statusLabel
//
resources.ApplyResources(this.statusLabel, "statusLabel");
this.statusLabel.ForeColor = System.Drawing.Color.Red;
this.statusLabel.Name = "statusLabel";
//
// dataGridViewTextBoxColumn1
//
resources.ApplyResources(this.dataGridViewTextBoxColumn1, "dataGridViewTextBoxColumn1");
this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
this.dataGridViewTextBoxColumn1.ReadOnly = true;
//
// dataGridViewTextBoxColumn2
//
resources.ApplyResources(this.dataGridViewTextBoxColumn2, "dataGridViewTextBoxColumn2");
this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";
this.dataGridViewTextBoxColumn2.ReadOnly = true;
//
// dataGridViewTextBoxColumn3
//
resources.ApplyResources(this.dataGridViewTextBoxColumn3, "dataGridViewTextBoxColumn3");
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
this.dataGridViewTextBoxColumn3.ReadOnly = true;
//
// dataGridViewTextBoxColumn4
//
resources.ApplyResources(this.dataGridViewTextBoxColumn4, "dataGridViewTextBoxColumn4");
this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
this.dataGridViewTextBoxColumn4.ReadOnly = true;
//
// dataGridViewTextBoxColumn5
//
resources.ApplyResources(this.dataGridViewTextBoxColumn5, "dataGridViewTextBoxColumn5");
this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5";
this.dataGridViewTextBoxColumn5.ReadOnly = true;
//
// dataGridViewTextBoxColumn6
//
resources.ApplyResources(this.dataGridViewTextBoxColumn6, "dataGridViewTextBoxColumn6");
this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6";
this.dataGridViewTextBoxColumn6.ReadOnly = true;
//
// dataGridViewTextBoxColumn7
//
resources.ApplyResources(this.dataGridViewTextBoxColumn7, "dataGridViewTextBoxColumn7");
this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7";
this.dataGridViewTextBoxColumn7.ReadOnly = true;
//
// dataGridViewTextBoxColumn8
//
this.dataGridViewTextBoxColumn8.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
resources.ApplyResources(this.dataGridViewTextBoxColumn8, "dataGridViewTextBoxColumn8");
this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8";
this.dataGridViewTextBoxColumn8.ReadOnly = true;
//
// CallHomeAuthenticationPanel
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.SystemColors.Control;
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "CallHomeAuthenticationPanel";
this.EnabledChanged += new System.EventHandler(this.CallHomeAuthenticationPanel_EnabledChanged);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.authenticationStatusTable.ResumeLayout(false);
this.authenticationStatusTable.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.statusPictureBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.spinnerIcon)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8;
private System.Windows.Forms.Label usernameLabel;
private System.Windows.Forms.TableLayoutPanel authenticationStatusTable;
private SpinnerIcon spinnerIcon;
private System.Windows.Forms.Button authenticateButton;
private System.Windows.Forms.PictureBox statusPictureBox;
private Common.AutoHeightLabel statusLabel;
private System.Windows.Forms.Label passwordLabel;
private System.Windows.Forms.TextBox passwordTextBox;
private System.Windows.Forms.TextBox usernameTextBox;
}
}

View File

@ -0,0 +1,126 @@
/* Copyright (c) Citrix Systems Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.Windows.Forms;
using XenAPI;
using XenAdmin.Core;
using XenAdmin.Actions;
namespace XenAdmin.Controls
{
public partial class CallHomeAuthenticationPanel : UserControl
{
public event EventHandler AuthenticationChanged;
public Pool Pool { get; set; }
private bool authenticated = false;
internal bool Authenticated
{
get
{
return authenticated;
}
set
{
if (authenticated != value)
{
authenticated = value;
if (AuthenticationChanged != null)
AuthenticationChanged(this, null);
}
}
}
public CallHomeAuthenticationPanel()
{
InitializeComponent();
authenticateButton.Enabled = false;
}
private void authenticateButton_Click(object sender, EventArgs e)
{
HideAuthenticationStatusControls();
spinnerIcon.StartSpinning();
var action = new CallHomeAuthenticationAction(Pool, usernameTextBox.Text.Trim(), passwordTextBox.Text.Trim(),
Registry.CallHomeIdentityTokenDomainName, Registry.CallHomeUploadGrantTokenDomainName, Registry.CallHomeUploadTokenDomainName, false);
action.Completed += CallHomeAuthenticationAction_Completed;
authenticateButton.Enabled = false;
action.RunAsync();
}
private void CallHomeAuthenticationAction_Completed(ActionBase action)
{
Program.Invoke(this, delegate
{
if (action.Succeeded)
{
spinnerIcon.DisplaySucceededImage();
Authenticated = true;
}
else
{
spinnerIcon.Visible = false;
statusPictureBox.Visible = statusLabel.Visible = true;
statusLabel.Text = action.Exception != null
? action.Exception.Message
: Messages.ERROR_UNKNOWN;
Authenticated = false;
}
authenticateButton.Enabled = true;
});
}
private void HideAuthenticationStatusControls()
{
statusPictureBox.Visible = statusLabel.Visible = false;
}
private void credentials_TextChanged(object sender, EventArgs e)
{
authenticateButton.Enabled = !string.IsNullOrEmpty(usernameTextBox.Text.Trim()) &&
!string.IsNullOrEmpty(passwordTextBox.Text.Trim());
}
private void CallHomeAuthenticationPanel_EnabledChanged(object sender, EventArgs e)
{
if (!Enabled)
HideAuthenticationStatusControls();
}
}
}

View File

@ -0,0 +1,828 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cbxAutomatic.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cbxAutomatic.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="cbxAutomatic.CheckAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="panelLACPWarning.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 0</value>
</data>
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="label1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 2, 0, 0</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>298, 19</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>LACP はスイッチ ポート上でも設定されている必要があります</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>panelLACPWarning</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Left</value>
</data>
<data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 18</value>
</data>
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
<value>pictureBox1</value>
</data>
<data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>panelLACPWarning</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="panelLACPWarning.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="panelLACPWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 239</value>
</data>
<data name="panelLACPWarning.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 0, 0, 2</value>
</data>
<data name="panelLACPWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>596, 18</value>
</data>
<data name="panelLACPWarning.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="panelLACPWarning.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;panelLACPWarning.Name" xml:space="preserve">
<value>panelLACPWarning</value>
</data>
<data name="&gt;&gt;panelLACPWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panelLACPWarning.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;panelLACPWarning.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="numericUpDownMTU.Location" type="System.Drawing.Point, System.Drawing">
<value>54, 262</value>
</data>
<data name="numericUpDownMTU.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 19</value>
</data>
<data name="numericUpDownMTU.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.Name" xml:space="preserve">
<value>numericUpDownMTU</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="dataGridView1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<metadata name="ColumnCheckBox.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnCheckBox.HeaderText" xml:space="preserve">
<value />
</data>
<data name="ColumnCheckBox.Width" type="System.Int32, mscorlib">
<value>5</value>
</data>
<metadata name="ColumnNic.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnNic.HeaderText" xml:space="preserve">
<value>NIC</value>
</data>
<data name="ColumnNic.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<metadata name="ColumnMac.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnMac.HeaderText" xml:space="preserve">
<value>MAC</value>
</data>
<data name="ColumnMac.Width" type="System.Int32, mscorlib">
<value>55</value>
</data>
<metadata name="ColumnLinkStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnLinkStatus.HeaderText" xml:space="preserve">
<value>接続状態</value>
</data>
<data name="ColumnLinkStatus.Width" type="System.Int32, mscorlib">
<value>85</value>
</data>
<metadata name="ColumnSpeed.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnSpeed.HeaderText" xml:space="preserve">
<value>速度</value>
</data>
<data name="ColumnSpeed.Width" type="System.Int32, mscorlib">
<value>63</value>
</data>
<metadata name="ColumnDuplex.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnDuplex.HeaderText" xml:space="preserve">
<value>二重</value>
</data>
<data name="ColumnDuplex.Width" type="System.Int32, mscorlib">
<value>65</value>
</data>
<metadata name="ColumnVendor.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnVendor.HeaderText" xml:space="preserve">
<value>ベンダ</value>
</data>
<data name="ColumnVendor.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<metadata name="ColumnDevice.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnDevice.HeaderText" xml:space="preserve">
<value>デバイス</value>
</data>
<data name="ColumnDevice.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<metadata name="ColumnPci.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnPci.HeaderText" xml:space="preserve">
<value>PCI バスのパス</value>
</data>
<data name="dataGridView1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="dataGridView1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="dataGridView1.Size" type="System.Drawing.Size, System.Drawing">
<value>602, 116</value>
</data>
<data name="dataGridView1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;dataGridView1.Name" xml:space="preserve">
<value>dataGridView1</value>
</data>
<data name="&gt;&gt;dataGridView1.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridView1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;dataGridView1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="labelMTU.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelMTU.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="labelMTU.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelMTU.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 265</value>
</data>
<data name="labelMTU.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 6, 3, 0</value>
</data>
<data name="labelMTU.Size" type="System.Drawing.Size, System.Drawing">
<value>48, 19</value>
</data>
<data name="labelMTU.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="labelMTU.Text" xml:space="preserve">
<value>MTU(&amp;M):</value>
</data>
<data name="&gt;&gt;labelMTU.Name" xml:space="preserve">
<value>labelMTU</value>
</data>
<data name="&gt;&gt;labelMTU.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelMTU.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;labelMTU.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="groupBoxBondMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="groupBoxBondMode.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelBondMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelBondMode.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelBondMode.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="radioButtonLacpTcpudpPorts.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonLacpTcpudpPorts.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonLacpTcpudpPorts.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 51</value>
</data>
<data name="radioButtonLacpTcpudpPorts.Size" type="System.Drawing.Size, System.Drawing">
<value>305, 18</value>
</data>
<data name="radioButtonLacpTcpudpPorts.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="radioButtonLacpTcpudpPorts.Text" xml:space="preserve">
<value>LACP - 送信元/送信先のポートと IP による負荷分散(&amp;C)</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.Name" xml:space="preserve">
<value>radioButtonLacpTcpudpPorts</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="radioButtonLacpSrcMac.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonLacpSrcMac.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonLacpSrcMac.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 75</value>
</data>
<data name="radioButtonLacpSrcMac.Size" type="System.Drawing.Size, System.Drawing">
<value>276, 18</value>
</data>
<data name="radioButtonLacpSrcMac.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="radioButtonLacpSrcMac.Text" xml:space="preserve">
<value>LACP - 送信元の MAC アドレスによる負荷分散(&amp;L)</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.Name" xml:space="preserve">
<value>radioButtonLacpSrcMac</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="radioButtonBalanceSlb.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonBalanceSlb.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonBalanceSlb.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="radioButtonBalanceSlb.Size" type="System.Drawing.Size, System.Drawing">
<value>131, 18</value>
</data>
<data name="radioButtonBalanceSlb.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="radioButtonBalanceSlb.Text" xml:space="preserve">
<value>アクティブ/アクティブ(&amp;A)</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.Name" xml:space="preserve">
<value>radioButtonBalanceSlb</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="radioButtonActiveBackup.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonActiveBackup.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonActiveBackup.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 27</value>
</data>
<data name="radioButtonActiveBackup.Size" type="System.Drawing.Size, System.Drawing">
<value>124, 18</value>
</data>
<data name="radioButtonActiveBackup.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="radioButtonActiveBackup.Text" xml:space="preserve">
<value>アクティブ/パッシブ(&amp;S)</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.Name" xml:space="preserve">
<value>radioButtonActiveBackup</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="tableLayoutPanelBondMode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelBondMode.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 15</value>
</data>
<data name="tableLayoutPanelBondMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanelBondMode.RowCount" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="tableLayoutPanelBondMode.Size" type="System.Drawing.Size, System.Drawing">
<value>311, 96</value>
</data>
<data name="tableLayoutPanelBondMode.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Name" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Parent" xml:space="preserve">
<value>groupBoxBondMode</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelBondMode.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioButtonLacpTcpudpPorts" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonLacpSrcMac" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonBalanceSlb" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonActiveBackup" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="groupBoxBondMode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="groupBoxBondMode.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 122</value>
</data>
<data name="groupBoxBondMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 6, 3, 3</value>
</data>
<data name="groupBoxBondMode.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 10, 3</value>
</data>
<data name="groupBoxBondMode.Size" type="System.Drawing.Size, System.Drawing">
<value>324, 114</value>
</data>
<data name="groupBoxBondMode.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="groupBoxBondMode.Text" xml:space="preserve">
<value>ボンディング モード</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.Name" xml:space="preserve">
<value>groupBoxBondMode</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>602, 311</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="panelLACPWarning" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /&gt;&lt;Control Name="numericUpDownMTU" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="dataGridView1" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /&gt;&lt;Control Name="cbxAutomatic" Row="4" RowSpan="1" Column="0" ColumnSpan="3" /&gt;&lt;Control Name="labelMTU" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="groupBoxBondMode" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="Percent,100,AutoSize,0,Absolute,20,AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="cbxAutomatic.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cbxAutomatic.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 293</value>
</data>
<data name="cbxAutomatic.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 9, 0, 0</value>
</data>
<data name="cbxAutomatic.Size" type="System.Drawing.Size, System.Drawing">
<value>271, 18</value>
</data>
<data name="cbxAutomatic.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="cbxAutomatic.Text" xml:space="preserve">
<value>新規 VM にこのネットワークを自動的に追加する(&amp;U)</value>
</data>
<data name="cbxAutomatic.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="&gt;&gt;cbxAutomatic.Name" xml:space="preserve">
<value>cbxAutomatic</value>
</data>
<data name="&gt;&gt;cbxAutomatic.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbxAutomatic.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;cbxAutomatic.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="dataGridViewTextBoxColumn1.HeaderText" xml:space="preserve">
<value>NIC</value>
</data>
<data name="dataGridViewTextBoxColumn1.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<data name="dataGridViewTextBoxColumn2.HeaderText" xml:space="preserve">
<value>MAC</value>
</data>
<data name="dataGridViewTextBoxColumn2.Width" type="System.Int32, mscorlib">
<value>55</value>
</data>
<data name="dataGridViewTextBoxColumn3.HeaderText" xml:space="preserve">
<value>接続状態</value>
</data>
<data name="dataGridViewTextBoxColumn3.Width" type="System.Int32, mscorlib">
<value>85</value>
</data>
<data name="dataGridViewTextBoxColumn4.HeaderText" xml:space="preserve">
<value>速度</value>
</data>
<data name="dataGridViewTextBoxColumn4.Width" type="System.Int32, mscorlib">
<value>63</value>
</data>
<data name="dataGridViewTextBoxColumn5.HeaderText" xml:space="preserve">
<value>二重</value>
</data>
<data name="dataGridViewTextBoxColumn5.Width" type="System.Int32, mscorlib">
<value>65</value>
</data>
<data name="dataGridViewTextBoxColumn6.HeaderText" xml:space="preserve">
<value>ベンダ</value>
</data>
<data name="dataGridViewTextBoxColumn6.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="dataGridViewTextBoxColumn7.HeaderText" xml:space="preserve">
<value>デバイス</value>
</data>
<data name="dataGridViewTextBoxColumn7.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="dataGridViewTextBoxColumn8.HeaderText" xml:space="preserve">
<value>PCI バスのパス</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>602, 311</value>
</data>
<data name="&gt;&gt;ColumnCheckBox.Name" xml:space="preserve">
<value>ColumnCheckBox</value>
</data>
<data name="&gt;&gt;ColumnCheckBox.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewCheckBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnNic.Name" xml:space="preserve">
<value>ColumnNic</value>
</data>
<data name="&gt;&gt;ColumnNic.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnMac.Name" xml:space="preserve">
<value>ColumnMac</value>
</data>
<data name="&gt;&gt;ColumnMac.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnLinkStatus.Name" xml:space="preserve">
<value>ColumnLinkStatus</value>
</data>
<data name="&gt;&gt;ColumnLinkStatus.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnSpeed.Name" xml:space="preserve">
<value>ColumnSpeed</value>
</data>
<data name="&gt;&gt;ColumnSpeed.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnDuplex.Name" xml:space="preserve">
<value>ColumnDuplex</value>
</data>
<data name="&gt;&gt;ColumnDuplex.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnVendor.Name" xml:space="preserve">
<value>ColumnVendor</value>
</data>
<data name="&gt;&gt;ColumnVendor.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnDevice.Name" xml:space="preserve">
<value>ColumnDevice</value>
</data>
<data name="&gt;&gt;ColumnDevice.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnPci.Name" xml:space="preserve">
<value>ColumnPci</value>
</data>
<data name="&gt;&gt;ColumnPci.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn1.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn1</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn1.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn2.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn2</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn2.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn3.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn3</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn3.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn4.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn4</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn4.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn5.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn5</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn5.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn6.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn6</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn6.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn7.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn7</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn7.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn8.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn8</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn8.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>BondDetails</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -0,0 +1,594 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="usernameLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="usernameLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="usernameLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="usernameLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="usernameLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="usernameLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="usernameLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 29</value>
</data>
<data name="usernameLabel.TabIndex" type="System.Int32, mscorlib">
<value>32</value>
</data>
<data name="usernameLabel.Text" xml:space="preserve">
<value>&amp;Username:</value>
</data>
<data name="usernameLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;usernameLabel.Name" xml:space="preserve">
<value>usernameLabel</value>
</data>
<data name="&gt;&gt;usernameLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;usernameLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;usernameLabel.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="authenticationStatusTable.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="authenticationStatusTable.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="authenticationStatusTable.ColumnCount" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="spinnerIcon.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="spinnerIcon.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="spinnerIcon.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="spinnerIcon.Location" type="System.Drawing.Point, System.Drawing">
<value>94, 7</value>
</data>
<data name="spinnerIcon.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 3, 0</value>
</data>
<data name="spinnerIcon.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="spinnerIcon.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>Zoom</value>
</data>
<data name="spinnerIcon.TabIndex" type="System.Int32, mscorlib">
<value>117</value>
</data>
<data name="spinnerIcon.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;spinnerIcon.Name" xml:space="preserve">
<value>spinnerIcon</value>
</data>
<data name="&gt;&gt;spinnerIcon.Type" xml:space="preserve">
<value>XenAdmin.Controls.SpinnerIcon, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;spinnerIcon.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;spinnerIcon.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="authenticateButton.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="authenticateButton.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="authenticateButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="authenticateButton.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="authenticateButton.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 25</value>
</data>
<data name="authenticateButton.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="authenticateButton.Text" xml:space="preserve">
<value>&amp;Authenticate</value>
</data>
<data name="&gt;&gt;authenticateButton.Name" xml:space="preserve">
<value>authenticateButton</value>
</data>
<data name="&gt;&gt;authenticateButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;authenticateButton.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;authenticateButton.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="statusPictureBox.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="statusPictureBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="statusPictureBox.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="statusPictureBox.Location" type="System.Drawing.Point, System.Drawing">
<value>113, 7</value>
</data>
<data name="statusPictureBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="statusPictureBox.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="statusPictureBox.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="statusPictureBox.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="statusPictureBox.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;statusPictureBox.Name" xml:space="preserve">
<value>statusPictureBox</value>
</data>
<data name="&gt;&gt;statusPictureBox.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;statusPictureBox.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;statusPictureBox.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="statusLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="statusLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="statusLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="statusLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>132, 0</value>
</data>
<data name="statusLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>366, 31</value>
</data>
<data name="statusLabel.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="statusLabel.Text" xml:space="preserve">
<value>Error</value>
</data>
<data name="statusLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="statusLabel.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;statusLabel.Name" xml:space="preserve">
<value>statusLabel</value>
</data>
<data name="&gt;&gt;statusLabel.Type" xml:space="preserve">
<value>XenAdmin.Controls.Common.AutoHeightLabel, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;statusLabel.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;statusLabel.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="authenticationStatusTable.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="authenticationStatusTable.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="authenticationStatusTable.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 61</value>
</data>
<data name="authenticationStatusTable.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="authenticationStatusTable.Size" type="System.Drawing.Size, System.Drawing">
<value>501, 31</value>
</data>
<data name="authenticationStatusTable.TabIndex" type="System.Int32, mscorlib">
<value>31</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.Name" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="authenticationStatusTable.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="spinnerIcon" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="authenticateButton" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="statusPictureBox" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="statusLabel" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="passwordLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="passwordLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="passwordLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="passwordLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="passwordLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 29</value>
</data>
<data name="passwordLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="passwordLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 29</value>
</data>
<data name="passwordLabel.TabIndex" type="System.Int32, mscorlib">
<value>33</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>&amp;Password:</value>
</data>
<data name="passwordLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;passwordLabel.Name" xml:space="preserve">
<value>passwordLabel</value>
</data>
<data name="&gt;&gt;passwordLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;passwordLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;passwordLabel.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="passwordTextBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="passwordTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>66, 32</value>
</data>
<data name="passwordTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 23</value>
</data>
<data name="passwordTextBox.TabIndex" type="System.Int32, mscorlib">
<value>35</value>
</data>
<data name="&gt;&gt;passwordTextBox.Name" xml:space="preserve">
<value>passwordTextBox</value>
</data>
<data name="&gt;&gt;passwordTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;passwordTextBox.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;passwordTextBox.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="usernameTextBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="usernameTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>66, 3</value>
</data>
<data name="usernameTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 23</value>
</data>
<data name="usernameTextBox.TabIndex" type="System.Int32, mscorlib">
<value>34</value>
</data>
<data name="&gt;&gt;usernameTextBox.Name" xml:space="preserve">
<value>usernameTextBox</value>
</data>
<data name="&gt;&gt;usernameTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;usernameTextBox.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;usernameTextBox.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>507, 95</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="usernameLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="authenticationStatusTable" Row="2" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="passwordLabel" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="passwordTextBox" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="usernameTextBox" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,100,AutoSize,0,AutoSize,0,Absolute,20,Absolute,20,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="dataGridViewTextBoxColumn1.HeaderText" xml:space="preserve">
<value>NIC</value>
</data>
<data name="dataGridViewTextBoxColumn1.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<data name="dataGridViewTextBoxColumn2.HeaderText" xml:space="preserve">
<value>MAC</value>
</data>
<data name="dataGridViewTextBoxColumn2.Width" type="System.Int32, mscorlib">
<value>55</value>
</data>
<data name="dataGridViewTextBoxColumn3.HeaderText" xml:space="preserve">
<value>Link Status</value>
</data>
<data name="dataGridViewTextBoxColumn3.Width" type="System.Int32, mscorlib">
<value>85</value>
</data>
<data name="dataGridViewTextBoxColumn4.HeaderText" xml:space="preserve">
<value>Speed</value>
</data>
<data name="dataGridViewTextBoxColumn4.Width" type="System.Int32, mscorlib">
<value>63</value>
</data>
<data name="dataGridViewTextBoxColumn5.HeaderText" xml:space="preserve">
<value>Duplex</value>
</data>
<data name="dataGridViewTextBoxColumn5.Width" type="System.Int32, mscorlib">
<value>65</value>
</data>
<data name="dataGridViewTextBoxColumn6.HeaderText" xml:space="preserve">
<value>Vendor</value>
</data>
<data name="dataGridViewTextBoxColumn6.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="dataGridViewTextBoxColumn7.HeaderText" xml:space="preserve">
<value>Device</value>
</data>
<data name="dataGridViewTextBoxColumn7.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="dataGridViewTextBoxColumn8.HeaderText" xml:space="preserve">
<value>PCI Bus Path</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>507, 95</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn1.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn1</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn1.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn2.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn2</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn2.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn3.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn3</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn3.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn4.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn4</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn4.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn5.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn5</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn5.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn6.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn6</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn6.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn7.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn7</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn7.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn8.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn8</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn8.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CallHomeAuthenticationPanel</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -0,0 +1,828 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cbxAutomatic.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="cbxAutomatic.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="cbxAutomatic.CheckAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="panelLACPWarning.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 0</value>
</data>
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="label1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 2, 0, 0</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>269, 19</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>此外,还必须在交换机端口上配置 LACP</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>panelLACPWarning</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Left</value>
</data>
<data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 18</value>
</data>
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
<value>pictureBox1</value>
</data>
<data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>panelLACPWarning</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="panelLACPWarning.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="panelLACPWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 239</value>
</data>
<data name="panelLACPWarning.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 0, 0, 2</value>
</data>
<data name="panelLACPWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>596, 18</value>
</data>
<data name="panelLACPWarning.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="panelLACPWarning.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;panelLACPWarning.Name" xml:space="preserve">
<value>panelLACPWarning</value>
</data>
<data name="&gt;&gt;panelLACPWarning.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panelLACPWarning.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;panelLACPWarning.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="numericUpDownMTU.Location" type="System.Drawing.Point, System.Drawing">
<value>37, 262</value>
</data>
<data name="numericUpDownMTU.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 19</value>
</data>
<data name="numericUpDownMTU.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.Name" xml:space="preserve">
<value>numericUpDownMTU</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;numericUpDownMTU.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="dataGridView1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<metadata name="ColumnCheckBox.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnCheckBox.HeaderText" xml:space="preserve">
<value />
</data>
<data name="ColumnCheckBox.Width" type="System.Int32, mscorlib">
<value>5</value>
</data>
<metadata name="ColumnNic.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnNic.HeaderText" xml:space="preserve">
<value>NIC</value>
</data>
<data name="ColumnNic.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<metadata name="ColumnMac.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnMac.HeaderText" xml:space="preserve">
<value>MAC</value>
</data>
<data name="ColumnMac.Width" type="System.Int32, mscorlib">
<value>55</value>
</data>
<metadata name="ColumnLinkStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnLinkStatus.HeaderText" xml:space="preserve">
<value>链接状态</value>
</data>
<data name="ColumnLinkStatus.Width" type="System.Int32, mscorlib">
<value>85</value>
</data>
<metadata name="ColumnSpeed.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnSpeed.HeaderText" xml:space="preserve">
<value>速度</value>
</data>
<data name="ColumnSpeed.Width" type="System.Int32, mscorlib">
<value>63</value>
</data>
<metadata name="ColumnDuplex.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnDuplex.HeaderText" xml:space="preserve">
<value>双面打印</value>
</data>
<data name="ColumnDuplex.Width" type="System.Int32, mscorlib">
<value>65</value>
</data>
<metadata name="ColumnVendor.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnVendor.HeaderText" xml:space="preserve">
<value>供应商</value>
</data>
<data name="ColumnVendor.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<metadata name="ColumnDevice.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnDevice.HeaderText" xml:space="preserve">
<value>设备</value>
</data>
<data name="ColumnDevice.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<metadata name="ColumnPci.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnPci.HeaderText" xml:space="preserve">
<value>PCI 总线路径</value>
</data>
<data name="dataGridView1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="dataGridView1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="dataGridView1.Size" type="System.Drawing.Size, System.Drawing">
<value>602, 116</value>
</data>
<data name="dataGridView1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;dataGridView1.Name" xml:space="preserve">
<value>dataGridView1</value>
</data>
<data name="&gt;&gt;dataGridView1.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridView1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;dataGridView1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="labelMTU.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="labelMTU.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="labelMTU.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="labelMTU.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 265</value>
</data>
<data name="labelMTU.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 6, 3, 0</value>
</data>
<data name="labelMTU.Size" type="System.Drawing.Size, System.Drawing">
<value>31, 19</value>
</data>
<data name="labelMTU.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="labelMTU.Text" xml:space="preserve">
<value>MTU(&amp;M):</value>
</data>
<data name="&gt;&gt;labelMTU.Name" xml:space="preserve">
<value>labelMTU</value>
</data>
<data name="&gt;&gt;labelMTU.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;labelMTU.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;labelMTU.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="groupBoxBondMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="groupBoxBondMode.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelBondMode.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanelBondMode.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanelBondMode.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="radioButtonLacpTcpudpPorts.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonLacpTcpudpPorts.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonLacpTcpudpPorts.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 55</value>
</data>
<data name="radioButtonLacpTcpudpPorts.Size" type="System.Drawing.Size, System.Drawing">
<value>462, 18</value>
</data>
<data name="radioButtonLacpTcpudpPorts.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="radioButtonLacpTcpudpPorts.Text" xml:space="preserve">
<value>LACP 与基于源和目标的 IP 和端口的负载平衡功能绑定(&amp;C)</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.Name" xml:space="preserve">
<value>radioButtonLacpTcpudpPorts</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonLacpTcpudpPorts.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="radioButtonLacpSrcMac.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonLacpSrcMac.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonLacpSrcMac.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 79</value>
</data>
<data name="radioButtonLacpSrcMac.Size" type="System.Drawing.Size, System.Drawing">
<value>344, 18</value>
</data>
<data name="radioButtonLacpSrcMac.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="radioButtonLacpSrcMac.Text" xml:space="preserve">
<value>LACP 与基于源 MAC 地址的负载平衡功能绑定(&amp;L)</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.Name" xml:space="preserve">
<value>radioButtonLacpSrcMac</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonLacpSrcMac.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="radioButtonBalanceSlb.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonBalanceSlb.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonBalanceSlb.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="radioButtonBalanceSlb.Size" type="System.Drawing.Size, System.Drawing">
<value>93, 18</value>
</data>
<data name="radioButtonBalanceSlb.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="radioButtonBalanceSlb.Text" xml:space="preserve">
<value>主动-主动(&amp;A)</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.Name" xml:space="preserve">
<value>radioButtonBalanceSlb</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonBalanceSlb.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="radioButtonActiveBackup.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radioButtonActiveBackup.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="radioButtonActiveBackup.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 27</value>
</data>
<data name="radioButtonActiveBackup.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 18</value>
</data>
<data name="radioButtonActiveBackup.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="radioButtonActiveBackup.Text" xml:space="preserve">
<value>主动-被动(&amp;S)</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.Name" xml:space="preserve">
<value>radioButtonActiveBackup</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.Parent" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;radioButtonActiveBackup.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="tableLayoutPanelBondMode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelBondMode.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 15</value>
</data>
<data name="tableLayoutPanelBondMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="tableLayoutPanelBondMode.RowCount" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="tableLayoutPanelBondMode.Size" type="System.Drawing.Size, System.Drawing">
<value>406, 96</value>
</data>
<data name="tableLayoutPanelBondMode.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Name" xml:space="preserve">
<value>tableLayoutPanelBondMode</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.Parent" xml:space="preserve">
<value>groupBoxBondMode</value>
</data>
<data name="&gt;&gt;tableLayoutPanelBondMode.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanelBondMode.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioButtonLacpTcpudpPorts" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonLacpSrcMac" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonBalanceSlb" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioButtonActiveBackup" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="groupBoxBondMode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="groupBoxBondMode.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 122</value>
</data>
<data name="groupBoxBondMode.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 6, 3, 3</value>
</data>
<data name="groupBoxBondMode.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 10, 3</value>
</data>
<data name="groupBoxBondMode.Size" type="System.Drawing.Size, System.Drawing">
<value>419, 114</value>
</data>
<data name="groupBoxBondMode.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="groupBoxBondMode.Text" xml:space="preserve">
<value>绑定模式</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.Name" xml:space="preserve">
<value>groupBoxBondMode</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;groupBoxBondMode.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>602, 311</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="panelLACPWarning" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /&gt;&lt;Control Name="numericUpDownMTU" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="dataGridView1" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /&gt;&lt;Control Name="cbxAutomatic" Row="4" RowSpan="1" Column="0" ColumnSpan="3" /&gt;&lt;Control Name="labelMTU" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="groupBoxBondMode" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="Percent,100,AutoSize,0,Absolute,20,AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="cbxAutomatic.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cbxAutomatic.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 293</value>
</data>
<data name="cbxAutomatic.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 9, 0, 0</value>
</data>
<data name="cbxAutomatic.Size" type="System.Drawing.Size, System.Drawing">
<value>200, 18</value>
</data>
<data name="cbxAutomatic.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="cbxAutomatic.Text" xml:space="preserve">
<value>自动将此网络添加到新虚拟机(&amp;U)</value>
</data>
<data name="cbxAutomatic.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopLeft</value>
</data>
<data name="&gt;&gt;cbxAutomatic.Name" xml:space="preserve">
<value>cbxAutomatic</value>
</data>
<data name="&gt;&gt;cbxAutomatic.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbxAutomatic.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;cbxAutomatic.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="dataGridViewTextBoxColumn1.HeaderText" xml:space="preserve">
<value>NIC</value>
</data>
<data name="dataGridViewTextBoxColumn1.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<data name="dataGridViewTextBoxColumn2.HeaderText" xml:space="preserve">
<value>MAC</value>
</data>
<data name="dataGridViewTextBoxColumn2.Width" type="System.Int32, mscorlib">
<value>55</value>
</data>
<data name="dataGridViewTextBoxColumn3.HeaderText" xml:space="preserve">
<value>链接状态</value>
</data>
<data name="dataGridViewTextBoxColumn3.Width" type="System.Int32, mscorlib">
<value>85</value>
</data>
<data name="dataGridViewTextBoxColumn4.HeaderText" xml:space="preserve">
<value>速度</value>
</data>
<data name="dataGridViewTextBoxColumn4.Width" type="System.Int32, mscorlib">
<value>63</value>
</data>
<data name="dataGridViewTextBoxColumn5.HeaderText" xml:space="preserve">
<value>双面打印</value>
</data>
<data name="dataGridViewTextBoxColumn5.Width" type="System.Int32, mscorlib">
<value>65</value>
</data>
<data name="dataGridViewTextBoxColumn6.HeaderText" xml:space="preserve">
<value>供应商</value>
</data>
<data name="dataGridViewTextBoxColumn6.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="dataGridViewTextBoxColumn7.HeaderText" xml:space="preserve">
<value>设备</value>
</data>
<data name="dataGridViewTextBoxColumn7.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="dataGridViewTextBoxColumn8.HeaderText" xml:space="preserve">
<value>PCI 总线路径</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
<value>602, 311</value>
</data>
<data name="&gt;&gt;ColumnCheckBox.Name" xml:space="preserve">
<value>ColumnCheckBox</value>
</data>
<data name="&gt;&gt;ColumnCheckBox.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewCheckBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnNic.Name" xml:space="preserve">
<value>ColumnNic</value>
</data>
<data name="&gt;&gt;ColumnNic.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnMac.Name" xml:space="preserve">
<value>ColumnMac</value>
</data>
<data name="&gt;&gt;ColumnMac.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnLinkStatus.Name" xml:space="preserve">
<value>ColumnLinkStatus</value>
</data>
<data name="&gt;&gt;ColumnLinkStatus.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnSpeed.Name" xml:space="preserve">
<value>ColumnSpeed</value>
</data>
<data name="&gt;&gt;ColumnSpeed.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnDuplex.Name" xml:space="preserve">
<value>ColumnDuplex</value>
</data>
<data name="&gt;&gt;ColumnDuplex.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnVendor.Name" xml:space="preserve">
<value>ColumnVendor</value>
</data>
<data name="&gt;&gt;ColumnVendor.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnDevice.Name" xml:space="preserve">
<value>ColumnDevice</value>
</data>
<data name="&gt;&gt;ColumnDevice.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnPci.Name" xml:space="preserve">
<value>ColumnPci</value>
</data>
<data name="&gt;&gt;ColumnPci.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn1.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn1</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn1.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn2.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn2</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn2.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn3.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn3</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn3.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn4.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn4</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn4.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn5.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn5</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn5.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn6.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn6</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn6.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn7.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn7</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn7.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn8.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumn8</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumn8.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>BondDetails</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@ -0,0 +1,100 @@
/* Copyright (c) Citrix Systems Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using XenAdmin.Actions;
using XenAdmin.Core;
using XenAPI;
namespace XenAdmin.Dialogs.CallHome
{
public partial class CallHomeEnrollNowDialog : XenDialogBase
{
private readonly Pool pool;
private bool authenticated;
private string authenticationToken;
public CallHomeEnrollNowDialog(Pool pool)
{
this.pool = pool;
InitializeComponent();
InitializeControls();
UpdateButtons();
}
private void InitializeControls()
{
authenticated = false;
Text = String.Format(Messages.CALLHOME_ENROLLMENT_TITLE, pool.Name);
authenticationRubricLabel.Text = Messages.CALLHOME_AUTHENTICATION_RUBRIC_NO_TOKEN;
callHomeAuthenticationPanel1.Pool = pool;
}
private void UpdateButtons()
{
okButton.Enabled = authenticated;
okButton.Text = !authenticated
? Messages.OK
: Messages.CALLHOME_ENROLLMENT_CONFIRMATION_BUTTON_LABEL;
}
private void okButton_Click(object sender, EventArgs e)
{
var newCallHomeSettings = pool.CallHomeSettings;
newCallHomeSettings.Status = CallHomeStatus.Enabled;
new SaveCallHomeSettingsAction(pool, newCallHomeSettings, newCallHomeSettings.GetUploadToken(pool.Connection), false).RunAsync();
DialogResult = DialogResult.OK;
Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
private void callHomeAuthenticationPanel1_AuthenticationChanged(object sender, EventArgs e)
{
Program.Invoke(this, delegate
{
if (callHomeAuthenticationPanel1.Authenticated)
{
authenticated = true;
}
UpdateButtons();
});
}
}
}

View File

@ -0,0 +1,119 @@
namespace XenAdmin.Dialogs.CallHome
{
partial class CallHomeEnrollNowDialog
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CallHomeEnrollNowDialog));
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.authenticationRubricLabel = new System.Windows.Forms.Label();
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
this.cancelButton = new System.Windows.Forms.Button();
this.okButton = new System.Windows.Forms.Button();
this.callHomeAuthenticationPanel1 = new XenAdmin.Controls.CallHomeAuthenticationPanel();
this.tableLayoutPanel1.SuspendLayout();
this.flowLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.authenticationRubricLabel, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel2, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.callHomeAuthenticationPanel1, 0, 1);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// authenticationRubricLabel
//
resources.ApplyResources(this.authenticationRubricLabel, "authenticationRubricLabel");
this.authenticationRubricLabel.Name = "authenticationRubricLabel";
//
// flowLayoutPanel2
//
resources.ApplyResources(this.flowLayoutPanel2, "flowLayoutPanel2");
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
//
// flowLayoutPanel1
//
resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1");
this.flowLayoutPanel1.Controls.Add(this.cancelButton);
this.flowLayoutPanel1.Controls.Add(this.okButton);
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
//
// cancelButton
//
resources.ApplyResources(this.cancelButton, "cancelButton");
this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancelButton.Name = "cancelButton";
this.cancelButton.UseVisualStyleBackColor = true;
this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
//
// okButton
//
resources.ApplyResources(this.okButton, "okButton");
this.okButton.Name = "okButton";
this.okButton.UseVisualStyleBackColor = true;
this.okButton.Click += new System.EventHandler(this.okButton_Click);
//
// callHomeAuthenticationPanel1
//
resources.ApplyResources(this.callHomeAuthenticationPanel1, "callHomeAuthenticationPanel1");
this.callHomeAuthenticationPanel1.BackColor = System.Drawing.Color.Transparent;
this.callHomeAuthenticationPanel1.Name = "callHomeAuthenticationPanel1";
this.callHomeAuthenticationPanel1.Pool = null;
this.callHomeAuthenticationPanel1.AuthenticationChanged += new System.EventHandler(this.callHomeAuthenticationPanel1_AuthenticationChanged);
//
// CallHomeEnrollNowDialog
//
this.AcceptButton = this.okButton;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.CancelButton = this.cancelButton;
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "CallHomeEnrollNowDialog";
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.flowLayoutPanel1.ResumeLayout(false);
this.flowLayoutPanel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
private Controls.CallHomeAuthenticationPanel callHomeAuthenticationPanel1;
private System.Windows.Forms.Label authenticationRubricLabel;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
private System.Windows.Forms.Button cancelButton;
private System.Windows.Forms.Button okButton;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,830 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="authenticationRubricLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="authenticationRubricLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="authenticationRubricLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="authenticationRubricLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="authenticationRubricLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 8</value>
</data>
<data name="authenticationRubricLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 4</value>
</data>
<data name="authenticationRubricLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>498, 45</value>
</data>
<data name="authenticationRubricLabel.TabIndex" type="System.Int32, mscorlib">
<value>24</value>
</data>
<data name="authenticationRubricLabel.Text" xml:space="preserve">
<value>Authentication with Citrix upload server is required in order to enable this feature. Please register by providing MyCitrix credentials. These credentials will only be used to obtain a Call Home upload grant token and will not be stored on this machine or on your server.</value>
</data>
<data name="authenticationRubricLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;authenticationRubricLabel.Name" xml:space="preserve">
<value>authenticationRubricLabel</value>
</data>
<data name="&gt;&gt;authenticationRubricLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;authenticationRubricLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;authenticationRubricLabel.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="flowLayoutPanel2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="flowLayoutPanel2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="flowLayoutPanel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="flowLayoutPanel2.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="flowLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 158</value>
</data>
<data name="flowLayoutPanel2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 4</value>
</data>
<data name="flowLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>498, 1</value>
</data>
<data name="flowLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.Name" xml:space="preserve">
<value>flowLayoutPanel2</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.Type" xml:space="preserve">
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="flowLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="flowLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="cancelButton.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cancelButton.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="cancelButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
<value>420, 3</value>
</data>
<data name="cancelButton.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 25</value>
</data>
<data name="cancelButton.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="&gt;&gt;cancelButton.Name" xml:space="preserve">
<value>cancelButton</value>
</data>
<data name="&gt;&gt;cancelButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cancelButton.Parent" xml:space="preserve">
<value>flowLayoutPanel1</value>
</data>
<data name="&gt;&gt;cancelButton.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="okButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="okButton.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="okButton.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="okButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="okButton.Location" type="System.Drawing.Point, System.Drawing">
<value>339, 3</value>
</data>
<data name="okButton.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 25</value>
</data>
<data name="okButton.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="okButton.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="&gt;&gt;okButton.Name" xml:space="preserve">
<value>okButton</value>
</data>
<data name="&gt;&gt;okButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;okButton.Parent" xml:space="preserve">
<value>flowLayoutPanel1</value>
</data>
<data name="&gt;&gt;okButton.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="flowLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="flowLayoutPanel1.FlowDirection" type="System.Windows.Forms.FlowDirection, System.Windows.Forms">
<value>RightToLeft</value>
</data>
<data name="flowLayoutPanel1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 162</value>
</data>
<data name="flowLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>498, 30</value>
</data>
<data name="flowLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;flowLayoutPanel1.Name" xml:space="preserve">
<value>flowLayoutPanel1</value>
</data>
<data name="&gt;&gt;flowLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;flowLayoutPanel1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;flowLayoutPanel1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="callHomeAuthenticationPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="callHomeAuthenticationPanel1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="callHomeAuthenticationPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>11, 60</value>
</data>
<data name="callHomeAuthenticationPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>194, 95</value>
</data>
<data name="callHomeAuthenticationPanel1.TabIndex" type="System.Int32, mscorlib">
<value>27</value>
</data>
<data name="&gt;&gt;callHomeAuthenticationPanel1.Name" xml:space="preserve">
<value>callHomeAuthenticationPanel1</value>
</data>
<data name="&gt;&gt;callHomeAuthenticationPanel1.Type" xml:space="preserve">
<value>XenAdmin.Controls.CallHomeAuthenticationPanel, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;callHomeAuthenticationPanel1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;callHomeAuthenticationPanel1.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>8, 8, 8, 8</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>514, 200</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="authenticationRubricLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="flowLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="flowLayoutPanel1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="callHomeAuthenticationPanel1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>96, 96</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>514, 200</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAkAMDAQAAEABABoBgAAlgAAACAgEAABAAQA6AIAAP4GAAAQEBAAAQAEACgBAADmCQAAMDAAAAEA
CACoDgAADgsAACAgAAABAAgAqAgAALYZAAAQEAAAAQAIAGgFAABeIgAAMDAAAAEAIACoJQAAxicAACAg
AAABACAAqBAAAG5NAAAQEAAAAQAgAGgEAAAWXgAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A
AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3AAAAAAAAAAAA
AAAAAAAAAAAAAHd3eIiId3dwAAAAAAAAAAAAAAAAAAAHd4iIhEREiIiHdwAAAAAAAAAAAAAAAAB4iERE
TMzMRERIiHAAAAAAAAAAAAAAAAeERMzMzMzMzMzERIcAAAAAAAAAAAAAB3hEzMzMzMzMzMzMxEh3AAAA
AAAAAAAAeIRMzMzMzMzMzMzMzMSIcAAAAAAAAAAHhEzMzMzMzMzMzMzMzMxEhwAAAAAAAAB4RMzMzMzM
zMzMzMzMzMzESHAAAAAAAAeETMzMzMzMzMzMzMzMzMzMRIcAAAAAAAeEzMzMzMzMzMzMzMzMzMzMxIcA
AAAAAHhMzMzMzMzMzMzMzMzMzMzMzEhwAAAAB4RMzMzMzMzMzMzMzMzMzMzMzESHAAAAB4TMzMzMzMzM
zMzMzMzMzMzMzMSHAAAAeEzP/////4zMzMzMj////4zMzMxIcAAAeEzM//////jMzMzP////+MzMzMxI
cAAHhMzMz/////+MzMzP////+MzMzMzEhwAHhMzMzP/////4zMz/////jMzMzMzEhwAHhMzMzMz/////
jM/////4zMzMzMzEhwAHhMzMzMzP////+I////+MzMzMzMzEhwAHhMzMzMzM//////////+MzMzMzMzE
hwB4TMzMzMzMz/////////jMzMzMzMzMSHB4TMzMzMzMzM///////4zMzMzMzMzMSHB4TMzMzMzMzMyP
/////4zMzMzMzMzMSHB4TMzMzMzMzMyP//////jMzMzMzMzMSHB4TMzMzMzMzMyP//////+MzMzMzMzM
SHAHhMzMzMzMzMj////////4jMzMzMzEhwAHhMzMzMzMzI//////////+MzMzMzEhwAHhMzMzMzMyP//
///P/////4zMzMzEhwAHhMzMzMzMj/////zM//////iMzMzEhwAHhMzMzMzMj/////zMz//////4zMzE
hwAAeEzMzMzI/////8zMzM//////jMxIcAAAeEzMzMyP/////MzMzMz/////+MxIcAAAB4TMzMzMzMzM
zMzMzMzMzMzMzMSHAAAAB4RMzMzMzMzMzMzMzMzMzMzMzESHAAAAAHhMzMzMzMzMzMzMzMzMzMzMzEhw
AAAAAAeEzMzMzMzMzMzMzMzMzMzMxIcAAAAAAAeETMzMzMzMzMzMzMzMzMzMRIcAAAAAAAB4RMzMzMzM
zMzMzMzMzMzESHAAAAAAAAAHhEzMzMzMzMzMzMzMzMxEhwAAAAAAAAAAeIRMzMzMzMzMzMzMzMSIcAAA
AAAAAAAAB3hEzMzMzMzMzMzMxEh3AAAAAAAAAAAAAAeERMzMzMzMzMzERIcAAAAAAAAAAAAAAAB4iERE
TMzMRERIiHAAAAAAAAAAAAAAAAAHd4iIhEREiIiHdwAAAAAAAAAAAAAAAAAAAHd3eIiId3dwAAAAAAAA
AAAAAAAAAAAAAAAAB3d3AAAAAAAAAAAAAAD///////8AAP//+D///wAA//8AAf//AAD/+AAAP/8AAP/w
AAAf/wAA/+AAAA//AAD/gAAAA/8AAP8AAAAB/wAA/gAAAAD/AAD8AAAAAH8AAPgAAAAAPwAA+AAAAAA/
AADwAAAAAB8AAOAAAAAADwAA4AAAAAAPAADAAAAAAAcAAMAAAAAABwAAgAAAAAADAACAAAAAAAMAAIAA
AAAAAwAAgAAAAAADAACAAAAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAB
AACAAAAAAAMAAIAAAAAAAwAAgAAAAAADAACAAAAAAAMAAIAAAAAAAwAAwAAAAAAHAADAAAAAAAcAAOAA
AAAADwAA4AAAAAAPAADwAAAAAB8AAPgAAAAAPwAA+AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/wAAAAH/
AAD/gAAAA/8AAP/gAAAP/wAA//AAAB//AAD/+AAAP/8AAP//AAH//wAA///4P///AAAoAAAAIAAAAEAA
AAABAAQAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICA
gADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3cA
AAAAAAAAAAAAAAd3eIiId3cAAAAAAAAAAAB4iIRERIiIcAAAAAAAAAB3hERMzMxERIdwAAAAAAAHiEzM
zMzMzMxIhwAAAAAAeETMzMzMzMzMxEhwAAAAB4TMzMzMzMzMzMzEhwAAAAeEzMzMzMzMzMzMxIcAAAB4
TMzMzMzMzMzMzMxIcAAHhM///4zMzMj//4zMxIcAB4TM////jMzP///MzMSHAAeEzM////jM////zMzE
hwAHhMzM////iP//jMzMxIcAeEzMzMz//////8zMzMxIcHhMzMzMz/////jMzMzMSHB4TMzMzMyP///4
zMzMzEhweEzMzMzMj////4zMzMxIcHhMzMzMyP/////4zMzMSHAHhMzMzI///8///4zMxIcAB4TMzMj/
//zM////jMSHAAeEzMzP///8zM////jEhwAHhMzMj///zMzM////hIcAAHhMzMzMzMzMzMzMzEhwAAAH
hMzMzMzMzMzMzMSHAAAAB4TMzMzMzMzMzMzEhwAAAAB4RMzMzMzMzMzESHAAAAAAB4hMzMzMzMzMSIcA
AAAAAAB3hERMzMxERIdwAAAAAAAAAHiIhEREiIhwAAAAAAAAAAAHd3iIiHd3AAAAAAAAAAAAAAAHd3cA
AAAAAAAA///////4P///gAP//wAB//wAAH/4AAA/8AAAH+AAAA/gAAAPwAAAB4AAAAOAAAADgAAAA4AA
AAMAAAABAAAAAQAAAAEAAAABAAAAAYAAAAOAAAADgAAAA4AAAAPAAAAH4AAAD+AAAA/wAAAf+AAAP/wA
AH//AAH//4AD///4P/8oAAAAEAAAACAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAA
B3d3cAAAAAd0RERHcAAAdEzMzMRHAAdMzMzMzMRwB0zMzMzMxHB0z/jMj/zMR3TM//j//MxHdMzP///M
zEd0zMz/+MzMR3TMyP///MxHdMzP/M//jEcHTMzMzMzEcAdMzMzMzMRwAHRMzMzERwAAB3REREdwAAAA
B3d3cAAA+B8AAOAHAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAgAEAAMAD
AADgBwAA+B8AACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAAZgAAAG0Y
EgBmMzMAZmZmAH9/fwCKHAAAjyEFAI8lCgCUIwEAmycAAJwrBgCVKg0AjikRAJMuFQCOMR4AmzESAJg2
HgCmLQAAqS8AAKwxAACxNAAAuDkBAJU9KgCvQRMAmkc2AMFDBADKUgoA4lIAANJjEgDbdxoAx200AIlP
RgCiVUMAuG9HAKpnWgCZZmYAtH50AOOPJgDrqjMAkYqIAJmZmQChoaEApqamAKmpqQCurq4Aubm5AL6+
vgDMmZkA1bi1AMDAwADGxsYAycnJAM3NzQDQ0NAA1NTUANnZ2QDe3t4A4+PjAObm5gDp6ekA7OzsAPHx
8QD19fUA+fn5AP7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBQUFBQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFKCgoKSkpKSgoKAUFBQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAABQUFBCklIh8fHRwcHR8fIiUpBAUFBQAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAFBCwoIh4eJicnJycnJycnJh4dIigsBAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUEKCIeJicn
JycnJycnJycnJycnJh4iKAQFBQAAAAAAAAAAAAAAAAAAAAAAAAAFBCkiHiYnJycnJycnJycnJycnJycn
JycmHiIpBAUAAAAAAAAAAAAAAAAAAAAAAAUEKB8mJycnJycnJycnJycnJycnJycnJycnJx4fKAQFAAAA
AAAAAAAAAAAAAAAABQQoHiYnJycmJiYmJiYmJiYmJiYmJiYmJiYnJyYmHSgEBQAAAAAAAAAAAAAAAAAF
BCgdJiYmJiYmJiYmJiYeHh4eHh4mJiYmJiYmJiYmJh0oBAUAAAAAAAAAAAAAAAUEKB0eJiYmJh4eHh4e
Hh4eHh4eHh4eHh4eHh4eJiYmJh4dKAQFAAAAAAAAAAAAAAUpHx4eHh4eHh4eHR0dHR0dHR0dHR0dHR0d
HR4eHh4eHh4eHykFAAAAAAAAAAAABSgiHR4eHh0dHR0dHRsbGxsbGxsbGxsbGxsbHR0dHR0dHh4eHSIo
BQAAAAAAAAAFBCgbHR0dHR0bGxsbGxsbGxsaGhoaGhobGxsbGxsbGxsdHR0dHRsoBAUAAAAAAAAFKCIb
HTo6PDo8Ojw6OisaGhoaGhoaGhoyPDw8PDw8PDkbGxsbHRsiKAUAAAAAAAAFKBobGxtAQEBAQEBAQEAv
GhoaGhoaGitAQEBAQEBAQBoaGhsbGxsaKAUAAAAAAAUEIhoaGhoaP0BAQEBAQEBAORYWFhYWFjxAQEBA
QEBAGhoaGhoaGhoaIigFAAAAAAUpGBoaGhYWFj9AQEBAQEBAQDwrFhYWNEBAQEBAQEA/FhYWFhYWGhoa
GCkFAAAAAAUlFhYWFhYWFhYWQEBAQEBAQEBALBYrQEBAQEBAQD8WFhYWFhYWFhYWFiUFAAAABQQjFRUV
FRUVFRUVFUBAQEBAQEBAQDc/QEBAQEBAQBUVFRUVFRUVFRUVFSMoBQAABSghFRUVFRUVFRUVFRU/QEBA
QEBAQEBAQEBAQEBAFRUVFRUVFRUVFRUVFSEoBQAABSghFBQUFBQUFBQUFBQUFEBAQEBAQEBAQEBAQEA/
FBQUFBQUFBQUFBQUFCEoBQAABSkYExMTExMTExMTExMTExNAQEBAQEBAQEBAQDkTExMTExMTExMTExMT
ExgpBQAABSkSEhISEhISEhISEhISEhISPEBAQEBAQEBAQCwSEhISEhISEhISEhISEhIpBQAABSkSEhIS
EhISEhISEhISEhISLEBAQEBAQEBAQEAvEhISEhISEhISEhISEhIpBQAABSkQCgoKCgoKCgoKCgoKCgoK
PEBAQEBAQEBAQEBANwoKCgoKCgoKCgoKChApBQAABSgZCgoSEhISEgoKCgoKCgo3QEBAQEBAQEBAQEBA
QDwrCgoKChISEhIKChkoBQAABSgZCgoLCwsLCgoKCgoKCi9AQEBAQEBAQEBAQEBAQEBALAoKCgoLCwsK
ChkoBQAABSgkCQkQCwsLCQkKCgoJK0BAQEBAQEA/CT9AQEBAQEBAQDQKCQkLCwsJCSQoBQAAAAUoCQkQ
EBAMCQkJCQkrP0BAQEBAQEAJCQkJQEBAQEBAQEA8KwkMEBAJCSgFAAAAAAUpDgkRERAQDA4KCQk8QEBA
QEBAQAkJCQkJCUBAQEBAQEBAPysQEBAJDikFAAAAAAUoIAYRFxERDg4ODDlAQEBAQEBAPwcJCQgHCQlA
QEBAQEBAQEAyEREGICgFAAAAAAAFKAYRGRkXEREOMkBAQEBAQEA/BgkHBwYHBwcIP0BAQEBAQEBAOREG
KAUAAAAAAAAFKCAOISEZFxcREQ4ODQ0NCQgICQ0HCAkNCAgNDQ0ODhERFxcZIQ0gKAUAAAAAAAAFBCgG
GSMhIRkXFxERDw4ODQ0NDQ0NDQ0NDQ0ODg8RERcXGSEhGQYoBAUAAAAAAAAABSggDyMjIyEhGRcXFxEP
Dw8PDw8PDw8PDw8PERcXFxkhISMjDyAoBQAAAAAAAAAAAAUpFyElJSMjIyEZGRkXFxcXFxcXFxcXFxcX
GRkZISEjIyUZFykFAAAAAAAAAAAAAAUEKA8jJSUlJSMjISEhGRkZGRkZGRkZGRkhISEjIyUlJSMPKAQF
AAAAAAAAAAAAAAAFBCgXIzAlJSUlJSMjIyMhISEhISEhISMjIyUlJSUlIxcoBAUAAAAAAAAAAAAAAAAA
BQQoFyMwMDAwJSUlJSUlJSUlJSUlJSUlJSUwMDAjFygEBQAAAAAAAAAAAAAAAAAAAAUEKCAjMDAwMDAw
MDAwMDAlMDAwMDAwMDAwMCMgKAQFAAAAAAAAAAAAAAAAAAAAAAAFBCkgGSUxMTExMTAwMDAwMDAwMDEx
MTElFyApBAUAAAAAAAAAAAAAAAAAAAAAAAAABQUoKCAZJTExMTExMTExMTExMTEwJRkgKCgFBQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAFBCgoIA8gJDAwMTU1MTAwJCAPICgoBAUAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAABQUFKCkoIAMDAgEBAgMDICgpKAUFBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUF
KCgoKSkpKSgoKAUFBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFBQUFBQUFBQAA
AAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//wA///wAA//4AAf//AAD/8AAAP/8AAP/g
AAAf/wAA/4AAAAf/AAD/AAAAA/8AAP4AAAAB/wAA/AAAAAD/AAD4AAAAAH8AAPAAAAAAPwAA8AAAAAA/
AADgAAAAAB8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAIAAAAAABwAAgAAAAAAHAACAAAAAAAcAAAAA
AAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD
AAAAAAAAAAMAAAAAAAAAAwAAgAAAAAAHAACAAAAAAAcAAIAAAAAABwAAwAAAAAAPAADAAAAAAA8AAMAA
AAAADwAA4AAAAAAfAADwAAAAAD8AAPAAAAAAPwAA+AAAAAB/AAD8AAAAAP8AAP4AAAAB/wAA/wAAAAP/
AAD/gAAAB/8AAP/gAAAf/wAA//AAAD//AAD//gAB//8AAP//wA///wAAKAAAACAAAABAAAAAAQAIAAAA
AAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAAACUHQQAlSkSAJU2HgCfOB0AvDQFALY3DQC5NgkAtzkPAKo6
FgCoNxgAtTsTAI4+LQDBOAQAyTwEAL5CEwC3RB8AokAkAKdOLwC2RyQAuE0sALFTLACvUjsAulc5AM5B
BQDSRwcA0kgIANZQCgDdUA8A21sPAMpKEgDEVB4A1VUTAN1READbWxAA0FUdAOxMAQDgUQ8A51sLAOla
CgDeYxIA4GkTAOpqEgDkdhgA63oYAMpfKwC8XUAAu21bAIxvZgDCb1cAw3RfAMR3YgDEe2gA6IAcAOeD
IADohiAA7JAkAOybKwDKgG0Ax4FwAM2NfgCQkJAAq6urAK+vrwCwsLAAtra2AL6+vgDRlIQA0piJANSe
kADWoZQA2KWZAMDAwADExMQA09PTANTU1ADZ2dkA3NzcAOHh4QDl5eUA6enpAO7u7gDx8fEA9fX1APn5
+QD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT09PT09AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAA9PTAtJSQkJS0wPT0AAAAAAAAAAAAAAAAAAAAAAAA9MCEnKiw3ODg3LConHDA9AAAA
AAAAAAAAAAAAAAAAPSMmNzk5OTk5OTk5OTk3JyM9AAAAAAAAAAAAAAAAAD0hNjg4ODg4ODk4ODg4ODg4
NSE9AAAAAAAAAAAAAAA9JTU2NjY2NjY2NjY2NjY2Njc2NRw9AAAAAAAAAAAAPSArKysrKysrKysrKysr
KysrKysrKyA9AAAAAAAAAD0fKCgpKCkpKSkoKSkpKSkpKSkpKCkoKB89AAAAAAAAMBwdUVFRUVFPIh0d
HR0iQVJSUlJRHR0dHDAAAAAAAD0eGxsbVFRUVFRUPhsbGxtUVFRUVBsbGxsbHj0AAAAAPRkaGhoaVFRU
VFRUSBoaT1RUVFRSGRoaGhoZPQAAAAAwGBgYGBgYVFRUVFRUTUhUVFRUUhgYGBgYGBgwAAAAPRUODg4O
Dg4ODlRUVFRUVFRUVFQODg4ODg4ODhU9AAA9Dw4ODg4ODg4ODlRUVFRUVFRUDg4ODg4ODg4ODz0AAD0O
BQUNBQUNBQUNBU1UVFRUVFINBQUNBQUNBQUOPQAAPQUFDQUFDQUFDQUFTVRUVFRUVFQ+DQUFDQUFDQU9
AAA9CwUFBQUFBQUHBUhUVFRUVFRUVFRIBQUFBQUHCz0AAD0SBwcHBwcHBwc+VFRUVFQHVFRUVFRPBwcH
BwcSPQAAADAIBgYLBwYGQVRUVFRUBgYGVFRUVFRSPgYGBjAAAAAAPQsLCwsLCwtSVFRUVFILCwsLVFRU
VFRUQQsLPQAAAAA9CRAQEBAQT1JUVFRUEBAQEBAQVFRUVFRUSwk9AAAAAAAwExQUFBQUFBQUFBQUFBQU
FBQUFBQUFBQTMAAAAAAAAD0RFy4uLi4uLi4uLi4uLi4uLi4uLi4uFxE9AAAAAAAAAD0RMTExMTExMTEx
MTExMTExMTExMTERPQAAAAAAAAAAAD0JMjo6Ojo6Ojo6Ojo6Ojo6OjozCj0AAAAAAAAAAAAAAD0EMkND
Q0NDQ0NDQ0NDQ0NDNAQ9AAAAAAAAAAAAAAAAAD0DETo8Q0VGR0ZGRkQ8OxEDPQAAAAAAAAAAAAAAAAAA
AD0wAhEWLzs8PDsvFhECMD0AAAAAAAAAAAAAAAAAAAAAAAA9PTAMAgEBAgwwPT0AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAD09PT09PQAAAAAAAAAAAAAAAAAA////////////8D///4AH//4AAf/8AAD/+AAAf/AA
AD/gAAAfwAAAD8AAAA+AAAAHgAAAB4AAAAcAAAADAAAAAwAAAAMAAAADAAAAAwAAAAOAAAAHgAAAB4AA
AAfAAAAPwAAAD+AAAB/wAAA/+AAAf/wAAP/+AAH//4AH///wP/8oAAAAEAAAACAAAAABAAgAAAAAAAAB
AAAAAAAAAAAAAAABAAAAAQAAAAAAAJMqDwClPRMAojkcAK5CHwCzRxcAvlAcAL1ZGwC6SyIAsk8yAMhW
IADNWyIAylcoAMpYLwDNXTgA1GchANRyIgDbcSMA4XwmAMJhRADOaEgA0WVCANNyUwDqiykAurq6AL+/
vwDT09MA19fXAOnp6QDt7e0A8/PzAPb29gD5+fkA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAQEBAQEBAAAAAAAAAAABAQcQFxcQBwEBAAAAAAABAhIX
FxcXFxcSAgEAAAABAhISEhISEhISEhICAQAAAQ8RERERERERERERDwEAAQUPHx8aDw8ZHx8PDw8FAQEG
DwsgIB0ZHyAfCw8LBgEBCgsLCyAgICAfCwsLCwoBAQoLCwsLHSAgGwsLCwsKAQEIDAwMGSAgICAdDAwM
CAEBBA0NDSAgDQ0gICAZDQQBAAENDg4ODg4ODg4ODg0BAAABAxUVFRUVFRUVFRUDAQAAAAEDFBYWFhYW
FhQDAQAAAAAAAQEJExYWEwkBAQAAAAAAAAAAAQEBAQEBAAAAAAD4HwAA4AcAAMADAACAAQAAgAEAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAHAAD4HwAAKAAAADAAAABgAAAAAQAgAAAA
AACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAQEBAAkBAQARAQEAHQEBADEBAQBVAQEAdQEBAI0BAQCdAQEAsQEBAL0BA
QC9AQEAsQEBAJ0BAQCNAQEAdQEBAFUBAQAxAQEAHQEBABEBAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAJAQEAFQEBADEBAQBdAQEAkQEBAMUBAQENAQEBXQEBAYkBA
QGZAQEByQEBAeUBAQHlAQEByQEBAZkBAQGJAQEBXQEBAQ0BAQDFAQEAkQEBAF0BAQAxAQEAFQEBAAgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEACQEBABEBAQAxAQEAZQEBALEBAQEhAQEBiTk5Ol1pa
WsddXV3XXV1d2mNjY/FlZWX8ZWVl/GNjY/JcXFzdXV1d21lZWc5NTU2nQEBAhkBAQHpAQEBiQEBASEBA
QCxAQEAZQEBADEBAQARAQEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQANAQEAJQEBAFkBAQClAQEBKVFRUn11d
XdVlZWX8cXFx/YKCgv6JiYn+iYmJ/pSUlP+ampr/mpqa/5SUlP+JiYn+iYmJ/oKCgv5xcXH9ZWVl/Vxc
XN5RUVG4QEBAh0BAQHJAQEBKQEBAKUBAQBZAQEAJQEBAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEABQEBABEBAQA5AQEAgQEBAQFRU
VJtjY2PvcXFx/YKCgv6UlJT/qop4/7p6Vv/KajP/ymoz/9paEv/iUgD/4lIA/9paEv/KajP/ymoz/7p6
Vv+qinj/lJSU/4KCgv5xcXH9YmJi81FRUbtAQECJQEBAa0BAQEBAQEAgQEBADkBAQARAQEABAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAJAQEAFQEBAEUBA
QCdRUVF7YWFh4HFxcf2Pj4/+opKJ/8BxRf/bahr/5n8b/+mXKP/rpjH/7bA2/+61Of/uuDv/7rg7/+21
Of/trzb/66Uw/+mVJ//mfRr/22gZ/8BxRf+ikon/j4+P/nFxcf1fX1/pTExMrkBAQIJAQEBXQEBAJ0BA
QBFAQEAFQEBAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAkBA
QAdAQEAVQEBALFxcXLdra2v8iYmJ/qGSif/BdkX/43gX/+iYKf/srDX/7bQ5/+21Of/ttDn/7bM5/+2z
OP/tszj/7bM4/+2zOP/tszn/7bQ5/+21Of/tszn/7Ks0/+iVKP/idBX/wXVF/6GSif+JiYn+a2tr/VlZ
WdRAQECMQEBAZEBAQCxAQEAVQEBAB0BAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABAQEABQEBABUBAQBVAQEAzX19fzXFxcf2UlJT/vXBF/+ByFf/nlin/66s0/+yvNv/srjb/7K01/+ut
Nf/rrDX/66w0/+urNP/rqzT/66s0/+urNP/rrDT/66w1/+utNf/srTX/7K42/+yvNv/rqTP/55Qn/99u
E/+9cEX/lJSU/3Fxcf1cXFzfQEBAkkBAQHFAQEAzQEBAFUBAQAVAQEABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABAQEAEQEBAEVBQUEJjY2Psd3d3/aGRif/KdTX/44Ug/+mjMP/qqDP/6qYy/+qm
Mf/ppDD/6aMw/+miL//poS//6KAu/+ifLv/ony7/6J8u/+ifLv/ooC7/6aEv/+miL//pozD/6aQx/+qm
Mf/qpzL/6qgz/+igLv/igR7/yXM1/6GRif93d3f9YmJi80ZGRqBAQEBxQEBALEBAQBFAQEAEAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQANAQEAOQEBAJ2RkZOp9fX39oJGJ/9VsHf/jiyP/550t/+if
Lv/nnS3/55ss/+aZK//mlyr/5ZYp/+WUKP/lkyj/5JIn/+SRJ//kkSf/5JEn/+SRJ//kkif/5ZMo/+WU
KP/llin/5pgq/+aaK//nmyz/550t/+ifLv/nnCz/4oci/9VqHP+gkYn/fHx8/mJiYvNAQECSQEBAZEBA
QCdAQEAOQEBAAwAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAkBAQAlAQEAgYGBgxHd3d/2gkYn/02sd/+GI
Iv/klSn/5JUp/+OSKP/jkCf/4o4l/+KLJP/hiSP/4Ich/+CFIf/ghCD/34If/9+BH//fgR7/34Ee/9+B
H//fgh//4IQg/+CFIf/hhyL/4Ykj/+KLJP/ijiX/45An/+STKP/klSn/5JQp/+CFIf/SaBz/oJGJ/3d3
d/1cXFzfQEBAjEBAQFdAQEAgQEBACUBAQAIAAAAAAAAAAAAAAAAAAAAAQEBABEBAQBZfX1+ncXFx/aCR
if/PZRv/3YAe/+CKJP/giiT/4Igi/9+EIf/egR//3X4d/9x7HP/beBr/23YZ/9p0GP/acxj/2XEX/9lw
Fv/ZcBb/2XAW/9lxFv/ZcRf/2nMY/9p0GP/bdhn/23kb/9x8HP/dfh7/3oEf/9+FIf/giCL/4Iok/+CK
JP/dfR3/zmMa/6CRif9xcXH9WVlZ1EBAQIJAQEBAQEBAFkBAQAQAAAAAAAAAAAAAAABAQEACQEBADFhY
WFdra2v8lJSU/8BrNP/Ycxj/3H8e/9x+Hv/bexz/2nca/9l0Gf/YcRf/124W/9ZrFP/VaBP/1GYS/9Rk
Ef/TYxD/02EP/9NgD//TYA//02AP/9NhD//TYQ//02MQ/9RkEf/UZhL/1WgT/9ZrFf/Xbhb/2HEX/9l0
Gf/aeBv/23sc/9x+Hv/cfh7/13AX/8BqNP+UlJT/a2tr/UxMTK5AQEBrQEBAKUBAQAxAQEACAAAAAAAA
AABAQEAFQEBAGWNjY9KJiYn+tGtF/9FhEP/Xchn/13IY/9ZvF//UaxX/02gU/9JlEv/RYhD/0F8P/89c
Df/PWgz/zlgL/85WC//NVQr/zVMJ/81TCf/NUwn/zVMJ/81TCf/NUwn/zVUK/85WC//OWAv/z1oM/89c
Df/QXw//0mIR/9JlEv/UaRT/1WwV/9ZvF//Xchn/1nEY/9BfD/+0a0X/iYmJ/l9fX+lAQECJQEBASkBA
QBlAQEAFAAAAAEBAQAJAQEAMXFxccHJycvyfkIn/xFEM/6ZVFv+jVBb/olEV/6FPE/+hTBL/oEoR/59I
EP+eRg//nkQO/59DDf+/Sgn/yEwG/8hLBv/ISgX/x0kF/8dJBf/HSQX/x0kF/8dJBf/GSQX/q0MJ/5o/
DP+aPwz/mkEN/5pBDv+bRA7/nEUP/51HEf+fShH/wFoU/89gEP/QZBL/0WcU/9FlE//KUAj/n5CJ/3Fx
cf1RUVG7QEBAckBAQCxAQEAMQEBAAkBAQARAQEAXZGRk5o+Pj/6yakX/yVUN/8GIYv/j4N//5+fn/+fn
5//n5+f/5+fn/+fn5//n5+f/5+fn/+Tk5P+Xd2b/rD8I/8JDA//DQgL/w0IC/8NCAv/DQgL/w0IC/8NC
Av+wQAj/u66o/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/Xxr3/w1UU/8lTC//KVgz/y1oO/8xb
D//JVAv/smpF/4+Pj/5iYmLzQEBAh0BAQEhAQEAXQEBABEBAQAddXV1qcnJy/J6Qif/CRgX/xlIL/8ZR
Cv/OeUj/9Onj//7+/v/+/f3///////79/f/+/f3//v39///////8+/v/tKSc/5c5DP+8PgL/vz4B/78+
Af+/PgH/vz4B/7s+A/+SaFT//Pv7///////+/f3//v39///////+/f3///////fy7//EYzD/wkcF/8NK
B//ETAj/xU4J/8ZSCv/GUQr/wUUE/56Qif9xcXH9UVFRuEBAQGJAQEAkQEBAB0BAQAxiYmK2g4OD/axl
Rf/ARgb/wUoH/8FIB//ARgb/xVkj/+bNwP/+/f3///////79/f/+/f3//v39///////+/f3//v39/9PN
y/+HPh3/tjsC/7s7AP+7OwD/uzsA/449GP/t7Ov//v39///////+/f3//v39///////+/f3//f39/8yA
XP+9PwL/vkED/75CBP+/RAX/wEYG/8FIB//BSgf/v0UF/6xlRf+CgoL+XFxc3kBAQHpAQEAxQEBADEBA
QBVmZmb6lJSU/7ZGE/+9QwX/vEMF/7xBBP+7PwP/uj4D/7xCCv/XpY3//Pv7////////////////////
///////////////////s6+v/h1hD/6w2A/+4OAD/pTYG/8S5tf//////////////////////////////
///+/v7/1qWQ/7k6Af+5OwH/uTsB/7o8Av+6PgP/uz8D/7xBBP+8QwX/vEMF/7ZGFP+UlJT/ZWVl/UBA
QIZAQEBDQEBAFVtbW05ycnL8oIR4/7Y5Av+4PgP/uDwD/7c7Av+3OgL/tjkB/7Y4Af+2OQL/ynxa//Xw
7f/+/f3//v39///////+/f3//v39///////+/f3/+Pf3/5yBdf+WMAX/kGhY//39/f/+/f3//v39////
///+/f3//v39//7+/v/exbv/tz8L/7U3AP+1NwD/tjgB/7Y4Af+2OQH/tzoC/7c7Av+4PAP/uD0D/7Y5
Av+ghHj/cXFx/U1NTadAQEBXQEBAHWJiYpmDg4P9pW1W/7M2Af+zNwH/szcB/7M2Af+zNgH/sjUA/7I1
AP+yNQD/sjQA/71ZL//t29T//v39///////+/f3//v39///////+/f3//v39//39/f/LxMH/8O/u////
///+/f3//v39///////+/f3//v39/+/m4/+4TSD/sjQA/7I0AP+yNAD/sjUA/7I1AP+yNQD/szYB/7M2
Af+zNwH/szcB/7M2Af+lbVb/goKC/llZWc5AQEBiQEBAI2NjY7OJiYn+qFUz/7AzAf+wNAH/sDMA/68z
AP+vMwD/rzMA/68yAP+vMgD/rzIA/68yAP+zPxD/27Wm//7+/v//////////////////////////////
////////////////////////////////////////+/r5/71mQ/+vMgD/rzIA/68yAP+vMgD/rzIA/68y
AP+vMwD/rzMA/68zAP+wMwD/sDQB/7AzAf+oVTP/iYmJ/l1dXdtAQEBmQEBAJ2NjY7WJiYn+plQz/6wx
AP+sMQD/rDEA/6wxAP+sMQD/rDEA/6wxAP+sMQD/rDEA/6wxAP+sMQD/rTMD/8uMdP/59/b//v39////
///+/f3//v39///////+/f3//v39///////+/f3//v39///////+/f3/w4ly/6wxAP+sMQD/rDEA/6wx
AP+sMQD/rDEA/6wxAP+sMQD/rDEA/6wxAP+sMQD/rDEA/6wxAP+mVDP/iYmJ/lxcXN1AQEByQEBALGVl
ZeKUlJT+pzsS/6kvAP+pLwD/qS8A/6kvAP+pLwD/qS8A/6kvAP+pLwD/qS8A/6kvAP+pLwD/qS8A/6kv
AP+8ZUP/7ePf//7+/v/+/f3//v39///////+/f3//v39///////+/f3//v39//7+/v/EpJj/qTIE/6kv
AP+pLwD/qS8A/6kvAP+pLwD/qS8A/6kvAP+pLwD/qS8A/6kvAP+pLwD/qS8A/6kvAP+nOxL/lJSU/2Nj
Y/JAQEB5QEBAL2ZmZvmampr/pi0A/6YtAP+mLQD/pi0A/6YtAP+mLQD/pi0A/6YtAP+mLQD/pi0A/6Yt
AP+mLQD/pi0A/6YtAP+mLQD/qkAY/9S7sf/+/v7///////////////////////////////////////7+
/v+ScGT/ly0G/6YtAP+mLQD/pi0A/6YtAP+mLQD/pi0A/6YtAP+mLQD/pi0A/6YtAP+mLQD/pi0A/6Yt
AP+mLQD/mpqa/2VlZfxAQEB5QEBAL2ZmZvmampr/oysA/6MrAP+jKwD/oysA/6MsAf+jLAH/oysA/6Mr
AP+jKwD/oysA/6MrAP+jKwD/oysA/6MrAP+jKwD/oiwC/4FKNv/8+/v//v39///////+/f3//v39////
///+/f3//v39///////7+vr/rJuV/4QqCv+hKwH/oysA/6MrAP+jKwD/oysA/6MrAP+jKwD/oysA/6Ms
Af+jKwD/oysA/6MrAP+jKwD/mpqa/2VlZfxAQEByQEBALGVlZeGUlJT+nzYS/6ApAP+gKQD/oSsC/6Er
Av+hKwL/oCoB/6AqAf+gKgH/oCkA/6ApAP+gKQD/oCkA/6ApAP+fKQD/fC8V/+Ti4f/+/f3//v39////
///+/f3//v39///////+/f3//v39///////+/f3//v39/9DKyP94NB3/nCkC/6ApAP+gKQD/oCkA/6Aq
Af+gKgH/oCoB/6ErAv+gKgH/oCkA/6ApAP+fNhL/lJSU/2NjY/FAQEBmQEBAJ2NjY7GJiYn+nE0z/50n
AP+dJwD/nyoE/58qBP+eKgP/nikC/54pAv+dKAH/nSgB/50oAf+dJwD/nScA/50nAP+DKAr/y8TC////
///////////////////////////////////////////////////////////////////s6+v/flRG/5In
A/+dKAH/nSgB/50oAf+eKQL/nikC/54qA/+eKgP/nScA/50nAP+cTTP/iYmJ/l1dXdpAQEBiQEBAI2Rk
ZK+JiYn+mk0z/5omAP+aJgD/nS0I/50sB/+cKwb/nCkE/5spA/+bKAL/mygC/5onAf+aJwH/micB/4wm
Bf+rmpX//v39///////+/f3//v39///////+/f3//v39/+zk4f/+/f3//v39///////+/f3//v39////
///+/f3/+fn5/5uFff+CJgj/migD/5soAv+bKQP/nCkE/5wrBv+cKwb/miYA/5omAP+aTTP/iYmJ/l1d
XddAQEBXQEBAHWNjY5ODg4P9mWZW/5ckAP+XJAD/nTAO/5wuDP+bLAn/mioH/5koBf+ZJwT/mCcD/5gm
Av+YJgL/kiUD/41vZv/8+/v//v39///////+/f3//v39///////+/f3/2sW+/500E//MpJj//fz8////
///+/f3//v39///////+/f3///////38/P/Cubb/dCwV/5YnBf+ZKAX/mioH/5ssCf+bLQv/lyQA/5ck
AP+ZZlb/goKC/lpaWsdAQEBDQEBAFWFhYUBycnL7mYB4/5QiAP+UIgD/nTUW/5sxEf+aLg7/mSwM/5gq
Cf+XKAf/liYF/5YlBP+SJgT/eEk7//f39//////////////////////////////////x6uj/n0Aj/5Qi
AP+VJQP/u4Bu//v5+f/////////////////////////////////+/v7/5OPi/3VENv+QKgv/mSwM/5ov
D/+bMRH/lCIA/5QiAP+ZgHj/cXFx/U5OTpdAQEAxQEBADEBAQAdmZmb5lJSU/pIuEv+RIAD/njkd/504
G/+aMhX/mC8R/5csDv+WKgv/lSgJ/5MmCP9zMyH/6ejn///////+/f3//v39///////+/f3//v39//z7
+/+uaVb/kSEB/5EhAf+RIQH/kSEB/65iTf/z7Or//v39///////+/f3///////79/f/+/f3///////Tz
8/+Ncmv/hi0U/5kyFf+aMxb/kSAA/5IuEv+UlJT/ZWVl/EBAQGJAQEAkQEBAB0BAQARkZGStg4OD/ZNV
Rf+OHgD/nTsh/6BBKP+cOR//mTQZ/5cxFf+WLhL/lCoO/3grFv/Uz87/////////////////////////
/////////v7+/8Wdkv+PIgT/jyED/48hA/+PIQP/jyED/48hA/+gRy//6NrW//7+/v//////////////
///////////////////8/Pz/tKmm/3o0Iv+XNBr/jh4A/5NVRf+CgoL+XV1d1UBAQEhAQEAXQEBABEBA
QAJjY2NacnJy+5iMif+LHAD/mTce/6RMNv+gRS7/nD0l/5k3Hv+XMxr/jjMc/7iqpv/28/L/9vPy//bz
8v/28vH/9vLx//by8f/28vH/3svH/5EqEP+NIAX/jSAF/40gBf+NIAX/jiEG/44hBv+OIgf/ljMa/9i+
t//7+fn/+/r5//v6+f/7+vn/+/r5//v6+f/7+vn/+/r5/9fU0/96Qzb/ih0B/5iMif9xcXH9VFRUn0BA
QCxAQEAMQEBAAgAAAABAQEAFZWVl34+Pj/6QVEX/kSwT/6hYRP+lUz//oUs2/5xBK/+ZOyT/ljkh/5g8
Jv+YOyT/lzki/5Y4IP+VNh7/lTUc/5QzG/+TMhn/kCoR/40kCv+NJAr/jCMJ/40kCv+NJAr/jSQK/40l
C/+OJgz/jygO/5EtFP+bQSv/nUQu/55GMf+gSjT/ok04/6NQO/+lVED/qFpH/6hdS/+TOCH/kFRF/4+P
j/5jY2PvQEBASkBAQBlAQEAFAAAAAAAAAABAQEACY2NjWnJycvuYjIn/hRkA/6BMOf+rYE//p1pI/6RT
QP+eSTX/mkEs/5c7Jv+VOCL/lDUf/5IxG/+QLxj/kC0W/48rFP+OKRL/jikS/40oEf+NJxD/jScQ/40n
EP+NKBH/jikS/44pEv+PKxT/kC0W/5AvGP+SMRv/lDUf/5U4Iv+YPCf/mkEs/5xFMf+iTzz/plhG/55I
NP+FGQD/mIyJ/3Fxcf1UVFSbQEBAKUBAQAxAQEACAAAAAAAAAAAAAAAAQEBABGVlZcWJiYn+jVJF/5I0
IP+valv/rmhZ/6tjU/+nXEz/oVFA/5xINv+ZQi//lz4r/5U6J/+TNyP/kjUh/5EyHv+QMR3/jzAb/48v
Gv+PLxr/ji4Z/48vGv+PLxr/jzAb/5AxHf+RMh7/kjUh/5M3I/+VOif/lz4r/5lCL/+bRjT/n048/6VY
R/+rY1P/rGRV/5EyHv+NUkX/iYmJ/mFhYeBAQEBAQEBAFkBAQAQAAAAAAAAAAAAAAAAAAAAAQEBAAmJi
Yj5sbGz6lJSU/ohBM/+eTj7/tnlt/7JzZv+vbF//q2ZY/6deUP+iVEX/nUw8/5pHNv+YQzL/lj8u/5U9
LP+UOyn/kzoo/5M5J/+SOCb/kjgm/5I4Jv+TOSf/kzoo/5Q7Kf+VPSz/lj8u/5hDMv+aRzb/nEo6/6BR
Qf+lWkv/qmRW/69sX/+yc2b/nUs7/4hBM/+UlJT/a2tr/FFRUXtAQEAgQEBACUBAQAIAAAAAAAAAAAAA
AAAAAAAAAAAAAEBAQANkZGSPcnJy+5eLif+IMSL/qWRX/7uFe/+4fnT/tHht/7FyZ/+ubWH/qmVZ/6Rb
Tv+gVUf/nE0//5tLPP+ZSDn/mEY3/5hFNv+XRDX/l0Q1/5dENf+YRTb/mEY3/5lIOf+bSzz/nE0//59S
RP+jWEv/p2FU/61rX/+xcmf/tHht/7h+dP+mX1L/hzAh/5eLif9xcXH9XFxct0BAQCdAQEAOQEBAAwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEZWVlq3h4ePuWi4n/jDsu/65vZf/BkYn/vYqC/7qF
fP+4gHf/tHpx/7F1a/+vcGb/q2pf/6djWP+kXlL/olpO/6BXS/+fVEj/nlNH/59USP+fVUn/oVhM/6Nc
UP+mYFX/qWdc/65uZP+xdWv/tHpx/7iAd/+6hXz/vYqC/6xsYf+MOi3/louJ/3d3d/1fX1/NQEBALEBA
QBFAQEAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEABQEBABWVlZd99fX38louJ/4s8
MP+tcWf/yJ+Z/8Wak//ClY7/v4+I/7yKgv+6hn7/uIJ6/7V/dv+0fHP/snlw/7J4b/+xd27/sXZt/7F3
bv+yeG//snlw/7R8c/+1f3b/uIJ6/7qGfv+8ioL/v4+I/8KVjv/FmpP/rG5k/4o7L/+Wi4n/fX19/WNj
Y+xAQEAzQEBAFUBAQAVAQEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAl9f
XyFlZWXfeHh4+5aLif+JS0H/pGJZ/8igmv/MqKP/yqOe/8igmv/FnJb/w5iS/8GUjv/Akoz/vo+J/76P
iP+9jof/vY2G/72Oh/++j4j/vo+J/8CSjP/BlI7/w5iS/8Wclv/IoJr/yqOe/8Wclv+iX1b/iEpB/5aL
if93d3f9ZGRk6lBQUEJAQEAVQEBAB0BAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAEBAQAJAQEAFZWVlq3JycvuUlJT+g0tF/49AN/+zfnj/1bi0/9O1sf/Rsa3/z66q/86r
p//MqKT/y6ai/8qkoP/KpKD/yqSg/8qkoP/KpKD/y6ai/8yopP/Oq6f/z66q/9Gxrf/TtLD/snt1/44/
Nv+DS0X/lJSU/3Fxcf1gYGDEQEBAJ0BAQBFAQEAFQEBAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEABQEBABGRkZI9sbGz6iYmJ/pWKif+BSkX/j0Q8/695
dP/Nq6j/28LA/9rBvv/Yvrv/17y5/9e8uf/Wu7j/1ru4/9a7uP/XvLn/17y5/9i+u//awb7/zKmm/694
c/+PQzv/gUpF/5WKif+JiYn+a2tr/F9fX6dAQEAgQEBADkBAQARAQEABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQANiYmI+ZWVlxXJy
cvuPj4/+lYqJ/39JRf98Lif/kkpE/6hvav+7j4v/y6mm/9e9u//fysj/38rI/9e9u//KqKX/u46K/6hv
av+SSkT/fC4n/39JRf+Vion/j4+P/nJycvxjY2PSWFhYV0BAQBZAQEAJQEBAAwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABAQEACQEBABGNjY1plZWXfcnJy+4ODg/2UlJT+j3p4/4NZVv94ODP/eDgz/20YEv9nBwD/ZwcA/20Y
Ev94ODP/eDgz/4NZVv+Penj/lJSU/4ODg/1ycnL8ZGRk5lxcXHBAQEAZQEBADEBAQARAQEACAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAJAQEAFY2NjWmRkZK1mZmb5cnJy+4ODg/2JiYn+iYmJ/pSU
lP6ampr/mpqa/5SUlP6JiYn+iYmJ/oODg/1ycnL8ZmZm+mJiYrZdXV1qQEBAF0BAQAxAQEAFQEBAAgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAAkBAQARAQEAHYWFhQGNj
Y5NkZGSvY2NjsWVlZeFmZmb5ZmZm+WVlZeJjY2O1Y2Njs2JiYplbW1tOQEBAFUBAQAxAQEAHQEBABEBA
QAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8
AAA//wAA//AAAA//AAD/wAAAA/8AAP+AAAAB/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA8AAAAAAP
AADwAAAAAA8AAOAAAAAABwAAwAAAAAADAADAAAAAAAMAAIAAAAAAAQAAgAAAAAABAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAABAACAAAAAAAEAAMAAAAAAAwAAwAAAAAAD
AADgAAAAAAcAAPAAAAAADwAA8AAAAAAPAAD4AAAAAB8AAPwAAAAAPwAA/gAAAAB/AAD/gAAAAf8AAP/A
AAAD/wAA//AAAA//AAD//AAAP/8AACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISE
hDiEhISNhISEqoSEhOKEhIT/hISE/4SEhOKEhISqhISEjYSEhDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISE
hHGEhITim3hn/7JsSv/KYCz/4FIP/+xNAf/sTQH/4FIP/8pgLP+ya0n/m3hn/4SEhOKEhIRxAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISE
hFWEhITimndn/91SEP/pWwr/6msS/+t7Gf/riCH/7JEl/+yRJf/riSL/63wa/+psEv/pXQr/3VEP/5p3
Z/+EhITihISEVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACEhIRxj352/9BWHv/nXAv/644l/+uXKf/snCz/7KAv/+ygLv/soC//7KEv/+ygLv/snS3/7Jws/+uX
Kf/rjiX/51wL/9BWHv+PfXX/hISEcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAhISEqph3aP/ZVhP/6YMg/+qTKP/qlCf/6pUp/+qUJ//qlCj/6pQo/+qVKf/qlSn/6pQn/+qT
KP/qlCj/65Up/+qTJ//qlSn/6IEd/9lWE/+Yd2j/hISEqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAISEhHGYdmf/4VQI/+d/Hv/ohiH/6Ici/+iGIf/ohiH/6IYh/+iGIf/ohiH/6IYh/+iH
Iv/oiCL/6IYh/+iGIf/oiCL/54Qh/+iGIf/ohiH/5n4d/+FUCP+Ydmf/hISEcQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACEhIRVjn52/9VWE//kdxr/5Hkb/+R3Gv/keRv/5Hga/+R3Gv/kdhn/5HYZ/+R3
Gf/kdxr/5HcZ/+R4Gv/keBr/5Hga/+R3Gf/keBr/5Hca/+R2Gf/kdxn/5Hga/9VWE/+Ofnb/hISEVQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAISEhOLCVSD/wFoV/79dFv+/XRb/v10W/8BeFv+/XRX/xl8U/95o
E//faRP/4GoU/+BqFP/faBP/32kU/9FkFf+9XBb/vVwW/71cFv+9XBb/vVwW/81jF//faBP/32US/8VV
H/+EhITiAAAAAAAAAAAAAAAAAAAAAAAAAACEhIRxlnZo/9pWDf/PimH/7Orp/+/v7//v7+//7+/v/+/v
7//j4N7/nlw0/9haEP/bXA//21wP/9tcD//XWxH/sJOB//Dw8P/w8PD/8PDw//Dw8P/p5eL/0Gsu/9tc
D//bWw//2lcN/5Z2aP+EhIRxAAAAAAAAAAAAAAAAAAAAAISEhOLKSxL/11IL/9ZSC//ceEP/9eji////
///////////////////5+fn/nnNb/8pPDv/WUQr/1lIL/6BaNf/8/Pz//////////////////v7+/92M
Yf/WUgv/11IL/9ZRCv/XUgv/yksS/4SEhOIAAAAAAAAAAAAAAACEhIQ4lHVo/9JIB//SSQj/0kkI/9JJ
CP/VWh//7c2+//7+/v/////////////////+/v7/t6CV/7VFEP+1RhH/497b//////////////////7+
/v/hrZT/0kgH/9JJCP/SSQj/0kkI/9JJCP/SSAf/lHVo/4SEhDgAAAAAAAAAAISEhI2sXTz/zkIF/85D
Bv/OQwb/zkMG/85DBv/PRgr/4aWK//79/f//////////////////////18/L/72onv//////////////
////////6M3B/85HDf/OQgX/zkIF/85DBv/OQwb/zkMG/85DBv+sXTz/hISEjQAAAAAAAAAAhISEqrJU
Lf/JPgT/yj4E/8k+BP/JPQT/yT4E/8k+BP/JPgT/1XpU//jx7v//////////////////////////////
//////////////Ho5P/MUyL/yj4E/8k+BP/JPgT/yT4E/8o+BP/JPgT/yT4E/7JULf+EhISqAAAAAAAA
AACEhITiv0MT/8U7BP/FOwT/xTwE/8U7A//FOwP/xTsE/8U7A//FOwP/y1kq/+3Yz//+/v7/////////
///////////////////9+/v/wmM8/8U7A//FOwP/xTsD/8U7A//FOwP/xTwE/8U7A//FOwT/v0MT/4SE
hOIAAAAAAAAAAISEhP/COAP/wjkE/8I4A//COAP/wjgD/8I4A//COAP/wjgD/8I4A//COAP/wT8M/8al
mf////////////////////////////Dt6/+USSz/vzgE/8I4A//COAP/wjgD/8I4A//COAP/wjgD/8I4
A//COAP/hISE/wAAAAAAAAAAhISE/782Bf+/NgX/vzYF/782Bf+/NgX/vzYF/782Bf+/NgX/vzYF/782
Bf+pOA//1czI//////////////////////////////////j4+P+WaVj/tDYI/782Bf+/NgX/vzYF/782
Bf+/NgX/wDcG/782Bf+EhIT/AAAAAAAAAACEhITitz0T/7w2B/+8NQb/vTYH/7w1Bv+8NQb/vDUG/7w1
Bv+8NQb/szYK/7ehmv///////////////////////v7+//////////////////7+/v+1oJj/ojYQ/7w1
Bv+8NQb/vTYH/7w2B/+8Ngf/tz0T/4SEhOIAAAAAAAAAAISEhKqoTzD/ujcJ/7o3Cf+6Nwr/ujcJ/7o3
Cf+6Nwn/ujcK/7c3Cv+cdWj//v7+//////////////////Dl4v/Lgmn/+vb0////////////////////
///Z0s//kD4h/7g3Cf+6Nwn/ujcK/7o3Cf+oTzD/hISEqgAAAAAAAAAAhISEjaBWPv+4Og//tzkO/7c5
Dv+3OQ7/tzgN/7c4Df+2OA3/jlM///v7+//////////////////8+/v/wmlL/7c4Df/CXz7/8eTg////
///////////////////z8vL/jllH/7E5D/+3OQ7/tzgN/6BWPv+EhISNAAAAAAAAAACEhIQ4jnFn/7Y8
E/+3PRT/tz0U/7c9FP+3PRT/tjwT/5FDKf/z8vH//////////////////v7+/9Gah/+3PRT/tz0U/7c9
FP+9UCz/6M/G//7+/v/////////////////9/f3/pouC/6Q8GP+2OxP/jnFn/4SEhDgAAAAAAAAAAAAA
AACEhITiqzsX/7hFIP+3Qh3/uEUg/7dEH/+zRiP/x52Q/+K+sv/kv7P/5L+z/+O+s//arJ7/uEYi/7dC
Hf+3Qh3/t0Id/7dCHf+5SCT/2qqa/+jJwP/oycD/6Mm//+jJv//mx73/upGE/6Q9HP+EhITiAAAAAAAA
AAAAAAAAAAAAAISEhHGNcGf/t0km/7lOLP+5Ty3/uk8u/7lOLP+6Ty7/uk8u/7pPLv+6Ty7/uk8u/7pP
Lv+6Ty7/uk8u/7pPLv+6Ty7/uk8u/7pPLv+6Ty7/uU8t/7pPLv+6Ty7/uk8u/7pPLv+3SCX/jXBn/4SE
hHEAAAAAAAAAAAAAAAAAAAAAAAAAAISEhOKjQSX/u1g6/71cP/++XkH/vVw//75eQf++X0L/vl9C/75f
Qv++X0L/vl9C/75fQv++X0L/vl9C/75fQv++X0L/vl9C/75fQv++X0P/vl5B/75eQf+9XUD/u1Y4/6NB
Jf+EhITiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEVYh6dv+nQCP/w3BY/8JtVf/BbFT/wm5W/8Ju
Vv/Cblb/wm5W/8JuVv/Cblb/wm5W/8JuVv/Cblb/wm5W/8JuVv/Cblb/wm5W/8NxWf/Cblb/w3FZ/8Ju
Vv+nQCP/iHp2/4SEhFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEcYpvZ/+pOBn/xHVg/8qC
b//Kgm//yoFu/8qBbv/KgW7/yoFu/8qBbv/KgW7/yoFu/8qBbv/KgW7/yoFu/8qBbv/KgW7/y4Rx/8qB
bv/FeGP/qTgZ/4pvZ/+EhIRxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEqopu
Z/+gOR7/xHhl/9GWhv/Rlob/0ZaG/9GWhv/Rlob/0ZaG/9GWhv/Rlob/0ZaG/9GWhv/Rlob/0ZaG/9GW
hv/RlIT/xXxp/6A5Hv+Kbmf/hISEqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAhISEcYd5dv+WNx//qD4j/8eCcf/Njn//0pmK/9Sfkf/XpZj/2Kaa/9immv/Xppn/1qKV/9KZ
iv/Njn//x4Jx/6g+JP+WNx//h3l2/4SEhHEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAhISEVYSEhOKIbmf/lioS/6Q5If+wVD7/vG9c/8eEdP/Li33/y4x+/8eD
c/+8blz/sFM8/6Q5IP+WKxL/iG5n/4SEhOKEhIRVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISEhHGEhITiiG1o/4xWS/+PPy7/kykT/5Ue
BP+VHgT/kykT/48/Lv+MVkv/iG1o/4SEhOKEhIRxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhIQ4hISEjYSE
hKqEhITihISE/4SEhP+EhITihISEqoSEhI2EhIQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////////////wA///wAD//wAAP/4AAB/8AAAP+AAAB/AAAAPwAAAD4AA
AAeAAAAHAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAA4AAAAeAAAAHwAAAD8AA
AA/gAAAf8AAAP/gAAH/8AAD//wAD///AD/8oAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQrDxyUKw9xlCsPqpQrD+KUKw/ilCsPqpQrD3GUKw8cAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQrD3GUKw//vloc/9RzI//qjCr/6owq/9RzI/++Whz/lCsP/5Qr
D3EAAAAAAAAAAAAAAAAAAAAAAAAAAJQrD6qnQBT/4X8n/+qKKv/qiir/6ooq/+qKKv/qiir/6ooq/+F/
J/+nQBT/lCsPqgAAAAAAAAAAAAAAAJQrD3GmPRT/4n0n/+J9J//ifSf/4n0n/+J9J//ifSf/4n0n/+J9
J//ifSf/4n0n/6Y9FP+UKw9xAAAAAJQrDxyTKw//xGMh/8pqIv/KaiL/1W8j/9tyJP/bciT/13Ak/8lp
Iv/JaSL/zWsj/9tyJP/UaiL/lCsP/5QrDxyUKw9xtEgY/9macv/08vD/9/f3/86/tv+4YCf/1Wgi/61+
YP/39/f/9/f3/9ORZv/VaCL/1Wgi/7RIGP+UKw+NlCsPqr9RHf/QYSL/03xM//bq4///////6uXi/6Rx
VP/49vX//////+K3n//QYSL/0GEi/9BhIv+/UR3/lCsPqpQrD+LIVyH/zVwj/81cI//MZDD/686///7+
/v///////////+XQxf/LXib/zVwj/81cI//NXCP/yFch/5QrD/+UKw/ixVUk/8pYJf/KWCX/ylgl/8VZ
Kf/l3Nj////////////Qv7j/sFMq/8pYJf/KWCX/ylgl/8VVJP+UKw//lCsPqrtMI//KWCn/ylgp/8lY
Kf+thnb///////v49//v3tf//////+vm5P+iWz7/ylgp/8pYKf+7TCP/lCsPqpQrD3GvQyD/ylkw/8pZ
MP+jZ1L//v7+//7+/v/WmYP/yV43/+jHuv/+/v7//Pv7/6d5af/EVy//r0Mg/5QrD42UKw8clCsP/8ha
Nf/LXjn/y4Bn/9CHbv/PhGv/zV45/81eOf/MXjr/z4Vs/9GLc//RinP/vWNF/5QrD/+UKw8cAAAAAJQr
D3GjOhz/0WZD/9FmQ//RZkP/0WZD/9FmQ//RZkP/0WZD/9FmQ//RZkP/0WZD/6M6HP+UKw9xAAAAAAAA
AAAAAAAAlCsPqqM7Hv/OaUn/03NU/9ZxUf/WcVH/1nFR/9ZxUf/WcVH/zmlJ/6M7Hv+UKw+qAAAAAAAA
AAAAAAAAAAAAAAAAAACUKw9xlCsP/7NQM//DYkX/1XVY/9V1WP/DYkX/s1Az/5QrD/+UKw9xAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQrDxyUKw9xlCsPqpQrD+KUKw/ilCsPqpQrD3GUKw8cAAAAAAAA
AAAAAAAAAAAAAPAPAADgBwAAwAMAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAB
AADAAwAA4AcAAPAPAAA=
</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>490, 228</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Health Check Enrollment</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CallHomeEnrollNowDialog</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>XenAdmin.Dialogs.XenDialogBase, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@ -31,15 +31,13 @@ namespace XenAdmin.Dialogs.CallHome
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CallHomeOverviewDialog));
this.buttonCancel = new System.Windows.Forms.Button();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.rubricLabel = new System.Windows.Forms.Label();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.poolsDataGridView = new XenAdmin.Controls.DataGridViewEx.DataGridViewEx();
this.PoolNameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.StatusColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.poolNameLabel = new System.Windows.Forms.Label();
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
this.poolDetailsPanel = new System.Windows.Forms.TableLayoutPanel();
this.healthCheckStatusPanel = new System.Windows.Forms.TableLayoutPanel();
this.scheduleLabel = new System.Windows.Forms.Label();
this.linkLabel2 = new System.Windows.Forms.LinkLabel();
@ -54,38 +52,42 @@ namespace XenAdmin.Dialogs.CallHome
this.previousUploadDateLabel = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.notEnrolledPanel = new System.Windows.Forms.TableLayoutPanel();
this.linkLabel3 = new System.Windows.Forms.LinkLabel();
this.enrollNowLinkLabel = new System.Windows.Forms.LinkLabel();
this.label6 = new System.Windows.Forms.Label();
this.tableLayoutPanel1.SuspendLayout();
this.buttonCancel = new System.Windows.Forms.Button();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
this.policyStatementLabel = new System.Windows.Forms.Label();
this.PolicyStatementLinkLabel = new System.Windows.Forms.LinkLabel();
this.rubricLabel = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.poolsDataGridView)).BeginInit();
this.tableLayoutPanel2.SuspendLayout();
this.tableLayoutPanel3.SuspendLayout();
this.poolDetailsPanel.SuspendLayout();
this.healthCheckStatusPanel.SuspendLayout();
this.previousUploadPanel.SuspendLayout();
this.notEnrolledPanel.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.flowLayoutPanel2.SuspendLayout();
this.SuspendLayout();
//
// buttonCancel
// splitContainer1
//
resources.ApplyResources(this.buttonCancel, "buttonCancel");
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
resources.ApplyResources(this.splitContainer1, "splitContainer1");
this.splitContainer1.Name = "splitContainer1";
//
// tableLayoutPanel1
// splitContainer1.Panel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.rubricLabel, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.poolsDataGridView, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 2);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.splitContainer1.Panel1.Controls.Add(this.poolsDataGridView);
resources.ApplyResources(this.splitContainer1.Panel1, "splitContainer1.Panel1");
//
// rubricLabel
// splitContainer1.Panel2
//
resources.ApplyResources(this.rubricLabel, "rubricLabel");
this.tableLayoutPanel1.SetColumnSpan(this.rubricLabel, 2);
this.rubricLabel.Name = "rubricLabel";
this.splitContainer1.Panel2.Controls.Add(this.tableLayoutPanel2);
resources.ApplyResources(this.splitContainer1.Panel2, "splitContainer1.Panel2");
//
// poolsDataGridView
//
@ -118,9 +120,10 @@ namespace XenAdmin.Dialogs.CallHome
//
// tableLayoutPanel2
//
this.tableLayoutPanel2.BackColor = System.Drawing.SystemColors.Window;
resources.ApplyResources(this.tableLayoutPanel2, "tableLayoutPanel2");
this.tableLayoutPanel2.Controls.Add(this.poolNameLabel, 0, 0);
this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel3, 0, 1);
this.tableLayoutPanel2.Controls.Add(this.poolDetailsPanel, 0, 1);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
//
// poolNameLabel
@ -129,13 +132,13 @@ namespace XenAdmin.Dialogs.CallHome
resources.ApplyResources(this.poolNameLabel, "poolNameLabel");
this.poolNameLabel.Name = "poolNameLabel";
//
// tableLayoutPanel3
// poolDetailsPanel
//
resources.ApplyResources(this.tableLayoutPanel3, "tableLayoutPanel3");
this.tableLayoutPanel2.SetColumnSpan(this.tableLayoutPanel3, 2);
this.tableLayoutPanel3.Controls.Add(this.healthCheckStatusPanel, 0, 0);
this.tableLayoutPanel3.Controls.Add(this.notEnrolledPanel, 0, 1);
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
resources.ApplyResources(this.poolDetailsPanel, "poolDetailsPanel");
this.tableLayoutPanel2.SetColumnSpan(this.poolDetailsPanel, 2);
this.poolDetailsPanel.Controls.Add(this.healthCheckStatusPanel, 0, 0);
this.poolDetailsPanel.Controls.Add(this.notEnrolledPanel, 0, 1);
this.poolDetailsPanel.Name = "poolDetailsPanel";
//
// healthCheckStatusPanel
//
@ -229,23 +232,62 @@ namespace XenAdmin.Dialogs.CallHome
// notEnrolledPanel
//
resources.ApplyResources(this.notEnrolledPanel, "notEnrolledPanel");
this.tableLayoutPanel3.SetColumnSpan(this.notEnrolledPanel, 2);
this.notEnrolledPanel.Controls.Add(this.linkLabel3, 0, 1);
this.poolDetailsPanel.SetColumnSpan(this.notEnrolledPanel, 2);
this.notEnrolledPanel.Controls.Add(this.enrollNowLinkLabel, 0, 1);
this.notEnrolledPanel.Controls.Add(this.label6, 0, 0);
this.notEnrolledPanel.Name = "notEnrolledPanel";
//
// linkLabel3
// enrollNowLinkLabel
//
resources.ApplyResources(this.linkLabel3, "linkLabel3");
this.linkLabel3.Name = "linkLabel3";
this.linkLabel3.TabStop = true;
this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked);
resources.ApplyResources(this.enrollNowLinkLabel, "enrollNowLinkLabel");
this.enrollNowLinkLabel.Name = "enrollNowLinkLabel";
this.enrollNowLinkLabel.TabStop = true;
this.enrollNowLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.enrollNowLinkLabel_LinkClicked);
//
// label6
//
resources.ApplyResources(this.label6, "label6");
this.label6.Name = "label6";
//
// buttonCancel
//
resources.ApplyResources(this.buttonCancel, "buttonCancel");
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
//
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel2, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.rubricLabel, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.splitContainer1, 0, 2);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// flowLayoutPanel2
//
resources.ApplyResources(this.flowLayoutPanel2, "flowLayoutPanel2");
this.flowLayoutPanel2.Controls.Add(this.policyStatementLabel);
this.flowLayoutPanel2.Controls.Add(this.PolicyStatementLinkLabel);
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
//
// policyStatementLabel
//
resources.ApplyResources(this.policyStatementLabel, "policyStatementLabel");
this.policyStatementLabel.Name = "policyStatementLabel";
//
// PolicyStatementLinkLabel
//
resources.ApplyResources(this.PolicyStatementLinkLabel, "PolicyStatementLinkLabel");
this.PolicyStatementLinkLabel.Name = "PolicyStatementLinkLabel";
this.PolicyStatementLinkLabel.TabStop = true;
//
// rubricLabel
//
resources.ApplyResources(this.rubricLabel, "rubricLabel");
this.rubricLabel.Name = "rubricLabel";
//
// CallHomeOverviewDialog
//
resources.ApplyResources(this, "$this");
@ -257,19 +299,25 @@ namespace XenAdmin.Dialogs.CallHome
this.Name = "CallHomeOverviewDialog";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.CallHomeOverviewDialog_FormClosed);
this.Load += new System.EventHandler(this.CallHomeOverview_Load);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.poolsDataGridView)).EndInit();
this.tableLayoutPanel2.ResumeLayout(false);
this.tableLayoutPanel2.PerformLayout();
this.tableLayoutPanel3.ResumeLayout(false);
this.tableLayoutPanel3.PerformLayout();
this.poolDetailsPanel.ResumeLayout(false);
this.poolDetailsPanel.PerformLayout();
this.healthCheckStatusPanel.ResumeLayout(false);
this.healthCheckStatusPanel.PerformLayout();
this.previousUploadPanel.ResumeLayout(false);
this.previousUploadPanel.PerformLayout();
this.notEnrolledPanel.ResumeLayout(false);
this.notEnrolledPanel.PerformLayout();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.flowLayoutPanel2.ResumeLayout(false);
this.flowLayoutPanel2.PerformLayout();
this.ResumeLayout(false);
}
@ -298,9 +346,13 @@ namespace XenAdmin.Dialogs.CallHome
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label scheduleLabel;
private System.Windows.Forms.TableLayoutPanel notEnrolledPanel;
private System.Windows.Forms.LinkLabel linkLabel3;
private System.Windows.Forms.LinkLabel enrollNowLinkLabel;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
private System.Windows.Forms.TableLayoutPanel poolDetailsPanel;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
private System.Windows.Forms.Label policyStatementLabel;
private System.Windows.Forms.LinkLabel PolicyStatementLinkLabel;
}
}

View File

@ -32,7 +32,10 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Windows.Forms;
using XenAdmin.Actions;
using XenAdmin.Core;
using XenAdmin.Dialogs.VMProtectionRecovery;
using XenAdmin.Network;
@ -61,13 +64,20 @@ namespace XenAdmin.Dialogs.CallHome
return;
}
Program.Invoke(this, () => RefreshGrid((List<DataGridViewRow>)e.Result));
}
private void RefreshGrid(List<DataGridViewRow> rows)
{
Program.AssertOnEventThread();
var selectedPool = currentSelected;
poolsDataGridView.SuspendLayout();
try
{
poolsDataGridView.Rows.Clear();
foreach (var row in (List<DataGridViewRow>)e.Result)
foreach (var row in rows)
{
if (poolsDataGridView.ColumnCount > 0)
{
@ -164,8 +174,7 @@ namespace XenAdmin.Dialogs.CallHome
currentSelected = null;
}
tableLayoutPanel2.Visible = (currentSelected != null);
//tableLayoutPanel1.ColumnStyles[1].Width = currentSelected == null ? 0 : 200;
poolDetailsPanel.Visible = (currentSelected != null);
}
private void RefreshDetailsPanel()
@ -229,7 +238,50 @@ namespace XenAdmin.Dialogs.CallHome
return;
var poolRow = (PoolRow)poolsDataGridView.SelectedRows[0];
Program.MainWindow.ShowPerConnectionWizard(poolRow.Pool.Connection, new CallHomeSettingsDialog(poolRow.Pool));
new CallHomeSettingsDialog(poolRow.Pool).ShowDialog(this);
}
public DialogResult ShowDialog(IWin32Window parent, List<IXenObject> selectedItems)
{
SelectPool(selectedItems);
return ShowDialog(parent);
}
public void RefreshView(List<IXenObject> selectedItems)
{
SelectPool(selectedItems);
LoadPools();
}
private void SelectPool(List<IXenObject> selectedItems)
{
IXenObject xo = selectedItems.Count > 0 ? selectedItems.FirstOrDefault() : null;
if (xo is Pool)
currentSelected = xo as Pool;
}
private void enrollNowLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
if (poolsDataGridView.SelectedRows.Count != 1 || !(poolsDataGridView.SelectedRows[0] is PoolRow))
return;
var poolRow = (PoolRow)poolsDataGridView.SelectedRows[0];
var callHomeSettings = poolRow.Pool.CallHomeSettings;
if (callHomeSettings.Status != CallHomeStatus.Enabled)
{
// try to enroll into call home with the default settings, if authentication is not required
var token = callHomeSettings.GetExistingUploadToken(poolRow.Pool.Connection);
if (!string.IsNullOrEmpty(token))
{
callHomeSettings.Status = CallHomeStatus.Enabled;
new SaveCallHomeSettingsAction(poolRow.Pool, callHomeSettings, token, false).RunAsync();
return;
}
new CallHomeEnrollNowDialog(poolRow.Pool).ShowDialog(this);
return;
}
new CallHomeSettingsDialog(poolRow.Pool).ShowDialog(this);
}
}
}

View File

@ -118,92 +118,20 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
<data name="splitContainer1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonCancel.Font" type="System.Drawing.Font, System.Drawing">
<data name="splitContainer1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="buttonCancel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>639, 395</value>
</data>
<data name="buttonCancel.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonCancel.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="buttonCancel.Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="&gt;&gt;buttonCancel.Name" xml:space="preserve">
<value>buttonCancel</value>
</data>
<data name="&gt;&gt;buttonCancel.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonCancel.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;buttonCancel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="rubricLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="rubricLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="rubricLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="rubricLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="rubricLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="rubricLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 3, 0</value>
</data>
<data name="rubricLabel.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 4</value>
</data>
<data name="rubricLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>699, 34</value>
</data>
<data name="rubricLabel.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="rubricLabel.Text" xml:space="preserve">
<value>Health Check will automatically upload a server status report to the Citrix Insight Services, based on a predefined schedule configured on your XenServer pools.</value>
</data>
<data name="&gt;&gt;rubricLabel.Name" xml:space="preserve">
<value>rubricLabel</value>
</data>
<data name="&gt;&gt;rubricLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rubricLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;rubricLabel.ZOrder" xml:space="preserve">
<value>0</value>
<data name="splitContainer1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 59</value>
</data>
<data name="PoolNameColumn.HeaderText" xml:space="preserve">
<value>Pool</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="PoolNameColumn.MinimumWidth" type="System.Int32, mscorlib">
<value>30</value>
</data>
@ -223,10 +151,10 @@
<value>Segoe UI, 9pt</value>
</data>
<data name="poolsDataGridView.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 37</value>
<value>0, 0</value>
</data>
<data name="poolsDataGridView.Size" type="System.Drawing.Size, System.Drawing">
<value>401, 337</value>
<value>408, 261</value>
</data>
<data name="poolsDataGridView.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
@ -238,10 +166,28 @@
<value>XenAdmin.Controls.DataGridViewEx.DataGridViewEx, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;poolsDataGridView.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
<value>splitContainer1.Panel1</value>
</data>
<data name="&gt;&gt;poolsDataGridView.ZOrder" xml:space="preserve">
<value>1</value>
<value>0</value>
</data>
<data name="splitContainer1.Panel1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel1.Name" xml:space="preserve">
<value>splitContainer1.Panel1</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel1.Type" xml:space="preserve">
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel1.Parent" xml:space="preserve">
<value>splitContainer1</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="splitContainer1.Panel1MinSize" type="System.Int32, mscorlib">
<value>300</value>
</data>
<data name="tableLayoutPanel2.CellBorderStyle" type="System.Windows.Forms.TableLayoutPanelCellBorderStyle, System.Windows.Forms">
<value>Single</value>
@ -265,7 +211,7 @@
<value>0, 2, 0, 4</value>
</data>
<data name="poolNameLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>281, 21</value>
<value>215, 21</value>
</data>
<data name="poolNameLabel.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
@ -285,13 +231,13 @@
<data name="&gt;&gt;poolNameLabel.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel3.AutoSize" type="System.Boolean, mscorlib">
<data name="poolDetailsPanel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="tableLayoutPanel3.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<data name="poolDetailsPanel.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="tableLayoutPanel3.ColumnCount" type="System.Int32, mscorlib">
<data name="poolDetailsPanel.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="healthCheckStatusPanel.AutoSize" type="System.Boolean, mscorlib">
@ -322,7 +268,7 @@
<value>3, 3, 3, 3</value>
</data>
<data name="scheduleLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>269, 15</value>
<value>203, 15</value>
</data>
<data name="scheduleLabel.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
@ -397,7 +343,7 @@
<value>3, 3, 3, 3</value>
</data>
<data name="issuesLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>269, 15</value>
<value>203, 15</value>
</data>
<data name="issuesLabel.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -721,7 +667,7 @@
<value>2</value>
</data>
<data name="previousUploadPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>269, 42</value>
<value>203, 42</value>
</data>
<data name="previousUploadPanel.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
@ -757,7 +703,7 @@
<value>8</value>
</data>
<data name="healthCheckStatusPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>275, 195</value>
<value>209, 195</value>
</data>
<data name="healthCheckStatusPanel.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
@ -769,7 +715,7 @@
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;healthCheckStatusPanel.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
<value>poolDetailsPanel</value>
</data>
<data name="&gt;&gt;healthCheckStatusPanel.ZOrder" xml:space="preserve">
<value>0</value>
@ -786,40 +732,40 @@
<data name="notEnrolledPanel.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="linkLabel3.AutoSize" type="System.Boolean, mscorlib">
<data name="enrollNowLinkLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="linkLabel3.Font" type="System.Drawing.Font, System.Drawing">
<data name="enrollNowLinkLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="linkLabel3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<data name="enrollNowLinkLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="linkLabel3.Location" type="System.Drawing.Point, System.Drawing">
<data name="enrollNowLinkLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 24</value>
</data>
<data name="linkLabel3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<data name="enrollNowLinkLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="linkLabel3.Size" type="System.Drawing.Size, System.Drawing">
<data name="enrollNowLinkLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 15</value>
</data>
<data name="linkLabel3.TabIndex" type="System.Int32, mscorlib">
<data name="enrollNowLinkLabel.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="linkLabel3.Text" xml:space="preserve">
<data name="enrollNowLinkLabel.Text" xml:space="preserve">
<value>Enroll now</value>
</data>
<data name="&gt;&gt;linkLabel3.Name" xml:space="preserve">
<value>linkLabel3</value>
<data name="&gt;&gt;enrollNowLinkLabel.Name" xml:space="preserve">
<value>enrollNowLinkLabel</value>
</data>
<data name="&gt;&gt;linkLabel3.Type" xml:space="preserve">
<data name="&gt;&gt;enrollNowLinkLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;linkLabel3.Parent" xml:space="preserve">
<data name="&gt;&gt;enrollNowLinkLabel.Parent" xml:space="preserve">
<value>notEnrolledPanel</value>
</data>
<data name="&gt;&gt;linkLabel3.ZOrder" xml:space="preserve">
<data name="&gt;&gt;enrollNowLinkLabel.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
@ -841,7 +787,7 @@
<value>3, 3, 3, 3</value>
</data>
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
<value>269, 15</value>
<value>203, 15</value>
</data>
<data name="label6.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -874,7 +820,7 @@
<value>2</value>
</data>
<data name="notEnrolledPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>275, 100</value>
<value>209, 42</value>
</data>
<data name="notEnrolledPanel.TabIndex" type="System.Int32, mscorlib">
<value>19</value>
@ -886,45 +832,45 @@
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;notEnrolledPanel.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
<value>poolDetailsPanel</value>
</data>
<data name="&gt;&gt;notEnrolledPanel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="notEnrolledPanel.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="linkLabel3" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label6" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="enrollNowLinkLabel" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label6" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="tableLayoutPanel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<data name="poolDetailsPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanel3.Font" type="System.Drawing.Font, System.Drawing">
<data name="poolDetailsPanel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="tableLayoutPanel3.Location" type="System.Drawing.Point, System.Drawing">
<data name="poolDetailsPanel.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 26</value>
</data>
<data name="tableLayoutPanel3.RowCount" type="System.Int32, mscorlib">
<data name="poolDetailsPanel.RowCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel3.Size" type="System.Drawing.Size, System.Drawing">
<value>281, 307</value>
<data name="poolDetailsPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>215, 231</value>
</data>
<data name="tableLayoutPanel3.TabIndex" type="System.Int32, mscorlib">
<data name="poolDetailsPanel.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
</data>
<data name="&gt;&gt;tableLayoutPanel3.Name" xml:space="preserve">
<value>tableLayoutPanel3</value>
<data name="&gt;&gt;poolDetailsPanel.Name" xml:space="preserve">
<value>poolDetailsPanel</value>
</data>
<data name="&gt;&gt;tableLayoutPanel3.Type" xml:space="preserve">
<data name="&gt;&gt;poolDetailsPanel.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel3.Parent" xml:space="preserve">
<data name="&gt;&gt;poolDetailsPanel.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel3.ZOrder" xml:space="preserve">
<data name="&gt;&gt;poolDetailsPanel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel3.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<data name="poolDetailsPanel.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="healthCheckStatusPanel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="notEnrolledPanel" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="tableLayoutPanel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
@ -934,13 +880,13 @@
<value>Segoe UI, 9pt</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>410, 37</value>
<value>0, 0</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>289, 337</value>
<value>223, 261</value>
</data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -952,13 +898,238 @@
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
<value>splitContainer1.Panel2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.ZOrder" xml:space="preserve">
<value>2</value>
<value>0</value>
</data>
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="poolNameLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutPanel3" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,Percent,75" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="poolNameLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="poolDetailsPanel" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,Percent,75,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="splitContainer1.Panel2.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel2.Name" xml:space="preserve">
<value>splitContainer1.Panel2</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel2.Type" xml:space="preserve">
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel2.Parent" xml:space="preserve">
<value>splitContainer1</value>
</data>
<data name="&gt;&gt;splitContainer1.Panel2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="splitContainer1.Panel2MinSize" type="System.Int32, mscorlib">
<value>220</value>
</data>
<data name="splitContainer1.Size" type="System.Drawing.Size, System.Drawing">
<value>635, 261</value>
</data>
<data name="splitContainer1.SplitterDistance" type="System.Int32, mscorlib">
<value>408</value>
</data>
<data name="splitContainer1.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="&gt;&gt;splitContainer1.Name" xml:space="preserve">
<value>splitContainer1</value>
</data>
<data name="&gt;&gt;splitContainer1.Type" xml:space="preserve">
<value>System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;splitContainer1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;splitContainer1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="buttonCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="buttonCancel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="buttonCancel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>578, 341</value>
</data>
<data name="buttonCancel.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="buttonCancel.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="buttonCancel.Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="&gt;&gt;buttonCancel.Name" xml:space="preserve">
<value>buttonCancel</value>
</data>
<data name="&gt;&gt;buttonCancel.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonCancel.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;buttonCancel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="flowLayoutPanel2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="flowLayoutPanel2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="policyStatementLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="policyStatementLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="policyStatementLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="policyStatementLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="policyStatementLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 3</value>
</data>
<data name="policyStatementLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>182, 15</value>
</data>
<data name="policyStatementLabel.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="policyStatementLabel.Text" xml:space="preserve">
<value>See what sort of data is collected:</value>
</data>
<data name="&gt;&gt;policyStatementLabel.Name" xml:space="preserve">
<value>policyStatementLabel</value>
</data>
<data name="&gt;&gt;policyStatementLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;policyStatementLabel.Parent" xml:space="preserve">
<value>flowLayoutPanel2</value>
</data>
<data name="&gt;&gt;policyStatementLabel.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="PolicyStatementLinkLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="PolicyStatementLinkLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="PolicyStatementLinkLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="PolicyStatementLinkLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>185, 0</value>
</data>
<data name="PolicyStatementLinkLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 15</value>
</data>
<data name="PolicyStatementLinkLabel.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="PolicyStatementLinkLabel.Text" xml:space="preserve">
<value>Policy statement</value>
</data>
<data name="&gt;&gt;PolicyStatementLinkLabel.Name" xml:space="preserve">
<value>PolicyStatementLinkLabel</value>
</data>
<data name="&gt;&gt;PolicyStatementLinkLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;PolicyStatementLinkLabel.Parent" xml:space="preserve">
<value>flowLayoutPanel2</value>
</data>
<data name="&gt;&gt;PolicyStatementLinkLabel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="flowLayoutPanel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="flowLayoutPanel2.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="flowLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 34</value>
</data>
<data name="flowLayoutPanel2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 4</value>
</data>
<data name="flowLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>641, 18</value>
</data>
<data name="flowLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.Name" xml:space="preserve">
<value>flowLayoutPanel2</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.Type" xml:space="preserve">
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="rubricLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="rubricLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="rubricLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="rubricLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="rubricLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="rubricLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 3, 0</value>
</data>
<data name="rubricLabel.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 4</value>
</data>
<data name="rubricLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>638, 34</value>
</data>
<data name="rubricLabel.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="rubricLabel.Text" xml:space="preserve">
<value>Health Check will automatically upload a server status report to the Citrix Insight Services, based on a predefined schedule configured on your XenServer pools.</value>
</data>
<data name="&gt;&gt;rubricLabel.Name" xml:space="preserve">
<value>rubricLabel</value>
</data>
<data name="&gt;&gt;rubricLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rubricLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;rubricLabel.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
@ -970,7 +1141,7 @@
<value>3</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>702, 377</value>
<value>641, 323</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>68</value>
@ -988,7 +1159,7 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="rubricLabel" Row="1" RowSpan="1" Column="0" ColumnSpan="2" /&gt;&lt;Control Name="poolsDataGridView" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutPanel2" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100,Absolute,295" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="flowLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="rubricLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="splitContainer1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@ -997,7 +1168,7 @@
<value>96, 96</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>721, 428</value>
<value>670, 384</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
@ -1428,7 +1599,7 @@
</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>580, 320</value>
<value>600, 400</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Health Check Overview</value>

View File

@ -111,7 +111,8 @@ namespace XenAdmin.Dialogs.CallHome
timeOfDayComboBox.SelectedValue = callHomeSettings.TimeOfDay;
existingAuthenticationRadioButton.Enabled = existingAuthenticationRadioButton.Checked = !authenticationRequired;
newAuthenticationRadioButton.Checked = authenticationRequired;
authenticateButton.Enabled = false;
callHomeAuthenticationPanel1.Enabled = newAuthenticationRadioButton.Checked;
callHomeAuthenticationPanel1.Pool = pool;
}
private bool ChangesMade()
@ -133,62 +134,12 @@ namespace XenAdmin.Dialogs.CallHome
private void UpdateButtons()
{
okButton.Enabled = !enrollmentCheckBox.Checked || !authenticationRequired || authenticated;
okButton.Enabled = !enrollmentCheckBox.Checked || authenticated;
okButton.Text = callHomeSettings.Status == CallHomeStatus.Enabled || !enrollmentCheckBox.Checked
? Messages.OK
: Messages.CALLHOME_ENROLLMENT_CONFIRMATION_BUTTON_LABEL;
}
private void credentials_TextChanged(object sender, EventArgs e)
{
authenticateButton.Enabled = !string.IsNullOrEmpty(usernameTextBox.Text.Trim()) &&
!string.IsNullOrEmpty(passwordTextBox.Text.Trim());
newAuthenticationRadioButton.Checked = !string.IsNullOrEmpty(usernameTextBox.Text) ||
!string.IsNullOrEmpty(passwordTextBox.Text);
}
private void authenticateButton_Click(object sender, EventArgs e)
{
HideAuthenticationStatusControls();
spinnerIcon.StartSpinning();
var action = new CallHomeAuthenticationAction(pool, usernameTextBox.Text.Trim(), passwordTextBox.Text.Trim(),
Registry.CallHomeIdentityTokenDomainName, Registry.CallHomeUploadGrantTokenDomainName, Registry.CallHomeUploadTokenDomainName, false);
action.Completed += CallHomeAuthenticationAction_Completed;
authenticateButton.Enabled = false;
action.RunAsync();
}
private void CallHomeAuthenticationAction_Completed(ActionBase action)
{
Program.Invoke(this, delegate
{
if (action.Succeeded)
{
spinnerIcon.DisplaySucceededImage();
authenticated = true;
}
else
{
spinnerIcon.Visible = false;
statusPictureBox.Visible = statusLabel.Visible = true;
statusLabel.Text = action.Exception != null
? action.Exception.Message
: Messages.ERROR_UNKNOWN;
}
authenticateButton.Enabled = true;
UpdateButtons();
});
}
private void HideAuthenticationStatusControls()
{
statusPictureBox.Visible = statusLabel.Visible = false;
}
private void okButton_Click(object sender, EventArgs e)
{
if (ChangesMade())
@ -216,5 +167,25 @@ namespace XenAdmin.Dialogs.CallHome
{
UpdateButtons();
}
private void callHomeAuthenticationPanel1_AuthenticationChanged(object sender, EventArgs e)
{
Program.Invoke(this, delegate
{
if (callHomeAuthenticationPanel1.Authenticated)
{
authenticated = true;
authenticationToken = pool.CallHomeSettings.GetExistingUploadToken(pool.Connection);
}
UpdateButtons();
});
}
private void newAuthenticationRadioButton_CheckedChanged(object sender, EventArgs e)
{
callHomeAuthenticationPanel1.Enabled = newAuthenticationRadioButton.Checked;
authenticated = existingAuthenticationRadioButton.Checked || callHomeAuthenticationPanel1.Authenticated;
UpdateButtons();
}
}
}

View File

@ -32,11 +32,6 @@ namespace XenAdmin.Dialogs.CallHome
this.okButton = new System.Windows.Forms.Button();
this.cancelButton = new System.Windows.Forms.Button();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
this.passwordTextBox = new System.Windows.Forms.TextBox();
this.usernameTextBox = new System.Windows.Forms.TextBox();
this.passwordLabel = new System.Windows.Forms.Label();
this.usernameLabel = new System.Windows.Forms.Label();
this.authenticationRubricLabel = new System.Windows.Forms.Label();
this.authenticationLabel = new System.Windows.Forms.Label();
this.timeOfDayComboBox = new System.Windows.Forms.ComboBox();
@ -55,18 +50,11 @@ namespace XenAdmin.Dialogs.CallHome
this.dayOfWeekComboBox = new System.Windows.Forms.ComboBox();
this.existingAuthenticationRadioButton = new System.Windows.Forms.RadioButton();
this.newAuthenticationRadioButton = new System.Windows.Forms.RadioButton();
this.authenticationStatusTable = new System.Windows.Forms.TableLayoutPanel();
this.spinnerIcon = new XenAdmin.Controls.SpinnerIcon();
this.authenticateButton = new System.Windows.Forms.Button();
this.statusPictureBox = new System.Windows.Forms.PictureBox();
this.statusLabel = new XenAdmin.Controls.Common.AutoHeightLabel();
this.callHomeAuthenticationPanel1 = new XenAdmin.Controls.CallHomeAuthenticationPanel();
this.tableLayoutPanel1.SuspendLayout();
this.flowLayoutPanel2.SuspendLayout();
this.flowLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.frequencyNumericBox)).BeginInit();
this.authenticationStatusTable.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.spinnerIcon)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.statusPictureBox)).BeginInit();
this.SuspendLayout();
//
// okButton
@ -87,11 +75,6 @@ namespace XenAdmin.Dialogs.CallHome
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel3, 2, 15);
this.tableLayoutPanel1.Controls.Add(this.passwordTextBox, 3, 14);
this.tableLayoutPanel1.Controls.Add(this.usernameTextBox, 3, 13);
this.tableLayoutPanel1.Controls.Add(this.passwordLabel, 2, 14);
this.tableLayoutPanel1.Controls.Add(this.usernameLabel, 2, 13);
this.tableLayoutPanel1.Controls.Add(this.authenticationRubricLabel, 1, 10);
this.tableLayoutPanel1.Controls.Add(this.authenticationLabel, 0, 9);
this.tableLayoutPanel1.Controls.Add(this.timeOfDayComboBox, 3, 8);
@ -108,40 +91,9 @@ namespace XenAdmin.Dialogs.CallHome
this.tableLayoutPanel1.Controls.Add(this.dayOfWeekComboBox, 3, 7);
this.tableLayoutPanel1.Controls.Add(this.existingAuthenticationRadioButton, 1, 11);
this.tableLayoutPanel1.Controls.Add(this.newAuthenticationRadioButton, 1, 12);
this.tableLayoutPanel1.Controls.Add(this.authenticationStatusTable, 2, 16);
this.tableLayoutPanel1.Controls.Add(this.callHomeAuthenticationPanel1, 2, 17);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
//
// flowLayoutPanel3
//
resources.ApplyResources(this.flowLayoutPanel3, "flowLayoutPanel3");
this.tableLayoutPanel1.SetColumnSpan(this.flowLayoutPanel3, 3);
this.flowLayoutPanel3.Name = "flowLayoutPanel3";
//
// passwordTextBox
//
this.tableLayoutPanel1.SetColumnSpan(this.passwordTextBox, 2);
resources.ApplyResources(this.passwordTextBox, "passwordTextBox");
this.passwordTextBox.Name = "passwordTextBox";
this.passwordTextBox.UseSystemPasswordChar = true;
this.passwordTextBox.TextChanged += new System.EventHandler(this.credentials_TextChanged);
//
// usernameTextBox
//
this.tableLayoutPanel1.SetColumnSpan(this.usernameTextBox, 2);
resources.ApplyResources(this.usernameTextBox, "usernameTextBox");
this.usernameTextBox.Name = "usernameTextBox";
this.usernameTextBox.TextChanged += new System.EventHandler(this.credentials_TextChanged);
//
// passwordLabel
//
resources.ApplyResources(this.passwordLabel, "passwordLabel");
this.passwordLabel.Name = "passwordLabel";
//
// usernameLabel
//
resources.ApplyResources(this.usernameLabel, "usernameLabel");
this.usernameLabel.Name = "usernameLabel";
//
// authenticationRubricLabel
//
resources.ApplyResources(this.authenticationRubricLabel, "authenticationRubricLabel");
@ -275,52 +227,25 @@ namespace XenAdmin.Dialogs.CallHome
this.newAuthenticationRadioButton.Name = "newAuthenticationRadioButton";
this.newAuthenticationRadioButton.TabStop = true;
this.newAuthenticationRadioButton.UseVisualStyleBackColor = true;
this.newAuthenticationRadioButton.CheckedChanged += new System.EventHandler(this.newAuthenticationRadioButton_CheckedChanged);
//
// authenticationStatusTable
// callHomeAuthenticationPanel1
//
resources.ApplyResources(this.authenticationStatusTable, "authenticationStatusTable");
this.tableLayoutPanel1.SetColumnSpan(this.authenticationStatusTable, 3);
this.authenticationStatusTable.Controls.Add(this.spinnerIcon, 0, 0);
this.authenticationStatusTable.Controls.Add(this.authenticateButton, 0, 0);
this.authenticationStatusTable.Controls.Add(this.statusPictureBox, 2, 0);
this.authenticationStatusTable.Controls.Add(this.statusLabel, 3, 0);
this.authenticationStatusTable.Name = "authenticationStatusTable";
resources.ApplyResources(this.callHomeAuthenticationPanel1, "callHomeAuthenticationPanel1");
this.callHomeAuthenticationPanel1.BackColor = System.Drawing.Color.Transparent;
this.tableLayoutPanel1.SetColumnSpan(this.callHomeAuthenticationPanel1, 3);
this.callHomeAuthenticationPanel1.Name = "callHomeAuthenticationPanel1";
this.callHomeAuthenticationPanel1.Pool = null;
this.callHomeAuthenticationPanel1.AuthenticationChanged += new System.EventHandler(this.callHomeAuthenticationPanel1_AuthenticationChanged);
//
// spinnerIcon
//
resources.ApplyResources(this.spinnerIcon, "spinnerIcon");
this.spinnerIcon.Name = "spinnerIcon";
this.spinnerIcon.SucceededImage = global::XenAdmin.Properties.Resources._000_Tick_h32bit_16;
this.spinnerIcon.TabStop = false;
//
// authenticateButton
//
resources.ApplyResources(this.authenticateButton, "authenticateButton");
this.authenticateButton.Name = "authenticateButton";
this.authenticateButton.UseVisualStyleBackColor = true;
this.authenticateButton.Click += new System.EventHandler(this.authenticateButton_Click);
//
// statusPictureBox
//
resources.ApplyResources(this.statusPictureBox, "statusPictureBox");
this.statusPictureBox.Image = global::XenAdmin.Properties.Resources._000_error_h32bit_16;
this.statusPictureBox.Name = "statusPictureBox";
this.statusPictureBox.TabStop = false;
//
// statusLabel
//
resources.ApplyResources(this.statusLabel, "statusLabel");
this.statusLabel.ForeColor = System.Drawing.Color.Red;
this.statusLabel.Name = "statusLabel";
//
// CallHomeEnrollmentDialog
// CallHomeSettingsDialog
//
this.AcceptButton = this.okButton;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.CancelButton = this.cancelButton;
this.Controls.Add(this.tableLayoutPanel1);
this.Name = "CallHomeEnrollmentDialog";
this.Name = "CallHomeSettingsDialog";
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.flowLayoutPanel2.ResumeLayout(false);
@ -328,10 +253,6 @@ namespace XenAdmin.Dialogs.CallHome
this.flowLayoutPanel1.ResumeLayout(false);
this.flowLayoutPanel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.frequencyNumericBox)).EndInit();
this.authenticationStatusTable.ResumeLayout(false);
this.authenticationStatusTable.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.spinnerIcon)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.statusPictureBox)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -358,17 +279,8 @@ namespace XenAdmin.Dialogs.CallHome
private System.Windows.Forms.Label dayOfweekLabel;
private System.Windows.Forms.ComboBox dayOfWeekComboBox;
private System.Windows.Forms.Label authenticationRubricLabel;
private System.Windows.Forms.Label passwordLabel;
private System.Windows.Forms.Label usernameLabel;
private System.Windows.Forms.RadioButton existingAuthenticationRadioButton;
private System.Windows.Forms.RadioButton newAuthenticationRadioButton;
private System.Windows.Forms.TextBox passwordTextBox;
private System.Windows.Forms.TextBox usernameTextBox;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
private System.Windows.Forms.Button authenticateButton;
private System.Windows.Forms.TableLayoutPanel authenticationStatusTable;
private System.Windows.Forms.PictureBox statusPictureBox;
private Controls.Common.AutoHeightLabel statusLabel;
private Controls.SpinnerIcon spinnerIcon;
private Controls.CallHomeAuthenticationPanel callHomeAuthenticationPanel1;
}
}

View File

@ -133,7 +133,7 @@
<value>NoControl</value>
</data>
<data name="okButton.Location" type="System.Drawing.Point, System.Drawing">
<value>409, 3</value>
<value>339, 3</value>
</data>
<data name="okButton.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 25</value>
@ -166,7 +166,7 @@
<value>NoControl</value>
</data>
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
<value>490, 3</value>
<value>420, 3</value>
</data>
<data name="cancelButton.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 25</value>
@ -195,174 +195,6 @@
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="flowLayoutPanel3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="flowLayoutPanel3.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="flowLayoutPanel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="flowLayoutPanel3.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="flowLayoutPanel3.Location" type="System.Drawing.Point, System.Drawing">
<value>48, 390</value>
</data>
<data name="flowLayoutPanel3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="flowLayoutPanel3.Size" type="System.Drawing.Size, System.Drawing">
<value>528, 1</value>
</data>
<data name="flowLayoutPanel3.TabIndex" type="System.Int32, mscorlib">
<value>31</value>
</data>
<data name="&gt;&gt;flowLayoutPanel3.Name" xml:space="preserve">
<value>flowLayoutPanel3</value>
</data>
<data name="&gt;&gt;flowLayoutPanel3.Type" xml:space="preserve">
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;flowLayoutPanel3.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;flowLayoutPanel3.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="passwordTextBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="passwordTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>125, 364</value>
</data>
<data name="passwordTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 23</value>
</data>
<data name="passwordTextBox.TabIndex" type="System.Int32, mscorlib">
<value>30</value>
</data>
<data name="&gt;&gt;passwordTextBox.Name" xml:space="preserve">
<value>passwordTextBox</value>
</data>
<data name="&gt;&gt;passwordTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;passwordTextBox.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;passwordTextBox.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="usernameTextBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="usernameTextBox.Location" type="System.Drawing.Point, System.Drawing">
<value>125, 335</value>
</data>
<data name="usernameTextBox.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 23</value>
</data>
<data name="usernameTextBox.TabIndex" type="System.Int32, mscorlib">
<value>29</value>
</data>
<data name="&gt;&gt;usernameTextBox.Name" xml:space="preserve">
<value>usernameTextBox</value>
</data>
<data name="&gt;&gt;usernameTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;usernameTextBox.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;usernameTextBox.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="passwordLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="passwordLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="passwordLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="passwordLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="passwordLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>48, 361</value>
</data>
<data name="passwordLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="passwordLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>74, 29</value>
</data>
<data name="passwordLabel.TabIndex" type="System.Int32, mscorlib">
<value>28</value>
</data>
<data name="passwordLabel.Text" xml:space="preserve">
<value>&amp;Password:</value>
</data>
<data name="passwordLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;passwordLabel.Name" xml:space="preserve">
<value>passwordLabel</value>
</data>
<data name="&gt;&gt;passwordLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;passwordLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;passwordLabel.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="usernameLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="usernameLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="usernameLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="usernameLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="usernameLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>48, 332</value>
</data>
<data name="usernameLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="usernameLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>74, 29</value>
</data>
<data name="usernameLabel.TabIndex" type="System.Int32, mscorlib">
<value>27</value>
</data>
<data name="usernameLabel.Text" xml:space="preserve">
<value>&amp;Username:</value>
</data>
<data name="usernameLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="&gt;&gt;usernameLabel.Name" xml:space="preserve">
<value>usernameLabel</value>
</data>
<data name="&gt;&gt;usernameLabel.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;usernameLabel.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;usernameLabel.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="authenticationRubricLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@ -382,7 +214,7 @@
<value>0, 0, 0, 4</value>
</data>
<data name="authenticationRubricLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>548, 45</value>
<value>478, 45</value>
</data>
<data name="authenticationRubricLabel.TabIndex" type="System.Int32, mscorlib">
<value>24</value>
@ -403,7 +235,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;authenticationRubricLabel.ZOrder" xml:space="preserve">
<value>5</value>
<value>0</value>
</data>
<data name="authenticationLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -427,7 +259,7 @@
<value>0, 6, 0, 4</value>
</data>
<data name="authenticationLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>568, 25</value>
<value>498, 25</value>
</data>
<data name="authenticationLabel.TabIndex" type="System.Int32, mscorlib">
<value>23</value>
@ -445,7 +277,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;authenticationLabel.ZOrder" xml:space="preserve">
<value>6</value>
<value>1</value>
</data>
<data name="timeOfDayComboBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
@ -469,7 +301,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;timeOfDayComboBox.ZOrder" xml:space="preserve">
<value>7</value>
<value>2</value>
</data>
<data name="timeOfDayLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -511,7 +343,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;timeOfDayLabel.ZOrder" xml:space="preserve">
<value>8</value>
<value>3</value>
</data>
<data name="dayOfweekLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -553,7 +385,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;dayOfweekLabel.ZOrder" xml:space="preserve">
<value>9</value>
<value>4</value>
</data>
<data name="weeksLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -574,7 +406,7 @@
<value>0, 0, 0, 0</value>
</data>
<data name="weeksLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>394, 29</value>
<value>324, 29</value>
</data>
<data name="weeksLabel.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
@ -595,7 +427,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;weeksLabel.ZOrder" xml:space="preserve">
<value>10</value>
<value>5</value>
</data>
<data name="frequencyLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -637,7 +469,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;frequencyLabel.ZOrder" xml:space="preserve">
<value>11</value>
<value>6</value>
</data>
<data name="flowLayoutPanel2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -727,7 +559,7 @@
<value>0, 0, 0, 4</value>
</data>
<data name="flowLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>568, 18</value>
<value>498, 18</value>
</data>
<data name="flowLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
@ -742,7 +574,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.ZOrder" xml:space="preserve">
<value>12</value>
<value>7</value>
</data>
<data name="scheduleLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -766,7 +598,7 @@
<value>0, 0, 0, 4</value>
</data>
<data name="scheduleLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>568, 19</value>
<value>498, 19</value>
</data>
<data name="scheduleLabel.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
@ -784,7 +616,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;scheduleLabel.ZOrder" xml:space="preserve">
<value>13</value>
<value>8</value>
</data>
<data name="rubricLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -805,7 +637,7 @@
<value>0, 0, 0, 3</value>
</data>
<data name="rubricLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>568, 30</value>
<value>498, 30</value>
</data>
<data name="rubricLabel.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@ -823,7 +655,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;rubricLabel.ZOrder" xml:space="preserve">
<value>14</value>
<value>9</value>
</data>
<data name="flowLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -841,13 +673,13 @@
<value>Segoe UI, 9pt</value>
</data>
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 423</value>
<value>8, 433</value>
</data>
<data name="flowLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>568, 31</value>
<value>498, 31</value>
</data>
<data name="flowLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
@ -862,7 +694,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;flowLayoutPanel1.ZOrder" xml:space="preserve">
<value>15</value>
<value>10</value>
</data>
<data name="enrollmentCheckBox.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -898,7 +730,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;enrollmentCheckBox.ZOrder" xml:space="preserve">
<value>16</value>
<value>11</value>
</data>
<data name="frequencyNumericBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
@ -922,7 +754,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;frequencyNumericBox.ZOrder" xml:space="preserve">
<value>17</value>
<value>12</value>
</data>
<data name="dayOfWeekComboBox.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
@ -946,7 +778,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;dayOfWeekComboBox.ZOrder" xml:space="preserve">
<value>18</value>
<value>13</value>
</data>
<data name="existingAuthenticationRadioButton.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -979,7 +811,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;existingAuthenticationRadioButton.ZOrder" xml:space="preserve">
<value>19</value>
<value>14</value>
</data>
<data name="newAuthenticationRadioButton.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -1012,199 +844,34 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;newAuthenticationRadioButton.ZOrder" xml:space="preserve">
<value>20</value>
</data>
<data name="authenticationStatusTable.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="authenticationStatusTable.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="authenticationStatusTable.ColumnCount" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="spinnerIcon.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="spinnerIcon.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="spinnerIcon.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="spinnerIcon.Location" type="System.Drawing.Point, System.Drawing">
<value>94, 7</value>
</data>
<data name="spinnerIcon.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 0, 3, 0</value>
</data>
<data name="spinnerIcon.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="spinnerIcon.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>Zoom</value>
</data>
<data name="spinnerIcon.TabIndex" type="System.Int32, mscorlib">
<value>117</value>
</data>
<data name="spinnerIcon.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;spinnerIcon.Name" xml:space="preserve">
<value>spinnerIcon</value>
</data>
<data name="&gt;&gt;spinnerIcon.Type" xml:space="preserve">
<value>XenAdmin.Controls.SpinnerIcon, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;spinnerIcon.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;spinnerIcon.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="authenticateButton.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="authenticateButton.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="authenticateButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="authenticateButton.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="authenticateButton.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 25</value>
</data>
<data name="authenticateButton.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="authenticateButton.Text" xml:space="preserve">
<value>&amp;Authenticate</value>
<data name="callHomeAuthenticationPanel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="&gt;&gt;authenticateButton.Name" xml:space="preserve">
<value>authenticateButton</value>
</data>
<data name="&gt;&gt;authenticateButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;authenticateButton.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;authenticateButton.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="statusPictureBox.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
</data>
<data name="statusPictureBox.Font" type="System.Drawing.Font, System.Drawing">
<data name="callHomeAuthenticationPanel1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="statusPictureBox.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
<data name="callHomeAuthenticationPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>51, 335</value>
</data>
<data name="statusPictureBox.Location" type="System.Drawing.Point, System.Drawing">
<value>113, 7</value>
<data name="callHomeAuthenticationPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>194, 95</value>
</data>
<data name="statusPictureBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
<data name="callHomeAuthenticationPanel1.TabIndex" type="System.Int32, mscorlib">
<value>27</value>
</data>
<data name="statusPictureBox.Size" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
<data name="&gt;&gt;callHomeAuthenticationPanel1.Name" xml:space="preserve">
<value>callHomeAuthenticationPanel1</value>
</data>
<data name="statusPictureBox.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
<data name="&gt;&gt;callHomeAuthenticationPanel1.Type" xml:space="preserve">
<value>XenAdmin.Controls.CallHomeAuthenticationPanel, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="statusPictureBox.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="statusPictureBox.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;statusPictureBox.Name" xml:space="preserve">
<value>statusPictureBox</value>
</data>
<data name="&gt;&gt;statusPictureBox.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;statusPictureBox.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;statusPictureBox.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="statusLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="statusLabel.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="statusLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="statusLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>132, 0</value>
</data>
<data name="statusLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>387, 31</value>
</data>
<data name="statusLabel.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="statusLabel.Text" xml:space="preserve">
<value>Error</value>
</data>
<data name="statusLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="statusLabel.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;statusLabel.Name" xml:space="preserve">
<value>statusLabel</value>
</data>
<data name="&gt;&gt;statusLabel.Type" xml:space="preserve">
<value>XenAdmin.Controls.Common.AutoHeightLabel, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;statusLabel.Parent" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;statusLabel.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="authenticationStatusTable.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="authenticationStatusTable.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
</data>
<data name="authenticationStatusTable.Location" type="System.Drawing.Point, System.Drawing">
<value>51, 393</value>
</data>
<data name="authenticationStatusTable.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="authenticationStatusTable.Size" type="System.Drawing.Size, System.Drawing">
<value>522, 31</value>
</data>
<data name="authenticationStatusTable.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.Name" xml:space="preserve">
<value>authenticationStatusTable</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.Parent" xml:space="preserve">
<data name="&gt;&gt;callHomeAuthenticationPanel1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;authenticationStatusTable.ZOrder" xml:space="preserve">
<value>21</value>
</data>
<data name="authenticationStatusTable.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="spinnerIcon" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="authenticateButton" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="statusPictureBox" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="statusLabel" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
<data name="&gt;&gt;callHomeAuthenticationPanel1.ZOrder" xml:space="preserve">
<value>16</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -1222,7 +889,7 @@
<value>19</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>584, 462</value>
<value>514, 467</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -1240,7 +907,7 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="flowLayoutPanel3" Row="15" RowSpan="1" Column="2" ColumnSpan="3" /&gt;&lt;Control Name="passwordTextBox" Row="14" RowSpan="1" Column="3" ColumnSpan="2" /&gt;&lt;Control Name="usernameTextBox" Row="13" RowSpan="1" Column="3" ColumnSpan="2" /&gt;&lt;Control Name="passwordLabel" Row="14" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="usernameLabel" Row="13" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="authenticationRubricLabel" Row="10" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="authenticationLabel" Row="9" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="timeOfDayComboBox" Row="8" RowSpan="1" Column="3" ColumnSpan="2" /&gt;&lt;Control Name="timeOfDayLabel" Row="8" RowSpan="1" Column="1" ColumnSpan="2" /&gt;&lt;Control Name="dayOfweekLabel" Row="7" RowSpan="1" Column="1" ColumnSpan="2" /&gt;&lt;Control Name="weeksLabel" Row="6" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="frequencyLabel" Row="6" RowSpan="1" Column="1" ColumnSpan="2" /&gt;&lt;Control Name="flowLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="scheduleLabel" Row="4" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="rubricLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="flowLayoutPanel1" Row="18" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="enrollmentCheckBox" Row="3" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="frequencyNumericBox" Row="6" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="dayOfWeekComboBox" Row="7" RowSpan="1" Column="3" ColumnSpan="2" /&gt;&lt;Control Name="existingAuthenticationRadioButton" Row="11" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="newAuthenticationRadioButton" Row="12" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="authenticationStatusTable" Row="16" RowSpan="1" Column="2" ColumnSpan="3" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Absolute,20,Absolute,20,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="authenticationRubricLabel" Row="10" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="authenticationLabel" Row="9" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="timeOfDayComboBox" Row="8" RowSpan="1" Column="3" ColumnSpan="2" /&gt;&lt;Control Name="timeOfDayLabel" Row="8" RowSpan="1" Column="1" ColumnSpan="2" /&gt;&lt;Control Name="dayOfweekLabel" Row="7" RowSpan="1" Column="1" ColumnSpan="2" /&gt;&lt;Control Name="weeksLabel" Row="6" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="frequencyLabel" Row="6" RowSpan="1" Column="1" ColumnSpan="2" /&gt;&lt;Control Name="flowLayoutPanel2" Row="1" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="scheduleLabel" Row="4" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="rubricLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="flowLayoutPanel1" Row="18" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="enrollmentCheckBox" Row="3" RowSpan="1" Column="0" ColumnSpan="5" /&gt;&lt;Control Name="frequencyNumericBox" Row="6" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="dayOfWeekComboBox" Row="7" RowSpan="1" Column="3" ColumnSpan="2" /&gt;&lt;Control Name="existingAuthenticationRadioButton" Row="11" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="newAuthenticationRadioButton" Row="12" RowSpan="1" Column="1" ColumnSpan="4" /&gt;&lt;Control Name="callHomeAuthenticationPanel1" Row="17" RowSpan="1" Column="2" ColumnSpan="3" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Absolute,20,Absolute,20,AutoSize,0,AutoSize,0,Percent,100" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,100,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@ -1249,7 +916,7 @@
<value>96, 96</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>584, 462</value>
<value>514, 467</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>
@ -1679,14 +1346,17 @@
AADAAwAA4AcAAPAPAAA=
</value>
</data>
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>590, 490</value>
<value>520, 490</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Health Check Enrollment</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CallHomeEnrollmentDialog</value>
<value>CallHomeSettingsDialog</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>XenAdmin.Dialogs.XenDialogBase, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>

View File

@ -0,0 +1,193 @@
/* Copyright (c) Citrix Systems Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using XenAdmin.Commands;
using XenAdmin.Core;
using XenAdmin.Dialogs.CallHome;
using XenAdmin.Network;
using XenAPI;
namespace XenAdmin.Dialogs
{
public class HealthCheckOverviewLauncher
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private bool healthCheckOverviewVisible;
private CallHomeOverviewDialog healthCheckOverviewDialog;
private readonly IWin32Window parent;
private DateTime LastCloseTime { get; set; }
private readonly object healthCheckLock = new object();
protected virtual DateTime ReferenceTime
{
get { return DateTime.Now; }
}
protected virtual TimeSpan TimeSinceLastClose
{
get { return ReferenceTime - LastCloseTime; }
}
protected virtual bool ModalDialogVisible
{
get { return Win32Window.ModalDialogIsVisible(); }
}
protected virtual DialogResult LaunchDialog(IEnumerable<IXenObject> selectedObjects)
{
if (healthCheckOverviewDialog == null)
return DialogResult.None;
return healthCheckOverviewDialog.ShowDialog(parent, selectedObjects.ToList());
}
protected virtual void RefreshDialog(IEnumerable<IXenObject> selectedObjects)
{
if (healthCheckOverviewDialog == null)
return;
healthCheckOverviewDialog.RefreshView(selectedObjects.ToList());
}
public HealthCheckOverviewLauncher(IWin32Window parent)
{
parent = parent;
healthCheckOverviewVisible = false;
}
public bool HealthCheckDialogIsShowing
{
get { return healthCheckOverviewDialog != null; }
}
private void LoadHealthCheckOverviewDialog()
{
healthCheckOverviewDialog = new CallHomeOverviewDialog();
}
public void LaunchIfRequired(bool nag, SelectedItemCollection selectedObjects)
{
if (selectedObjects != null && selectedObjects.AllItemsAre<IXenObject>(x => x is Pool || x is Host))
{
List<IXenObject> itemsSelected = selectedObjects.AsXenObjects<Pool>().ConvertAll(p => p as IXenObject);
itemsSelected.AddRange(selectedObjects.AsXenObjects<Host>().Select
(host => Helpers.GetPoolOfOne(((IXenObject)host).Connection)).Cast<IXenObject>().Distinct());
LaunchIfRequired(nag, itemsSelected);
}
else
LaunchIfRequired(nag, new List<IXenObject>());
}
private void LaunchIfRequired(bool nag, IEnumerable<IXenObject> selectedObjects)
{
lock (healthCheckLock)
{
if (!healthCheckOverviewVisible)
{
LoadHealthCheckOverviewDialog();
if (nag && TimeSinceLastClose < TimeSpan.FromSeconds(10))
{
// this nag was less than 10 seconds since we closed this dialog. Don't re-show.
return;
}
if (nag && ModalDialogVisible)
{
// if the add-server dialog is visible, then don't nag with the health check dialog as it
// will appear above it.
return;
}
healthCheckOverviewVisible = true;
log.Info("Health Check Overview not showing. Show it now.");
try
{
LaunchDialog(selectedObjects);
}
finally
{
healthCheckOverviewVisible = false;
LastCloseTime = ReferenceTime;
if(healthCheckOverviewDialog != null)
{
healthCheckOverviewDialog.Dispose();
healthCheckOverviewDialog = null;
}
}
}
else
{
RefreshDialog(selectedObjects);
}
}
}
/// <summary>
/// Call this to check the health check enrollment when a connection has been made or on periodic check.
/// If not enrolled, the user is warned.
/// </summary>
/// <param name="connection">The connection to check enrollment on</param>
internal bool CheckHealthCheckEnrollment(IXenConnection connection)
{
Pool pool = Helpers.GetPoolOfOne(connection);
if (pool == null)
return false;
if (pool.CallHomeSettings.Status == CallHomeStatus.Undefined)
{
Program.Invoke(Program.MainWindow, () => ShowHealthCheckOverview(pool));
return true;
}
return false;
}
/// <summary>
/// Shows the Health Check Overview dialog to the user
/// </summary>
/// <param name="selectedPool"> the pool that will be selected in the dialog</param>
private void ShowHealthCheckOverview(Pool selectedPool)
{
Program.AssertOnEventThread();
log.InfoFormat("Pool {0} not enrolled into Health Check. Show Health Check Overview if needed", selectedPool.Name);
if (Program.RunInAutomatedTestMode)
log.DebugFormat("In automated test mode: not showing Health Check dialog");
else
LaunchIfRequired(true, new List<IXenObject>() { selectedPool });
}
}
}

View File

@ -125,12 +125,15 @@ namespace XenAdmin
private readonly LicenseManagerLauncher licenseManagerLauncher;
private readonly LicenseTimer licenseTimer;
public readonly HealthCheckOverviewLauncher HealthCheckOverviewLauncher;
private Dictionary<ToolStripMenuItem, int> pluginMenuItemStartIndexes = new Dictionary<ToolStripMenuItem, int>();
public MainWindow(ArgType argType, string[] args)
{
Program.MainWindow = this;
licenseManagerLauncher = new LicenseManagerLauncher(Program.MainWindow);
HealthCheckOverviewLauncher = new HealthCheckOverviewLauncher(Program.MainWindow);
InvokeHelper.Initialize(this);
InitializeComponent();
@ -850,11 +853,19 @@ namespace XenAdmin
if(licenseTimer != null)
licenseTimer.CheckActiveServerLicense(connection, false);
ThreadPool.QueueUserWorkItem(CheckHealthCheckEnrollment, connection);
Updates.CheckServerPatches();
Updates.CheckServerVersion();
RequestRefreshTreeView();
}
private void CheckHealthCheckEnrollment(object connection)
{
if (HealthCheckOverviewLauncher != null)
HealthCheckOverviewLauncher.CheckHealthCheckEnrollment((IXenConnection) connection);
}
/// <summary>
/// Ensures all hosts on the connection are disabled if they are in maintenance mode.
/// </summary>

View File

@ -142,6 +142,12 @@
<Compile Include="Controls\Ballooning\MemoryRowLabel.Designer.cs">
<DependentUpon>MemoryRowLabel.cs</DependentUpon>
</Compile>
<Compile Include="Controls\CallHome\CallHomeAuthenticationPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\CallHome\CallHomeAuthenticationPanel.Designer.cs">
<DependentUpon>CallHomeAuthenticationPanel.cs</DependentUpon>
</Compile>
<Compile Include="Controls\ChevronButton.cs">
<SubType>UserControl</SubType>
</Compile>
@ -202,6 +208,12 @@
<Compile Include="Diagnostics\Problems\ProblemWithInformationUrl.cs" />
<Compile Include="Diagnostics\Problems\SRProblem\UnsupportedStorageLinkSrIsPresentProblem.cs" />
<Compile Include="Diagnostics\Problems\VMProblem\InvalidVCPUConfiguration.cs" />
<Compile Include="Dialogs\CallHome\CallHomeEnrollNowDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\CallHome\CallHomeEnrollNowDialog.designer.cs">
<DependentUpon>CallHomeEnrollNowDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\CallHome\CallHomeOverviewDialog.cs">
<SubType>Form</SubType>
</Compile>
@ -214,6 +226,7 @@
<Compile Include="Dialogs\CallHome\CallHomeSettingsDialog.designer.cs">
<DependentUpon>CallHomeSettingsDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\CallHome\HealthCheckOverviewLauncher.cs" />
<Compile Include="Dialogs\ExportVMDialog.cs">
</Compile>
<Compile Include="Dialogs\ResolvingSubjectsDialog.cs">
@ -1353,6 +1366,25 @@
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Controls\CallHome\CallHomeAuthenticationPanel.ja.resx">
<DependentUpon>CallHomeAuthenticationPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\CallHome\CallHomeAuthenticationPanel.resx">
<DependentUpon>CallHomeAuthenticationPanel.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Controls\CallHome\CallHomeAuthenticationPanel.zh-CN.resx">
<DependentUpon>CallHomeAuthenticationPanel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\CallHome\CallHomeEnrollNowDialog.ja.resx">
<DependentUpon>CallHomeEnrollNowDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\CallHome\CallHomeEnrollNowDialog.resx">
<DependentUpon>CallHomeEnrollNowDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\CallHome\CallHomeEnrollNowDialog.zh-CN.resx">
<DependentUpon>CallHomeEnrollNowDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\CallHome\CallHomeOverviewDialog.ja.resx">
<DependentUpon>CallHomeOverviewDialog.cs</DependentUpon>
</EmbeddedResource>
@ -6739,6 +6771,7 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.