Commit 7b18a9f0 顾剑亮

添加历史记录功能

1 个父辈 0804a425
正在显示 60 个修改的文件 包含 3208 行增加12 行删除
......@@ -12,6 +12,8 @@
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
......@@ -54,6 +56,9 @@
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net46\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
......@@ -88,6 +93,13 @@
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- 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.
<Target Name="BeforeBuild">
......
......@@ -2,4 +2,5 @@
<packages>
<package id="MetroFramework-1.3.0.0" version="1.3.0.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net461" />
</packages>
\ No newline at end of file
......@@ -12,6 +12,8 @@
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
......@@ -56,6 +58,9 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net46\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Web" />
......@@ -82,6 +87,7 @@
<Compile Include="csvLoad\position\PostionBase.cs" />
<Compile Include="csvLoad\position\TSAVPosition.cs" />
<Compile Include="csvLoad\CSVReaderManager.cs" />
<Compile Include="db.cs" />
<Compile Include="deviceLibrary\halcon\UsbCameraHDevelop.cs" />
<Compile Include="deviceLibrary\IO\IOManager.cs" />
<Compile Include="deviceLibrary\IO\kangnaide\KNDManager.cs" />
......@@ -101,6 +107,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="manager\AlarmType.cs" />
<Compile Include="manager\BoardManager.cs" />
<Compile Include="SQLite.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common\Common.csproj">
......@@ -147,6 +154,13 @@
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<!-- 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.
<Target Name="BeforeBuild">
......
using System;
using System.Collections.Generic;
using System.Data.SQLite;
using TSA_V.Common;
namespace DAL
{
public class SQLite
{
private SQLiteConnection _con;
public SQLite()
{
}
public bool IsCon { private set; get; } = false;
public bool Connect()
{
try
{
_con = new SQLiteConnection("data source='" + Environment.CurrentDirectory + "\\config\\database.db3';Version=3");
_con.Open();
IsCon = true;
LogUtil.info("数据库连接成功");
return true;
}
catch (Exception ex)
{
IsCon = false;
LogUtil.error("数据库连接失败:" + ex.Message);
return false;
}
}
public void Close()
{
if (_con != null)
{
_con.Close();
_con.Dispose();
LogUtil.info("数据库关闭");
}
}
public bool QueryUserName(string username, string password)
{
bool succeed = false;
string sql = "SELECT * FROM Account WHERE Username='" + username + "' AND Password='" + password + "'";
bool rtn = Select(sql, out string[][] data);
if (rtn)
{
if (data.Length > 0)
succeed = true;
}
return succeed;
}
public bool QueryHistory(string barCode, string dateTimeFront, string dateTimeBack, out string[][] data)
{
string sql = "SELECT ID,ProName,ProType,BarCode,BoardWidth,BoardLength,AoiResult,UserName,CreateDate FROM OperateInfo WHERE 1=1";
if (!string.IsNullOrEmpty(barCode))
sql += " AND BarCode LIKE '%" + barCode + "%'";
if (!string.IsNullOrEmpty(TSA_V.DeviceLibrary.DB.userName))
sql += " AND UserName = '" + TSA_V.DeviceLibrary.DB.userName + "'";
if (!string.IsNullOrEmpty(dateTimeFront))
sql += " AND CreateDate >= '" + dateTimeFront + "'";
if (!string.IsNullOrEmpty(dateTimeBack))
sql += " AND CreateDate <= '" + dateTimeBack + "'";
bool rtn = Select(sql, out data);
return rtn;
}
public bool QueryPointInfo(string id, out string[][] data)
{
string sql = "SELECT ID,PartNum,PointName,CreateDate FROM PointInfo WHERE ID=" + id;
bool rtn = Select(sql, out data);
return rtn;
}
public bool AddHistory(TSA_V.DeviceLibrary.OpInfo info, out int id)
{
string sql;
bool rtn;
id = info.ID;
//查询可写入的ID
if (info.ID == 0)
{
sql = "SELECT MAX(ID) FROM PointInfo";
rtn = Select(sql, out string[][] data);
if (!rtn) return false;
int.TryParse(data[0][0], out id);
id++;
}
//添加操作信息记录
string createDate = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
sql = "INSERT INTO OperateInfo(ID,ProName,ProType,BarCode,BoardWidth,BoardLength,AoiResult,UserName,CreateDate) " +
"VALUES(" + id + ",'" + info.ProName + "','" + info.ProType + "','" + info.BarCode + "'," + info.BoardWidth + "," +
info.BoardLength + ",'" + info.AoiResult + "','" + TSA_V.DeviceLibrary.DB.userName + "','" + createDate + "')";
rtn = Execute(sql);
if (!rtn) return false;
//添加操作点信息
if (info.ID == 0)
{
SQLiteTransaction tr = _con.BeginTransaction();
for (int i = 0; i < info.pointList.Count; i++)
{
sql = "INSERT INTO PointInfo(ID,PartNum,PointName,CreateDate) " +
"VALUES(" + id + ",'" + info.pointList[i].PartNum + "','" + info.pointList[i].PointName + "','" + createDate + "')";
rtn = Execute(sql);
if (!rtn) break;
}
if (rtn)
tr.Commit();
else
tr.Rollback();
}
return rtn;
}
private bool Select(string sql, out string[][] data)
{
data = null;
if (!IsCon) return false;
List<string[]> content = new List<string[]>();
try
{
SQLiteCommand cmd = new SQLiteCommand(_con) { CommandText = sql };
SQLiteDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string[] s = new string[dr.FieldCount];
for (int i = 0; i < s.Length; i++)
s[i] = dr[i].ToString();
content.Add(s);
}
dr.Close();
cmd.Dispose();
data = content.ToArray();
LogUtil.info("数据库Select,SQL=" + sql);
return true;
}
catch (Exception ex)
{
LogUtil.error("数据库Select:" + ex.Message);
return false;
}
}
private bool Execute(string sql)
{
if (!IsCon) return false;
try
{
SQLiteCommand cmd = new SQLiteCommand(_con) { CommandText = sql };
int n = cmd.ExecuteNonQuery();
cmd.Dispose();
LogUtil.info("数据库Execute,SQL=" + sql + ",修改了" + n + "行");
return true;
}
catch (Exception ex)
{
LogUtil.error("数据库Execute:" + ex.Message);
return false;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TSA_V.DeviceLibrary
{
public static class DB
{
public static DAL.SQLite db;
public static string userName;
}
}
......@@ -90,7 +90,10 @@ namespace TSA_V.DeviceLibrary
}
if (MesUtil.CodeISOk)
{
MesUtil.SendStatus(MesUtil.GetCurrStatus());
DeviceStatus deviceStatus = MesUtil.GetCurrStatus();
MesUtil.SendStatus(deviceStatus);
DB.db.AddHistory(deviceStatus.workInfo, out int id);
}
EndWait();
if (currBoard != null)
......
......@@ -27,6 +27,7 @@ namespace TSA_V.DeviceLibrary
public class OpInfo
{
public int ID = 0;
/// <summary>
/// 程序名称
/// </summary>
......@@ -61,14 +62,7 @@ namespace TSA_V.DeviceLibrary
public class OpPointInfo
{
public OpPointInfo()
{
}
public OpPointInfo(string pn, string name)
{
this.PartNum = pn;
this.PointName = name;
}
public int ID = 0;
/// <summary>
/// 物料编号
/// </summary>
......@@ -78,6 +72,12 @@ namespace TSA_V.DeviceLibrary
/// </summary>
public string PointName = "";
public OpPointInfo(string pn, string name)
{
PartNum = pn;
PointName = name;
}
}
public class JsonParam
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net461" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net461" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net461" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
......
......@@ -114,7 +114,7 @@
<!--宽度对应位置配置-->
<add key="Line_WidthPosition" value="" />
<add key="Server_Log_Open" value="0" />
<add key ="NeedPCBCode" value ="1"/>
<add key="NeedPCBCode" value="1" />
<!--本地开放的http服务器端口号-->
<add key="WebServiceAddr" value="http://localhost:4090/rest/api/v1/station/" />
<!--组装完成后上传数据的服务器地址-->
......
......@@ -13,6 +13,8 @@ namespace TSA_V
{
public static Color buttonColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
private static string skinFileName = Application.StartupPath + @"\Skins\OneBlue.ssk";
public static string SkinFileName
......@@ -33,11 +35,14 @@ namespace TSA_V
return skinFileName;
}
}
private static int index = -1;
public static void DefaultSkin()
{
index = -1;
}
public static void NextSkin()
{
index++;
......@@ -46,7 +51,9 @@ namespace TSA_V
index = 0;
}
}
public static List<string> SkinsList=new List<string>();
public static List<string> SkinsList = new List<string>();
private static List<string> GetSkinList()
{
List<string> returnList = new System.Collections.Generic.List<string>();
......

namespace TSA_V
{
partial class FrmHistory
{
/// <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()
{
this.label1 = new System.Windows.Forms.Label();
this.TxtCode = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.DtpTimeFront = new System.Windows.Forms.DateTimePicker();
this.DtpTimeBack = new System.Windows.Forms.DateTimePicker();
this.BtnQuery = new System.Windows.Forms.Button();
this.DgvOperateInfo = new System.Windows.Forms.DataGridView();
this.DgvPointInfo = new System.Windows.Forms.DataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column9 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column10 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column11 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column12 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column13 = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.DgvOperateInfo)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.DgvPointInfo)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 12);
this.label1.Margin = new System.Windows.Forms.Padding(3);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 0;
this.label1.Text = "条码";
//
// TxtCode
//
this.TxtCode.Location = new System.Drawing.Point(12, 30);
this.TxtCode.Name = "TxtCode";
this.TxtCode.Size = new System.Drawing.Size(180, 21);
this.TxtCode.TabIndex = 1;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 57);
this.label2.Margin = new System.Windows.Forms.Padding(3);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(53, 12);
this.label2.TabIndex = 2;
this.label2.Text = "创建时间";
//
// DtpTimeFront
//
this.DtpTimeFront.CustomFormat = "yyyy/MM/dd HH:mm:ss";
this.DtpTimeFront.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.DtpTimeFront.Location = new System.Drawing.Point(12, 75);
this.DtpTimeFront.Name = "DtpTimeFront";
this.DtpTimeFront.ShowCheckBox = true;
this.DtpTimeFront.Size = new System.Drawing.Size(180, 21);
this.DtpTimeFront.TabIndex = 3;
//
// DtpTimeBack
//
this.DtpTimeBack.CustomFormat = "yyyy/MM/dd HH:mm:ss";
this.DtpTimeBack.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.DtpTimeBack.Location = new System.Drawing.Point(12, 102);
this.DtpTimeBack.Name = "DtpTimeBack";
this.DtpTimeBack.ShowCheckBox = true;
this.DtpTimeBack.Size = new System.Drawing.Size(180, 21);
this.DtpTimeBack.TabIndex = 5;
//
// BtnQuery
//
this.BtnQuery.Location = new System.Drawing.Point(92, 129);
this.BtnQuery.Name = "BtnQuery";
this.BtnQuery.Size = new System.Drawing.Size(100, 30);
this.BtnQuery.TabIndex = 6;
this.BtnQuery.Text = "查询";
this.BtnQuery.UseVisualStyleBackColor = true;
this.BtnQuery.Click += new System.EventHandler(this.BtnQuery_Click);
//
// DgvOperateInfo
//
this.DgvOperateInfo.AllowUserToAddRows = false;
this.DgvOperateInfo.AllowUserToDeleteRows = false;
this.DgvOperateInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DgvOperateInfo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.DgvOperateInfo.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2,
this.Column3,
this.Column4,
this.Column5,
this.Column6,
this.Column7,
this.Column8,
this.Column9});
this.DgvOperateInfo.Location = new System.Drawing.Point(198, 12);
this.DgvOperateInfo.Name = "DgvOperateInfo";
this.DgvOperateInfo.ReadOnly = true;
this.DgvOperateInfo.RowTemplate.Height = 23;
this.DgvOperateInfo.Size = new System.Drawing.Size(406, 150);
this.DgvOperateInfo.TabIndex = 7;
this.DgvOperateInfo.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvOperateInfo_CellClick);
//
// DgvPointInfo
//
this.DgvPointInfo.AllowUserToAddRows = false;
this.DgvPointInfo.AllowUserToDeleteRows = false;
this.DgvPointInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DgvPointInfo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.DgvPointInfo.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column10,
this.Column11,
this.Column12,
this.Column13});
this.DgvPointInfo.Location = new System.Drawing.Point(198, 168);
this.DgvPointInfo.Name = "DgvPointInfo";
this.DgvPointInfo.ReadOnly = true;
this.DgvPointInfo.RowTemplate.Height = 23;
this.DgvPointInfo.Size = new System.Drawing.Size(406, 174);
this.DgvPointInfo.TabIndex = 8;
//
// Column1
//
this.Column1.HeaderText = "ID";
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
this.Column1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column2
//
this.Column2.HeaderText = "ProName";
this.Column2.Name = "Column2";
this.Column2.ReadOnly = true;
this.Column2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column3
//
this.Column3.HeaderText = "ProType";
this.Column3.Name = "Column3";
this.Column3.ReadOnly = true;
this.Column3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column4
//
this.Column4.HeaderText = "BarCode";
this.Column4.Name = "Column4";
this.Column4.ReadOnly = true;
//
// Column5
//
this.Column5.HeaderText = "BoardWidth";
this.Column5.Name = "Column5";
this.Column5.ReadOnly = true;
this.Column5.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column6
//
this.Column6.HeaderText = "BoardLength";
this.Column6.Name = "Column6";
this.Column6.ReadOnly = true;
this.Column6.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column7
//
this.Column7.HeaderText = "AoiResult";
this.Column7.Name = "Column7";
this.Column7.ReadOnly = true;
this.Column7.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column8
//
this.Column8.HeaderText = "UserName";
this.Column8.Name = "Column8";
this.Column8.ReadOnly = true;
this.Column8.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column9
//
this.Column9.HeaderText = "CreateDate";
this.Column9.Name = "Column9";
this.Column9.ReadOnly = true;
this.Column9.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column10
//
this.Column10.HeaderText = "ID";
this.Column10.Name = "Column10";
this.Column10.ReadOnly = true;
this.Column10.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column11
//
this.Column11.HeaderText = "PartNum";
this.Column11.Name = "Column11";
this.Column11.ReadOnly = true;
this.Column11.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column12
//
this.Column12.HeaderText = "PointName";
this.Column12.Name = "Column12";
this.Column12.ReadOnly = true;
this.Column12.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Column13
//
this.Column13.HeaderText = "CreateDate";
this.Column13.Name = "Column13";
this.Column13.ReadOnly = true;
this.Column13.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// FrmHistory
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(616, 354);
this.Controls.Add(this.DgvPointInfo);
this.Controls.Add(this.DgvOperateInfo);
this.Controls.Add(this.BtnQuery);
this.Controls.Add(this.DtpTimeBack);
this.Controls.Add(this.DtpTimeFront);
this.Controls.Add(this.label2);
this.Controls.Add(this.TxtCode);
this.Controls.Add(this.label1);
this.Name = "FrmHistory";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "FrmHistory";
this.Load += new System.EventHandler(this.FrmHistory_Load);
((System.ComponentModel.ISupportInitialize)(this.DgvOperateInfo)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.DgvPointInfo)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox TxtCode;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.DateTimePicker DtpTimeFront;
private System.Windows.Forms.DateTimePicker DtpTimeBack;
private System.Windows.Forms.Button BtnQuery;
private System.Windows.Forms.DataGridView DgvOperateInfo;
private System.Windows.Forms.DataGridView DgvPointInfo;
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
private System.Windows.Forms.DataGridViewTextBoxColumn Column4;
private System.Windows.Forms.DataGridViewTextBoxColumn Column5;
private System.Windows.Forms.DataGridViewTextBoxColumn Column6;
private System.Windows.Forms.DataGridViewTextBoxColumn Column7;
private System.Windows.Forms.DataGridViewTextBoxColumn Column8;
private System.Windows.Forms.DataGridViewTextBoxColumn Column9;
private System.Windows.Forms.DataGridViewTextBoxColumn Column10;
private System.Windows.Forms.DataGridViewTextBoxColumn Column11;
private System.Windows.Forms.DataGridViewTextBoxColumn Column12;
private System.Windows.Forms.DataGridViewTextBoxColumn Column13;
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TSA_V
{
public partial class FrmHistory : Form
{
public FrmHistory()
{
InitializeComponent();
}
private void FrmHistory_Load(object sender, EventArgs e)
{
DtpTimeFront.Value = DateTime.Now;
DtpTimeBack.Value = DateTime.Now;
}
private void BtnQuery_Click(object sender, EventArgs e)
{
string timeFront = null, timeBack = null;
if (DtpTimeFront.Checked) timeFront = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DtpTimeFront.Value);
if (DtpTimeBack.Checked) timeBack = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DtpTimeBack.Value);
bool rtn = DeviceLibrary.DB.db.QueryHistory(TxtCode.Text, timeFront, timeBack, out string[][] data);
if (rtn)
{
DgvOperateInfo.Rows.Clear();
if (data.Length == 0)
MessageBox.Show("没有找到记录");
else
for (int i = 0; i < data.Length; i++)
DgvOperateInfo.Rows.Add(data[i]);
}
else
{
MessageBox.Show("查询出错", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void DgvOperateInfo_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (DgvOperateInfo.CurrentCell == null) return;
string id = DgvOperateInfo.Rows[DgvOperateInfo.CurrentCell.RowIndex].Cells[0].Value.ToString();
bool rtn = DeviceLibrary.DB.db.QueryPointInfo(id, out string[][] data);
if (rtn)
{
DgvPointInfo.Rows.Clear();
if (data.Length == 0)
MessageBox.Show("没有找到记录");
else
for (int i = 0; i < data.Length; i++)
DgvPointInfo.Rows.Add(data[i]);
}
else
{
MessageBox.Show("查询出错", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
<?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>
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column7.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column8.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column10.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column7.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column8.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column10.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
\ No newline at end of file

namespace TSA_V
{
partial class FrmLogin
{
/// <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(FrmLogin));
this.label1 = new System.Windows.Forms.Label();
this.TxtUsername = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.TxtPassword = new System.Windows.Forms.TextBox();
this.BtnLogin = new System.Windows.Forms.Button();
this.BtnExit = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label1.Location = new System.Drawing.Point(82, 40);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(42, 21);
this.label1.TabIndex = 0;
this.label1.Text = "账号";
//
// TxtUsername
//
this.TxtUsername.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.TxtUsername.ImeMode = System.Windows.Forms.ImeMode.Disable;
this.TxtUsername.Location = new System.Drawing.Point(130, 37);
this.TxtUsername.Name = "TxtUsername";
this.TxtUsername.Size = new System.Drawing.Size(179, 29);
this.TxtUsername.TabIndex = 1;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label2.Location = new System.Drawing.Point(82, 75);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(42, 21);
this.label2.TabIndex = 2;
this.label2.Text = "密码";
//
// TxtPassword
//
this.TxtPassword.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.TxtPassword.Location = new System.Drawing.Point(130, 72);
this.TxtPassword.Name = "TxtPassword";
this.TxtPassword.PasswordChar = '*';
this.TxtPassword.Size = new System.Drawing.Size(179, 29);
this.TxtPassword.TabIndex = 3;
//
// BtnLogin
//
this.BtnLogin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnLogin.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.BtnLogin.Location = new System.Drawing.Point(173, 142);
this.BtnLogin.Name = "BtnLogin";
this.BtnLogin.Size = new System.Drawing.Size(100, 38);
this.BtnLogin.TabIndex = 4;
this.BtnLogin.Text = "登录";
this.BtnLogin.UseVisualStyleBackColor = true;
this.BtnLogin.Click += new System.EventHandler(this.BtnLogin_Click);
//
// BtnExit
//
this.BtnExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnExit.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.BtnExit.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.BtnExit.Location = new System.Drawing.Point(279, 142);
this.BtnExit.Name = "BtnExit";
this.BtnExit.Size = new System.Drawing.Size(100, 38);
this.BtnExit.TabIndex = 5;
this.BtnExit.Text = "退出";
this.BtnExit.UseVisualStyleBackColor = true;
this.BtnExit.Click += new System.EventHandler(this.BtnExit_Click);
//
// FrmLogin
//
this.AcceptButton = this.BtnLogin;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.BtnExit;
this.ClientSize = new System.Drawing.Size(391, 192);
this.Controls.Add(this.BtnExit);
this.Controls.Add(this.BtnLogin);
this.Controls.Add(this.TxtPassword);
this.Controls.Add(this.label2);
this.Controls.Add(this.TxtUsername);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmLogin";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "登录";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox TxtUsername;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox TxtPassword;
private System.Windows.Forms.Button BtnLogin;
private System.Windows.Forms.Button BtnExit;
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TSA_V
{
public partial class FrmLogin : Form
{
public FrmLogin()
{
InitializeComponent();
}
private void BtnLogin_Click(object sender, EventArgs e)
{
if (DeviceLibrary.DB.db.IsCon)
{
DeviceLibrary.DB.userName = TxtUsername.Text;
bool rtn = DeviceLibrary.DB.db.QueryUserName(DeviceLibrary.DB.userName, TxtPassword.Text);
if (rtn)
DialogResult = DialogResult.OK;
else
MessageBox.Show("用户名或密码错误", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("数据库未连接");
}
}
private void BtnExit_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
}
}
<?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="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAkAMDAAAAEACACoDgAAlgAAACAgAAABACAAqBAAAD4PAAAQEAAAAQAgAGgEAADmHwAAFBQAAAEA
IAC4BgAATiQAABgYAAABACAAiAkAAAYrAAAwMAAAAQAIAKgOAACONAAAEBAAAAEACABoBQAANkMAABQU
AAABACAAuAYAAJ5IAAAYGAAAAQAgAIgJAABWTwAAKAAAADAAAABgAAAAAQAIAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACAgIAAAIAAAACAgAAAAIAAAP//AMDAwAD///8AgIAAAIAAgACAAAAAALfbAAAc
HAAApNIAAOfPAADIkAAAwIEAANSpAAArKwAAt7cAANmyAABvtwAArlwAAIHAAACp1AAAlZUAADabAADU
1AAAq1cAANeuAADw+AAAb28AAM2aAACBgQAA9fUAZZs2AADq1AAAV1cAALLZAAD48AAAOp0AAJqaAAAn
JwAAttsAAHS6AACbmwAA7NkAAJMnAADbtgAAdHQAAGtrAACysgAAt28AAOvrAAD69QBLa2sAYzo6AACy
ZQAA/f0AADo6AADx8QAAeHgAAL9+AADgwAAAtWsAALu7AACdOgAALy8AAP36AAB+vwAAn88AAH2+AADX
1wAA8PAAAN68AAB+fgAAISEAAM+fAACrqwAArq4ACPjwAACXLwAAvN4AcJAhAACfnwAA+fkAADCYAACj
owAAvLwAFurUAADn5wAA0qQAANGjAACHhwAAq1YAANTqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAIAAAIAAAIAAAACAAACAAIAAAIAAAIAAAIAAAIAAAIAAAIAAgAAAgIAAAIAAAABAAQCAAQAAgAE
AgACAAAEAAIAAAIAAgAAAgACAAACAAQCAAQABAIABAADAAADAAEBAgACAAIAAwACCgACAAACAAQCAAIA
BAACAAQCAAIAAgAAAgAEAgACAAgAAgACAAEBAAADCgQCAAACAAADAAADAAIKAAIAAAADAAIKAAIAAAAA
AwACCgACAAAEAgkAAgEBAgAAAgAAAgQAAgIAAAIAAAIAAAMAAAIAAAIAAAMAAgACAAACAAADAAIAAAIA
BAEBAAMAAAMAAgAIBAACBAACBAACAgAAAAACBAACAgAAAAMAAgQAAgIAAAACAAQCAAEBAAACAAICBAIA
AgACAAACAAgEAAIEAwACAAgEAAIEAAAAAgAIBAACBAADAAIKAgEBAgADCgQAAgAEAgIEAgIEAgACAAIA
AAIEAgACAAIAAgACBAIAAgACAAACAAADAAEBAAAAAgAbBQUcAAACAFoFBQUFWwQCVQU5AAQCXAUFXQAA
AgAEAl4FBV8ACAQAAgEBAAIEAgAkBQUlCAACJgUFBQUFBTQAVQUFVgIAVwVYAAIAAgQCTAUFBVkAAgAC
AAEBAgACAAAbBQVOAAIAFAVPAgBQBQUoUQUFBQUFBQVSAgACAAIAUwUFBQVUAAMAAAEBAAQAAQAkBQUl
AABHBQVIAANJBQVCQwUFBQUFBQVKPQUFBUsDTAUFBQVNAAACBAEBAAIAAgAbBQUlAgAEAgACAEEFBQVC
QwUFRAAVBTwCPQUFBUUCNQUFBQVGAgkAAgEBAAIABAIbBQUlAwACCgwFBQUFBQU4ADkFOjsFBTwCPQUF
BT4KNQUxPwUFQAACAAEBAAMAAgobBQUcAAACMwUFBQUFBTQAADMFBQUFBSoDAAIAAAIANQUxCjYFNwIE
AAEBAgAAAgAbBQUlAgQAFAUFBQUuBAACAgApBQUFBS8AAAACBAAwBQUxACIFMgACAAEBAAIEAAIkBQUl
AgAIJgUdBAAnBQUoAAIpBQUFBSoCBAACAAgrBQUsAiIFBS0AAgEBAAIACAQbBQUcBAIAFAUdAAIeBR8C
AAIgBQUFFgACAAIEAiEFBREABCIFBSMABAEBAgQFBQUFBQUFBRMEFAUFBQUFBRUCAgQADgUFFgIEAgAC
ABcFBRgCAhkFBRoCAAEBAAIFBQUFBQUFBQsCAAwFBQUFDQIAAAIADgUPAAACAAACBBAFBREAAhIFBQUC
AAEBAAIEAgAAAgACAAIACAACBAIAAgAIAAICAAIACAACBAIAAgAIAAIEAAMKAgADAAEBAgACAAgAAgQA
AwADAAIAAgADAAMAAgAAAwADAAIAAgADAAMAAgACCAACAAIAAgEBAAMAAwACAAIACAADAAMAAgACAAgC
AAIACAIAAgAIAAMAAwAAAwADAAIAAwABAAEBAgACAAIAAwADAAIAAgACAAMAAwAAAwADAAADAAMAAgAC
AAICAAIAAgACAAIAAgEBAgQCAwACAAIAAgIEAgMAAgACAAICAAIAAgIAAgACAgQCAwACBAIDAAADAAMA
AwEBAAIAAAoCBAIDAAICAAIKAgQCAwACBAIDAAIEAgMAAAMCAAQCAgACBAICAAICAAEBAgQCBAIEAgAI
AgQCBAIEAgQCAwACAAIBAAICAAMIAAIAAQMGBgUBAgQCAwoDAAEBAgIAAgIAAwIEAgACAgACAgACAAMC
CQIAAwADCgIEAgQCAQUFBgUGBQgAAgACAgEBAAMCBAIDAAIAAgMAAwIEAgMAAQACAgACAgACAwACAgIB
BQYDAgMBBQEDAAMAAwEBAgACAgACCAQCAAIIAAIACAADAgIEAgMAAwIAAgIEAgQGBQIAAAIDBgUAAgIC
AAEBAgMAAwIEAgIDAgQCBAIDAgMAAgACAAIDAAIDAAMCAAIFBgMCAwACBgUCBAIEAgEBAgADAAICBAIA
AgMAAgMABgUGBQYFBgUGBgUGBQYGBQYFBgMAAgMEBQYAAgICBAEBAgMCAgQCAgQCBAICAwACBQgDAgQC
AwIDAgMCAAMCAwIBBQEDAgIBBgMDAgQCAgEBAgACAwIAAwICAgADAAIDBgMAAgICAAIAAgADAgIEAgAD
AQUGBgUGBQMCAAIDAAEBAgMAAgQIAgADCAMCAgIABQICBAIDAgMCBAICBAICAgMCAwEFBQYDAwICAwAC
AwEBAgIDAgIDAgMAAgACBAIBBgMAAgMAAgADAgMAAgMAAwACAgIAAwICAgQCAgMCAgEBAwACBAIAAgID
AgMCAgMCBQIDAgADAgMCAAIDAgICAgMAAwIDAAIEAgIEAgADAAEBAgIDAQEFBgMAAgADAAIEBgIAAwIC
AAIDCAIAAwYGBQYFBgUGBQYFBgUGBQgCAgEBAgMDBQYFBgUBAwICAwICBQMCAgMCAwgAAwIDAgUGBQYF
BgYFBgUGBQYFBgMCAwEBAgIBBgMCAwYFAgMAAgMCBgIEAgADAAMCAgQCAgYFBgUGBQYFBgUGBQYFBgMA
AgEBAgMFBQIDAgUGBgUGBQYGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgIDAgEBAgIBBgMCAQUB
AwIDAgMCAwIDAgMCAgMCAwIDAgYFBgUGBQYFBgUGBQYFBgMCAwEBAwIDBQYFBgUBAgICBAICAAMCAgID
AgIAAgMAAwUGBQYFBgUGBQYFBgUHBQICAgEBAgMCAQUGBQECAwADAgIDAgIEAgMAAwIDAgICAgYFBgUG
BQYFBgUGBQYFBgMCAwEBAgIDAgIDAAIDAgICAwIDAAMCAgICAwICBAIDAgMCAwIDAgMCAwIDAgMCAwIA
AgEBAwICBAICAwICAwIDAAICAwICAwMCAAMCAgMCAwACAwICAwICAwICAwICAgMCAwEAAQIDAgMCAgMA
AgMCAwIDAgIDAAIDAgIDAgIEAgIDAgMCAgQCAgMCAgQCAwIDAQD///////8AAIAAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAB
AAAoAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHABVAFUAAABVAFUAVQAA
AFUAVQBVAAAAVQAAAFUAVQBVAAAAVQBVAFUAVQBVAAAAVQBVAFUAAABVAFUAVQAAAFUAVQBVAAAAVQBV
AFUAAABVAFUAVQAAAFUAVQBVACsAVQArAFUAKwBVAIAAVQAAAFUAVQBVAAAAVQAAABxVVVX/ABw5/wA5
AP8AHDn/ABwA/wA5AP8AHDn/ABwA/wBVAP8AAAD/ABw5/wBVAP8AAAD/AFUA/wAcAP8AOQD/ABwA/wA5
AP8AOQD/ABwA/wA5AP8AHDn/ADkA/wAcOf8ADhz/AEcc/wAOHP8AKxz/ADk5/wAcAP8AOTn/VVVV/1Vy
Vf8AHAD/DlUc/w45HP8AORz/ABwc/xxVAP8cAAD/AFUc/wAAAP8AVRz/ABw5/xw5AP8AVQD/AAAc/wAA
HP8AVRz/ABw5/xw5AP8AVQD/ABwA/wAcAP8AKw7/ACsO/w45Of8OHAD/AFUA/zk5AP8AKxz/HCsc/wBH
AP9VZFX/VXJV/wAcAP8OORz/Dhwc/wA5AP8AHDn/ADkA/wBVAP8AHBz/ADkA/wAcHP8AVQD/HAAA/wBV
Of8AAAD/ADkA/wAcHP8AVQD/HAAA/wBVOf8AHAD/ABwA/wBHDv8ADg7/DlUA/w4AAP8AVTn/ADkA/wAO
HP8cRxz/AA4c/1Vkcv9VVVX/ADk5/wAcAP8AVTn/ADkO/wA5Dv85Rxz/AA4c/wBVHP8AABz/AFUc/xwc
HP8AVRz/ADkA/wAOK/8ADg7/AFUc/xwcHP8AVRz/ADkA/wAAHP8AOTn/ACsA/wArOf8cOQ7/AFUO/wAc
Dv8AAA7/AFUc/wAcOf8cRwD/VWRV/1VyVf8AHAD/HFU5/xwcOf8AOQ7/ADkO/wArOf8AZAD/ADk5/wBV
AP8AOTn/HDkA/wA5HP8AVQD/AA4r/wBHDv8AOTn/HDkA/wA5HP8AVQD/ABwc/wAcAP8ARxz/AEcc/xw5
Dv8AHA7/AFUO/wAADv8AVRz/ABwA/xxHOf9VZFX/VVVV/wAcAP8AKxz/ACsA/wDn4v8A////Dm46/w4O
AP8AaRj/ALO3/wD///8A////APXr/wB0kv8AjFP/AP39/wCNdv8AIkr/AHk2/wDr4P8Aubn/ADoe/wAr
AP8AKxz/AD09/wClY/8A////Befs/xwrAP8cKzn/ADkA/1VyVf9VclX/ADkA/wBHHP8ADgD/AOfi/wD/
//8Obl//DkcA/wBgQP8A7ur/AL+i/wBxVf8E/Pj/AO/f/wBXbP8A59D/AOj0/wDMu/8AvLz/APX1/wCa
jP8AOQD/AEcA/wBHHP8ZQAv/Gc61/wD///8F+vX/AFVH/wBHOf8AHAD/VVVV/1VVVf8AHDn/HCsc/xwr
HP8A7OL/AP///wBIOv8ADgD/AH6q/wC4qv8AfGD/AGJi/wD4+P8A////AHg2/wC6uv8A//7/AMbG/wDf
7/8A/Pz/AKd8/wDS0v8A////AKm3/wB3Wv8Ay8v/AP///wD///8AjnX/HA4c/wBHHP9VZHL/VVVV/wBV
AP8ADhz/AEcc/wDi4v8A////AGVW/wArHP8cRxz/HBsM/wDGqv8A1NT/AP///wD///8sQiz/AI1r/wD+
/v8Abm7/AN/v/wD29v8AfSj/ANLS/wD///8Axrf/OWtO/wD4+P8AurP/APjx/wDLt/8cNjT/AEcA/1Vk
Vf9VZFX/AEc5/wArAP85KwD/AOLi/wD///8Abjr/AA4c/wB5O/8A6uX/AP///wD///8A3uj/AIp4/wAr
AP8AXU//AOnp/wD///8A////AIdv/wA5Of8AOQD/ABwO/wA5Dv8AgXn/APv7/xxNTf8cpqP/Ec7O/xFd
JP8AHDn/VVVV/1VkVf8ARwD/AA45/wBHAP8A7OL/AP///wBlOv8AKxz/OXlE/wDq7v8Atb//AFVx/wDb
4v8Aqrj/AERG/wBHAP8AvLz/AP///wD///8Ah2//ADkc/wAAHP8AVQ7/OTkO/wDX3/8A////AGps/wDA
o/8A7+//AImJ/wA5AP9VclX/VWRV/wBHHP8ccVX/HHGO/wDs7P8A////AKGY/wB+Yf8ASFj/APLl/wC1
ov8AjlX/APj8/wCfr/8AZAD/AEcc/wCtlP8A/Pr/AOTJ/wBWH/8ARxz/AEcA/wA5Of8AcmT/AP///wDZ
z/8AKxz/AJyq/wD///8tpo//ABwc/1VVcv9VZFX/AEcc/wD///8A////AP///wD///8A////AM/f/wBR
MP8AXVn/AP///wD///8A6/X/AJJ0/wArAP8ARxz/AE1F/wD37/8ApYP/ADAK/wBHHP8ADgD/AFUc/wBy
gP8A////ANnP/wBHAP8AXzT/AP///wDS6f8AVQD/VVVV/1VkVf8ARwD/ADk5/xw5AP8AKwD/ACsc/wBH
Dv8ARw7/HDkc/xw5AP8ARxz/AEcc/wA5HP8AORz/OUcA/wBHAP8ARw7/AEcO/xw5HP8cOQD/AEcc/wBH
HP8AORz/ADkc/zlHAP8ARwD/Dis5/w5HOf85OQD/ADkA/wBHOf9VZFX/VWRV/wBHOf8AORz/HDkc/wBH
AP8ARxz/HCsO/xwrDv8AVVX/AFU5/wArAP8AKwD/AFUc/zlVHP8ARwD/AEcA/xwrDv8cZA7/ADkc/wA5
AP85RwD/AEc5/wA5Of8AOTn/ACsc/wArHP8OZDn/DkcA/wA5HP8AORz/OUc5/1VkVf9VgFX/ACsc/wBk
Dv8ARw7/ADkc/wA5HP8ARzn/AGQA/wArHP8ARxz/AEcA/wBHOf8AORz/ADkc/wA5HP8AORz/AEc5/wAr
AP8ARzn/AEc5/wBHAP8AKxz/AGQO/wBHDv8AVQ7/AFUO/wA5HP8AHAD/AFUc/wBVHP8AKw7/VYBk/1Vk
Vf8ARxz/ACsO/zkODv8AVRz/AFUc/wBHOf8AZAD/AEcc/wBkHP85KwD/ACs5/wByHP8AORz/AFUc/wBV
HP8ARzn/AGQA/wArOf8AZDn/ACsA/wBHVf8AZA7/AA5H/wByDv8AOQ7/AFU5/wA5HP8AVRz/AFUc/wBH
Dv9VZGT/VYBV/wBHOf8ARxz/AGQc/wArR/8ARw7/OWQc/wArOf8AZBz/AEcc/wBHOf8AKzn/AHIc/wA5
Of8OVQ7/DlUO/zlHR/8ARw7/DlUc/w5VOf85Rxz/AEcc/ytHK/8rnJz/lc7O/0Dq6v9knID/HFVV/wBk
HP85Kxz/AGQ5/1VkVf9VZFX/AGQ5/wBHHP8AZBz/AEdH/wBkDv8AKxz/AGQ5/wBHHP8AZBz/AEc5/wBk
Of8cORz/HDk5/w5yDv8OOQ7/AGQO/wArDv8Ocjn/Djkc/wBkHP8AZBz/R5yA/2TV1f8Vo4f/FaOH/2S5
uf9Vqo7/AEc5/wBHOf8ARxz/VYBy/1WAVf8ARxz/AGQO/wBHDv8cZBz/HEc5/wBkHP8ARxz/OVUO/wBV
Dv8cRxz/HEcc/wBkOf8AZAD/ADk5/wByOf8AOTn/AHIc/wA5HP8Achz/ADk5/wA5Of9r3Nz/FaNq/wAr
Dv8ARw7/QJV5/0Dq6v8AOQ7/AHIO/wBHHP9VZFX/VYBV/wBHHP8AR0f/AGQO/wBHOf8AZBz/AEcc/wBk
Vf8AOQ7/AHJH/ytVR/8rx7j/VZyO/1Wcjv8ruJz/K7ic/4CcnP8ruJz/Vaqq/1Wqqv9Vqo7/VaqO/0Dq
6v9AlZX/AEcO/wBkR/8Vaof/a9zc/wA5Dv8Acg7/AEc5/1Vkcv9VgFX/AGQ5/wCADv8AR0f/AGQO/wBH
R/8AZBz/AEcc/wByOf8AORz/FaNq/06jav8AZDn/AEc5/wByHP8Achz/AGQ5/wBkOf8AZBz/AGQ5/wBk
Of8AZBz/R5yc/0e4uP9AlXn/FaNO/46rq/8rnJz/AHI5/wA5Of8Achz/VXJV/1WAVf8AZDn/AEcO/wBH
R/85ZA7/AEcO/xyAOf8cZDn/AHIc/wByAP8Vamr/FaNq/wBHHP8AZBz/AHI5/wByOf8ARxz/AEcc/wBk
Of8AZBz/AGQc/wBkOf8OgEf/R5yc/0Dq6v9r3Nz/K5yc/wCOVf8Achz/ADkc/wByOf9VcnL/VYBk/wBk
Dv8Ackf/AHIO/wBkOf8AgDn/AEcc/wBHHP8AZBz/AGQ5/2ScgP8rnID/AEcc/wBkOf8ARxz/AEcc/wBy
Of8Acjn/AEcc/wCAOf8ARxz/AEc5/wBkDv8AgA7/ADk5/wByHP8AZBz/AEc5/wBkHP8AZDn/AHIc/1Vy
Vf9VgGT/AGQO/xxyZP9VcmT/K6qc/yuOZP8ARxz/AEcc/wBkOf8AZBz/K2OA/yucR/8ARzn/AGQc/wBk
HP8AZBz/HHI5/xxyAP8ARzn/VZxy/1W5jv9Vuar/K6qq/yvHqv9Vqqr/VaqO/yuquP8rx5z/VZyq/zmA
Of8Achz/VXJV/1WAVf8AgDn/MqOj/2vAwP8rx6r/VdXV/zmcjv8AgDn/AGQc/wCAOf8Vo07/FaOH/wBk
HP8AZDn/AHI5/zlyOf8ARxz/AGQ5/wCAOf8rx5z/a9zc/2vc3P9V4+P/q8fH/0Dq6v9A6ur/gNXV/4DV
1f9A6ur/QJWV/wBkHP9VgHL/VYBV/wCAOf8y3Nz/FaNq/wCAR/8rx6r/gMe5/yvHuP9VnI7/Vbmq/2vA
o/9rwKP/K6q4/yuqnP9Vqqr/Vaqq/yvHnP8rqrj/VbmO/4DHuf9A6ur/QOrq/4DV1f+A1dX/QOrq/0Dq
6v+A1dX/gNXV/0Dq6v9AlVz/AGQ5/1WAVf9VgGT/AIAO/2ScnP9Vq6v/MqNq/zLc3P9VgHL/AIAc/wBy
R/8Ackf/AHIc/wByOf8AgDn/AIA5/wCAHP8AgDn/AGQc/wCAOf8AZEf/Vbmc/1Xj4/9V4+P/a9zc/2vc
3P9V4+P/VePj/2vc3P9r3Nz/Y/Hx/yucgP8AgBz/VYBy/1WAZP8AgEf/HI5V/0fV1f9r3Nz/TsDA/xyA
Of8ARxz/AHJH/wByDv8Acjn/AHIc/wBHOf8AgDn/AEc5/wCAHP8AZDn/AIAc/wBkDv9VuZz/VePj/1Xj
4/9r3Nz/a9zc/1Xj4/9V4+P/a9zc/2vc3P9j8fH/K5yA/wCAHP9VgHL/VYBk/wCADv8Ackf/AHIO/wBk
R/8AZA7/AIBH/wCADv8Acjn/AHIc/wBkR/8AZEf/AIAO/wCAK/8Achz/AHI5/wBkHP8AZDn/AIBH/wBk
R/8AgCv/AIAr/wCAR/8AgEf/AIAr/wCAK/8AgEf/AIBH/wCAHP8AgDn/AEcO/1WAZP9mgICOHIAr/wBy
R/8Ackf/AIAO/wCAR/8ARw7/AIBH/wByOf8Achz/AIBH/wCADv8AZEf/AGQr/wByOf8Achz/AIA5/wCA
HP8AR0f/AGQO/wCAR/8AgEf/AIAO/wBHR/8AgA7/AIBH/wCADv8AR0f/AIAc/wCAOf8cgGT/ZoCAjgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABozM80AKxXiACsA4gAV
EOIAKwXiAEAV4gArAOIAKwDiACsA4gArAOIAKxXiACsV4gArFeIAKxXiACsV4hozM80rRyv/Djkc/wAr
HP8OOQD/ACsO/wA5HP8OOQ7/AA4O/wA5HP8OOQ7/ABwA/wArDv8OKw7/DkcO/w4rHP8rRzn/K0c5/w45
K/8AOQ7/Djkc/wA5HP8OORz/AEcO/wAcHP8OORz/AEcO/wAcHP8AORz/DjkO/wAcDv8AORz/OVU5/ytH
K/8AKw7/APPx/w5MJv8Am37/AMy9/wHV1f8AsqP/AJmc/wDFsv8Acln/ADkO/wx8WP8C+Pj/Djwu/ytH
K/8rRzn/Disc/wDz8f8AOSv/DmZf/wCekP8A/f3/C4Bi/wDMzP8A7PT/ALKS/wDb2/8OqZv/AOzp/w5n
X/8rVTn/K1U5/w4rDv8A8/H/AEMr/w6xlf8Awsz/ALu//wBFJf8A6en/AMO3/wArHP8OOQ7/ANTU/w6H
gP8IqZr/K0c5/ytVOf8OuLj/APr6/wC7tv8AenL/ANC9/wDFxf8ARw7/ALuw/wCEXf8AOQ7/AF1O/wDs
5/8AWz//C97e/ytHOf8rVTn/Djkc/wA5Dv8OOQ7/Dkcr/wA5Dv8ORxz/DkcA/w5HDv8OOQ7/Dkcc/wA5
K/8OOQ7/Dkcr/w45Dv85VUf/K1U5/w45Dv8ARxz/AFUc/wBHHP8OORz/AEcc/wBHHP8ARxz/AEc5/wA5
HP8ARxz/AFUO/wA5HP8AVRz/K1U5/ytkR/8AVRz/AEcr/w5HK/8AVRz/AEc5/w5HK/8OVQ7/Dkcc/w5V
K/8OVRz/QJWH/0DAsf9OlYf/Dkcr/ytkR/8rZDn/AFUc/w5VK/8AVSv/DlUc/yRrTv8rgFX/FYdq/yuA
Y/8rgGP/K3Jj/0DAsf8ARxz/QLGx/wBVDv8rVUf/K3JH/wBVK/8OVRz/DmQr/wBkHP8klWr/AFUr/wBy
K/8AVSv/AGQr/wBkK/85nI7/QMCj/zmcjv8AVSv/K3JH/ytyOf8cckf/FYdc/wBHHP8AZCv/OY5y/wBV
K/8AVRz/DnIr/xVrQP8rgGP/FZVc/yuAY/8Vh2r/JHlO/ytyOf8rgEf/Obmq/yu5nP85qo7/K45j/0Cy
h/8Vh2r/OY5y/xWHav9Asof/VePj/4DV1f9A6ur/gNXV/0DAsf8rckf/K4BH/0eqnP9Hx7j/HHI5/wBy
Of8Aciv/AHI5/wByK/8Aciv/K45j/1Xj4/9r3Nz/VePj/2vc3P9Hx7j/K4BH/zCAQPsAcjn/AHIr/wBy
K/8Aciv/AHI5/wByK/8Aciv/AHIr/wBkOf8AgDn/AHI5/wCAK/8Acjn/AIAr/zBwUPsAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQA
AAAoAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYrHqUAJgnTACkP0wAyBtMADwTTADUE0wAm
D9MANQDTADUA0wA1ANMAHgDTACYA0wA1ANMALw/TACwP0wAsD9MAJwzTAD0S0wAvCdMWHh6lNUw7/w41
Gv8ELyT/ADQa/xYdBf8ANRL/ACgf/xI1Fv8ANQD/AA0W/wA8G/8SLg3/ADoA/wAaDf8ALR//Ei0k/wAw
C/8WKyL/EjUa/zVVO/81VD7/AygS/wExG/8NOBr/CTwW/wAoG/8ALRb/CToJ/wAxGf8AGwb/Aiwb/wc7
Bf8AKBv/ADUW/wAoG/8JPgX/AC0a/wAyCv8HLBv/N0dM/zVMNf8SMxb/BUY1/wBeUf8ARQ3/AEgg/wBv
Vf8Sa1D/AEIm/wBiTf8HQib/C0An/wBpTf8AKgv/AD4W/xI8I/8AY0P/A0Yz/xUqG/88XT7/NVU1/wA8
Fv8Ad23/AOHe/xZDFP8AjW7/AN7N/wHMxv8Aqqn/AMi6/wC0vP8Ao4//ANXW/wA9B/8APhb/E2Y6/wD8
+P8Gm5L/Bzwf/zVHNf81Qj7/EjYm/wWDdP8A1dX/AC4X/wl0dv8Ad2H/AMnJ/wTjzv8DjXn/AOfn/wDD
0P8AzKf/ANLS/wDO1f8Jln//APTy/wDX0v8WLhz/NVhL/zVVPv8ANRj/FoNw/wDe1f8AMy7/DYJZ/wDx
8f8A9fb/BoF4/wRNLP8A6en/APPz/wBwU/8AVTT/AFZE/w2uqP8Sg4D/B+He/wpTMf81Qj7/NVA3/xJA
Kf8FmZD/AOHZ/wBXO/8WlID/AKqu/wClk/8Aqqj/AEYP/wDXzv8A8uT/AFAg/wAsH/8WVCr/AO3w/wBs
bP8A5ub/Eo57/zVPTP81VTz/AK+n/wDEv/8A0r//ALuv/w1SOv8AtbL/AMzA/wh2U/8FQhL/AHtg/wuc
dv8DQBf/ADML/wBRR/8Nyrf/AF4x/w2Uif8Anor/NUs7/zVYPv8AQij/FjkF/wA0Fv8WORb/CUc1/wBH
FP8AQBj/G0YW/wRCAP8WQhb/B0IW/xhAAv8APiv/AD41/wk5Fv8SRB//DUAN/w1CJP8+WEL/NWU+/wBD
H/8JPgv/AEQs/wBYDP8AQh//CUIN/wBCJf8AQhn/AEIf/wBCH/8AQh//AEQf/wBMH/8AQh//AFAW/wBM
Hf8AQxj/ADsW/zVlS/81aj7/ADcf/w1BIf8NVCv/CUQj/wBVFv8NUhb/AEcr/wBOLv8SSx//FkQ1/w5I
H/8aUjX/AEQf/yhub/9eu6H/MZyI/xJWJP8WTR//NVw+/zVhQP8AWCX/BFgh/xJIH/8AVh7/Fk0b/xJR
G/8JSjX/ElQk/wRYJP8AVh//A1Mb/wFNJP8ha0H/Q8Ss/wdaN/89opD/I4N1/wBWHf81X03/NXdC/wBP
N/8AWCf/AFMq/wBYPP8AUyj/G3VP/zaZgv8hi23/IZht/0ONef8hkXn/Q5V2/ymmh/9PsbH/AGMo/zN9
ev8ri3X/AFom/zVjU/81d0L/AFwk/xZLKP8AYSj/FmEo/wBmH/8bhmL/EG43/wBlKP8Aaij/AEsj/wBa
Lf8AZCX/BWow/zmflv9Q0MP/SbSv/wOBPP8ATyj/NWpU/zV3TP8HYTj/DW86/wtxN/8AVB//AGEo/zuV
df8JaED/AFwr/wBYH/8Jaij/AGEr/xt0O/8NbU7/DYg8/xNjUf8TeTv/EGRS/wlxMv81aj7/NYA+/zKZ
hv9BuKb/U7Cw/wl0P/8AYSv/JZFg/wlpPf8Abiz/FmEv/w1jK/8AaCz/adLK/1vh4f981tb/WOLi/1ji
4v9g4OD/PZBt/zV5TP81gEP/Oraj/xWPWv9Cvqz/OaeE/y+dgP87ooD/KaOC/y+hd/8voXn/IaR5/yGj
fv9f2tT/bdvb/23b2/9T5OT/U+Tk/2Li4v87lGr/NX5U/zWAUP8Sjlr/RsOz/zaghf8HaiP/AG41/wBn
JP8AYzX/AHMh/wB3K/8AYSv/AG4m/0PBrf9Jx7r/Sce6/0fItf9HyLX/UdDA/xuPWP81e0z/QYBc9wBu
Mf8Aeij/AGwt/wB3MP8AajX/AHkx/wB6KP8AbjX/AGoo/wB3KP8Aaj7/AGoq/wCANP8Aajn/AIAo/wCA
KP8Aair/AHs8/0B8ZvcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABwAEAAvwBAAL8AAAC/AEAAvwAAAL8AQAC/AEAAvwBAAL8AAAC/AEAAvwBA
AL8AAAC/AEAAvwBAAL8AAAC/AEAAvwBAAL8AQAC/AAAAvwCAAL8AAAC/AEAAvwAAAHBAYED/AEAg/wAg
IP8AQCD/ACAg/yAgAP8AQAD/ACAg/wAgIP8AIAD/AEAA/wAgIP8AQAD/AEAg/wAgAP8AQAD/ACAg/wAg
IP8AIED/AEAA/yAgIP8AQCD/AEAg/0BAQP9AYED/ACAg/yAgIP8AQAD/ACAg/wBAAP8AICD/AEAg/wBA
AP8gAAD/AEAg/wAgAP8AICD/IEAA/wBAIP8AIAD/ACAA/wAgIP8gQAD/AEAg/wAgAP8AICD/ICAg/0Bg
YP9AQED/AEAg/wBAIP8AQCD/IEAA/wAgIP8AQCD/AEAA/yAgIP8AQCD/ACAg/wAgIP8AQCD/IEAg/wBA
AP8AACD/ACAg/wBAIP8gQCD/AEAA/wAAIP8AQCD/IEAg/0BgQP9AYED/ACAg/yAgIP8AlXX/AGt2/wBA
AP8AQCD/AJqa/wCggP8AlGn/AEAg/wCefv8ATTn/AEAg/wCUaf8AgmL/ACAA/wBAIP8AQCD/AItV/wB1
ev8gQAD/ACBA/0BgQP9AYED/AEAg/wAgAP8A7+r/AMDA/yBAAP8Ag2P/AOvr/wCggP8C/fv/AHyD/wDk
yv8Ay+X/AKCA/wDo6P8Afmf/AEAA/wBAIP8cTBH/AP///wb69P8ASCj/AEAg/0BAQP9AQED/ACAg/yBA
IP8A7+r/AKur/wAgAP8Af4//AJZ2/wBPT/8A+/v/AM6d/wCXl/8A//7/AJut/wD8/P8AlGv/AP///wC/
z/8Ag2P/AP///wD///8AfFz/ICAg/0BgYP9AQED/AEAg/yBAIP8A6ur/AMCr/wAgIP8gbS3/AMbG/wD/
//8A////GXxq/wBZRv8A////AM7O/wDGxv8AXj7/AKCA/wCQX/8gdnb/ALq6/yC2rf8TyLX/AEAg/0BA
QP9AYED/ACAg/wBAAP8A7+r/AKur/wBAIP8gg2P/APXr/wCAoP8AudL/AG5n/wBAAP8Azc3/AP///wCu
k/8AICD/AEAA/yAgIP8A5OT/ALrL/wCbe/8A2tr/AEcn/0BgQP9AYED/AGBg/yCgoP8A9PT/AOrV/wCO
jv8AbXn/APXr/wCggP8A+/3/AHhK/wBAIP8ArZr/AP///wB3Lv8AQCD/AEAg/wBhUP8A////AH9f/wCD
g/8A////GVQ0/0BAYP9AQED/AIBg/wCggP8AoID/AKCA/wCOd/8gQAD/AGdH/wCgoP8AiXT/IEAA/wBA
AP8AWjT/AJJk/yAgAP8AQCD/AEAA/wBQQP8goID/AFVK/wBLK/8goID/AIBg/0BAQP9AYED/AEAg/yBA
IP8AQAD/ACAg/yBAIP8AQED/AEAg/wBAAP8AQCD/IGAg/wBAAP8gQCD/AEAg/wBAAP8gQAD/AEBA/wBA
QP8AQCD/AEAg/yBAAP8AQCD/IEAg/0BgQP9AgED/AEAg/wBAIP8AQCD/AEAg/wBgAP8AQCD/AEAg/wBA
IP8AQCD/AEAA/wBAIP8AQCD/AEAg/wBAIP8AYAD/AEAg/wBAIP8AQCD/AGAg/wAgAP8AQCD/AEAg/0CA
YP9AYED/AEAg/yAgIP8AQED/IGAg/wBAIP8AQCD/IEAg/wBAQP8AgED/AEAA/wBAIP8gQED/AGAg/wBg
QP8gIAD/AGAg/yBAYP9goGD/IIBg/wBAQP8AYCD/IGAg/0BAQP9AYED/AGAg/wBgIP8AQED/AEAg/wBg
IP8AYCD/AEAg/wBgIP8gQCD/AGAg/yBAIP8AYCD/AEAg/yBAIP8AYCD/IGBA/1DQ0P8wsJD/ULCw/0DA
oP8AQCD/AEAg/0CAYP9AgED/AEAg/wBgIP8gYCD/AGBA/wBAIP8gQCD/AGAg/yBgIP8AYCD/AEAg/wBg
IP8AQED/AGAg/wBgIP8AQCD/MJCQ/zCwkP8AQCD/AGAg/2Dg4P8AQCD/AGAg/0BgQP9AgED/AGBA/wBA
IP8AYCD/AEAg/wBgQP8AYCD/AEAg/1DQsP8wsJD/MJCQ/zCwkP9goID/MLCQ/zCQkP8wsJD/ULCQ/1Cw
sP8AYCD/IGBg/2DAwP8AYCD/AGAg/0BgYP9AgED/AEAg/wBgQP8gYCD/AGAg/yBgIP8AYCD/AGAg/zCw
kP8AQCD/AIAg/wBgIP8AQCD/AGAg/wBgIP8AYCD/AGBA/0CgoP9g4OD/YMDA/wCggP8AYCD/AGAg/0Bg
YP9AgGD/AGAg/wBgIP8AYCD/AGBA/wBgIP8AYCD/IIBA/zCwkP8AYCD/AEBA/wBgIP8AYCD/AGBA/wCA
IP8AYCD/AEAg/wCAIP8AQED/AGAg/wBgIP8AYCD/AGBA/0BgQP9AgED/AIBg/3CwsP9g4OD/IICA/wBg
IP8AYED/AGAg/zCwkP8AYCD/AIAg/yBgIP8gYED/AGAg/zCwkP9g4OD/YODg/5DQ0P9g4OD/YODg/2Dg
4P9g4OD/IIAg/0CAYP9AgED/IKCA/zCwkP8AgED/YODg/zCwkP8wkHD/YKCA/2DAoP8wkJD/MJCQ/zCQ
kP8wsHD/MJCQ/2DAoP9g4OD/YODg/2Dg4P9g4OD/YODg/2Dg4P9g4OD/AGBA/0CAQP9AgGD/IIBA/2DA
wP9QsJD/QMDA/wCAIP8AYED/AIAg/wBgQP8AgCD/AIBA/wCAIP8AYCD/AGBA/zCwkP9g4OD/YODg/2Dg
4P9g4OD/YODg/2Dg4P9w7+//AIAg/0CAYP9AgED/AIBA/yCgYP8wkJD/IIBA/wBgIP8AgED/AIBA/wBg
IP8AYCD/AGAg/wCAQP8AYED/AIAg/zCQUP8wsJD/MLCQ/zCwkP8wsJD/MLCQ/zCwkP8wsJD/AGAg/0CA
YP9VgIDvAIAg/wBgQP8AgCD/AGAg/wCAQP8AYED/AIAg/wCAIP8AYED/AIBA/wBgIP8AgCD/AGBA/wBg
IP8AgED/AIAg/wBgQP8AgCD/AIAg/wBgQP8AgCD/AIBA/1WAgO8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAoAAAAMAAAAGAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICA
gAAAgAAAAICAAAAAgAAA//8AwMDAAP///wCAgAAAgACAAIAAAAAAt9sAABwcAACk0gAA588AAMiQAADA
gQAA1KkAACsrAAC3twAA2bIAAG+3AACuXAAAgcAAAKnUAACVlQAANpsAANTUAACrVwAA164AAPD4AABv
bwAAzZoAAIGBAAD19QBlmzYAAOrUAABXVwAAstkAAPjwAAA6nQAAmpoAACcnAAC22wAAdLoAAJubAADs
2QAAkycAANu2AAB0dAAAa2sAALKyAAC3bwAA6+sAAPr1AEtrawBjOjoAALJlAAD9/QAAOjoAAPHxAAB4
eAAAv34AAODAAAC1awAAu7sAAJ06AAAvLwAA/foAAH6/AACfzwAAfb4AANfXAADw8AAA3rwAAH5+AAAh
IQAAz58AAKurAACurgAI+PAAAJcvAAC83gBwkCEAAJ+fAAD5+QAAMJgAAKOjAAC8vAAW6tQAAOfnAADS
pAAA0aMAAIeHAACrVgAA1OoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAgAAAAIA
AAIAAgAAAgAAAgAAAgAAAgAAAgAAAgACAAACAgAAAgAAAAEABAIABAACAAQCAAIAAAQAAgAAAgACAAAC
AAIAAAIABAIABAAEAgAEAAMAAAMAAQECAAIAAgADAAIKAAIAAAIABAIAAgAEAAIABAIAAgACAAACAAQC
AAIACAACAAIAAQEAAAMKBAIAAAIAAAMAAAMAAgoAAgAAAAMAAgoAAgAAAAADAAIKAAIAAAQCCQACAQEC
AAACAAACBAACAgAAAgAAAgAAAwAAAgAAAgAAAwACAAIAAAIAAAMAAgAAAgAEAQEAAwAAAwACAAgEAAIE
AAIEAAICAAAAAAIEAAICAAAAAwACBAACAgAAAAIABAIAAQEAAAIAAgIEAgACAAIAAAIACAQAAgQDAAIA
CAQAAgQAAAACAAgEAAIEAAMAAgoCAQECAAMKBAACAAQCAgQCAgQCAAIAAgAAAgQCAAIAAgACAAIEAgAC
AAIAAAIAAAMAAQEAAAACABsFBRwAAAIAWgUFBQVbBAJVBTkABAJcBQVdAAACAAQCXgUFXwAIBAACAQEA
AgQCACQFBSUIAAImBQUFBQUFNABVBQVWAgBXBVgAAgACBAJMBQUFWQACAAIAAQECAAIAABsFBU4AAgAU
BU8CAFAFBShRBQUFBQUFBVICAAIAAgBTBQUFBVQAAwAAAQEABAABACQFBSUAAEcFBUgAA0kFBUJDBQUF
BQUFBUo9BQUFSwNMBQUFBU0AAAIEAQEAAgACABsFBSUCAAQCAAIAQQUFBUJDBQVEABUFPAI9BQUFRQI1
BQUFBUYCCQACAQEAAgAEAhsFBSUDAAIKDAUFBQUFBTgAOQU6OwUFPAI9BQUFPgo1BTE/BQVAAAIAAQEA
AwACChsFBRwAAAIzBQUFBQUFNAAAMwUFBQUFKgMAAgAAAgA1BTEKNgU3AgQAAQECAAACABsFBSUCBAAU
BQUFBS4EAAICACkFBQUFLwAAAAIEADAFBTEAIgUyAAIAAQEAAgQAAiQFBSUCAAgmBR0EACcFBSgAAikF
BQUFKgIEAAIACCsFBSwCIgUFLQACAQEAAgAIBBsFBRwEAgAUBR0AAh4FHwIAAiAFBQUWAAIAAgQCIQUF
EQAEIgUFIwAEAQECBAUFBQUFBQUFEwQUBQUFBQUFFQICBAAOBQUWAgQCAAIAFwUFGAICGQUFGgIAAQEA
AgUFBQUFBQUFCwIADAUFBQUNAgAAAgAOBQ8AAAIAAAIEEAUFEQACEgUFBQIAAQEAAgQCAAACAAIAAgAI
AAIEAgACAAgAAgIAAgAIAAIEAgACAAgAAgQAAwoCAAMAAQECAAIACAACBAADAAMAAgACAAMAAwACAAAD
AAMAAgACAAMAAwACAAIIAAIAAgACAQEAAwADAAIAAgAIAAMAAwACAAIACAIAAgAIAgACAAgAAwADAAAD
AAMAAgADAAEAAQECAAIAAgADAAMAAgACAAIAAwADAAADAAMAAAMAAwACAAIAAgIAAgACAAIAAgACAQEC
BAIDAAIAAgACAgQCAwACAAIAAgIAAgACAgACAAICBAIDAAIEAgMAAAMAAwADAQEAAgAACgIEAgMAAgIA
AgoCBAIDAAIEAgMAAgQCAwAAAwIABAICAAIEAgIAAgIAAQECBAIEAgQCAAgCBAIEAgQCBAIDAAIAAgEA
AgIAAwgAAgABAwYGBQECBAIDCgMAAQECAgACAgADAgQCAAICAAICAAIAAwIJAgADAAMKAgQCBAIBBQUG
BQYFCAACAAICAQEAAwIEAgMAAgACAwADAgQCAwABAAICAAICAAIDAAICAgEFBgMCAwEFAQMAAwADAQEC
AAICAAIIBAIAAggAAgAIAAMCAgQCAwADAgACAgQCBAYFAgAAAgMGBQACAgIAAQECAwADAgQCAgMCBAIE
AgMCAwACAAIAAgMAAgMAAwIAAgUGAwIDAAIGBQIEAgQCAQECAAMAAgIEAgACAwACAwAGBQYFBgUGBQYG
BQYFBgYFBgUGAwACAwQFBgACAgIEAQECAwICBAICBAIEAgIDAAIFCAMCBAIDAgMCAwIAAwIDAgEFAQMC
AgEGAwMCBAICAQECAAIDAgADAgICAAMAAgMGAwACAgIAAgACAAMCAgQCAAMBBQYGBQYFAwIAAgMAAQEC
AwACBAgCAAMIAwICAgAFAgIEAgMCAwIEAgIEAgICAwIDAQUFBgMDAgIDAAIDAQECAgMCAgMCAwACAAIE
AgEGAwACAwACAAMCAwACAwADAAICAgADAgICBAICAwICAQEDAAIEAgACAgMCAwICAwIFAgMCAAMCAwIA
AgMCAgICAwADAgMAAgQCAgQCAAMAAQECAgMBAQUGAwACAAMAAgQGAgADAgIAAgMIAgADBgYFBgUGBQYF
BgUGBQYFCAICAQECAwMFBgUGBQEDAgIDAgIFAwICAwIDCAADAgMCBQYFBgUGBgUGBQYFBgUGAwIDAQEC
AgEGAwIDBgUCAwACAwIGAgQCAAMAAwICBAICBgUGBQYFBgUGBQYFBgUGAwACAQECAwUFAgMCBQYGBQYF
BgYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGAgMCAQECAgEGAwIBBQEDAgMCAwIDAgMCAwICAwID
AgMCBgUGBQYFBgUGBQYFBgUGAwIDAQEDAgMFBgUGBQECAgIEAgIAAwICAgMCAgACAwADBQYFBgUGBQYF
BgUGBQcFAgICAQECAwIBBQYFAQIDAAMCAgMCAgQCAwADAgMCAgICBgUGBQYFBgUGBQYFBgUGAwIDAQEC
AgMCAgMAAgMCAgIDAgMAAwICAgIDAgIEAgMCAwIDAgMCAwIDAgMCAwIDAgACAQEDAgIEAgIDAgIDAgMA
AgIDAgIDAwIAAwICAwIDAAIDAgIDAgIDAgIDAgICAwIDAQABAgMCAwICAwACAwIDAgMCAgMAAgMCAgMC
AgQCAgMCAwICBAICAwICBAIDAgMBAP///////wAAgAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAACgAAAAQAAAAIAAAAAEA
CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArgDkAAHI5AAByKwAAZDkAAIA5AACAKwArclUAK4BHAEeq
nABHx7gAHHI5ACuOYwBV4+MAa9zcADm5qgAruZwAOaqOAECyhwAVh2oAOY5yAIDV1QBA6uoAQMCxACty
RwArcjkAHHJHABWHXAAARxwAAGQrAABVKwAAVRwADnIrABVrQAArgGMAFZVcACR5TgAOVRwADmQrAABk
HAAklWoAOZyOAEDAowArZDkADlUrACRrTgArgFUAK3JjAECxsQAAVQ4AK1VHACtkRwAARysADkcrAABH
OQAOVQ4ADkccAECVhwBOlYcAK1U5AA45DgAOORwAADkcAAA5DgAORwAADkcOAAA5KwA5VUcADri4AAD6
+gAAu7YAAHpyAADQvQAAxcUAAEcOAAC7sAAAhF0AAF1OAADs5wAAWz8AC97eACtHOQAOKw4AAPPxAABD
KwAOsZUAAMLMAAC7vwAARSUAAOnpAADDtwAAKxwAANTUAA6HgAAIqZoADiscAA5mXwAAnpAAAP39AAuA
YgAAzMwAAOz0AACykgAA29sADqmbAADs6QAOZ18AK0crAAArDgAOTCYAAJt+AADMvQAB1dUAALKjAACZ
nAAAxbIAAHJZAAx8WAAC+PgADjwuAA45KwAAHBwAABwOADlVOQAOOQAAAA4OAAAcAAAPHFUAAB0OAABH
AAAAHQAADxwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfn+AfIBrgIGBgH9Jf0l/gmo8WntrPTt8PTt9a1FA
XlBQdz48PTxJeDxJeD07eT16amtSbG1ub3BxcnM+dHV2alBeUkFfYGFiY2RlZmdoaTo6UVJTVFVWV1hZ
WjtbXF1QOkNERUZHSElKSz5MTU5PUDo8Pjs0Pjc/QDs3QTs0O0I6OxseGzwbGxs1PRswPR46Mh4zNB41
NDY3KyQ4Fjk0MioeKx0kLC0SISEuFhsvMDEXHSQlJicdAh0cHCgpKB0XGBkaGxwTHR4fICEiIRIjGAcO
DxALERITEhEMFBUUFhcHCAkKAQIBAgILDA0MDQkHAAECAgIBAgICAwQBBQEFBgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAAACgA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiseaQAWBf8ATQn/AB0F/wAJBP8AVDX/ABYJ/wAf
AP8AVAD/AB8A/wBHAP8AFgD/AB8A/wBRCf8AGgn/AE8J/wAXB/8AJAv/ABwF/xYeHmk1TDv/DjUa/wQv
JP8ANBr/Fh0F/wA1Ev8AKB//EjUW/wA1AP8ADRb/ADwb/xIuDf8AOgD/ABoN/wAtH/8SLST/ADAL/xYr
Iv8SNRr/NVU7/zVUPv8DKBL/ATEb/w04Gv8JPBb/ACgb/wAtFv8JOgn/ADEZ/wAbBv8CLBv/BzsF/wAo
G/8ANRb/ACgb/wk+Bf8ALRr/ADIK/wcsG/83R0z/NUw1/xIzFv8FRjX/AF5R/wBFDf8ASCD/AG9V/xJr
UP8AQib/AGJN/wdCJv8LQCf/AGlN/wAqC/8APhb/Ejwj/wBjQ/8DRjP/FSob/zxdPv81VTX/ADwW/wB3
bf8A4d7/FkMU/wCNbv8A3s3/AczG/wCqqf8AyLr/ALS8/wCjj/8A1db/AD0H/wA+Fv8TZjr/APz4/wab
kv8HPB//NUc1/zVCPv8SNib/BYN0/wDV1f8ALhf/CXR2/wB3Yf8Aycn/BOPO/wONef8A5+f/AMPQ/wDM
p/8A0tL/AM7V/wmWf/8A9PL/ANfS/xYuHP81WEv/NVU+/wA1GP8Wg3D/AN7V/wAzLv8Ngln/APHx/wD1
9v8GgXj/BE0s/wDp6f8A8/P/AHBT/wBVNP8AVkT/Da6o/xKDgP8H4d7/ClMx/zVCPv81UDf/EkAp/wWZ
kP8A4dn/AFc7/xaUgP8Aqq7/AKWT/wCqqP8ARg//ANfO/wDy5P8AUCD/ACwf/xZUKv8A7fD/AGxs/wDm
5v8Sjnv/NU9M/zVVPP8Ar6f/AMS//wDSv/8Au6//DVI6/wC1sv8AzMD/CHZT/wVCEv8Ae2D/C5x2/wNA
F/8AMwv/AFFH/w3Kt/8AXjH/DZSJ/wCeiv81Szv/NVg+/wBCKP8WOQX/ADQW/xY5Fv8JRzX/AEcU/wBA
GP8bRhb/BEIA/xZCFv8HQhb/GEAC/wA+K/8APjX/CTkW/xJEH/8NQA3/DUIk/z5YQv81ZT7/AEMf/wk+
C/8ARCz/AFgM/wBCH/8JQg3/AEIl/wBCGf8AQh//AEIf/wBCH/8ARB//AEwf/wBCH/8AUBb/AEwd/wBD
GP8AOxb/NWVL/zVqPv8ANx//DUEh/w1UK/8JRCP/AFUW/w1SFv8ARyv/AE4u/xJLH/8WRDX/Dkgf/xpS
Nf8ARB//KG5v/167of8xnIj/ElYk/xZNH/81XD7/NWFA/wBYJf8EWCH/Ekgf/wBWHv8WTRv/ElEb/wlK
Nf8SVCT/BFgk/wBWH/8DUxv/AU0k/yFrQf9DxKz/B1o3/z2ikP8jg3X/AFYd/zVfTf81d0L/AE83/wBY
J/8AUyr/AFg8/wBTKP8bdU//NpmC/yGLbf8hmG3/Q415/yGRef9DlXb/KaaH/0+xsf8AYyj/M316/yuL
df8AWib/NWNT/zV3Qv8AXCT/Fkso/wBhKP8WYSj/AGYf/xuGYv8Qbjf/AGUo/wBqKP8ASyP/AFot/wBk
Jf8FajD/OZ+W/1DQw/9JtK//A4E8/wBPKP81alT/NXdM/wdhOP8Nbzr/C3E3/wBUH/8AYSj/O5V1/wlo
QP8AXCv/AFgf/wlqKP8AYSv/G3Q7/w1tTv8NiDz/E2NR/xN5O/8QZFL/CXEy/zVqPv81gD7/MpmG/0G4
pv9TsLD/CXQ//wBhK/8lkWD/CWk9/wBuLP8WYS//DWMr/wBoLP9p0sr/W+Hh/3zW1v9Y4uL/WOLi/2Dg
4P89kG3/NXlM/zWAQ/86tqP/FY9a/0K+rP85p4T/L52A/zuigP8po4L/L6F3/y+hef8hpHn/IaN+/1/a
1P9t29v/bdvb/1Pk5P9T5OT/YuLi/zuUav81flT/NYBQ/xKOWv9Gw7P/NqCF/wdqI/8AbjX/AGck/wBj
Nf8AcyH/AHcr/wBhK/8Abib/Q8Gt/0nHuv9Jx7r/R8i1/0fItf9R0MD/G49Y/zV7TP9MgGL/AG4x/wB6
KP8AbC3/AHcw/wBqNf8AeTH/AHoo/wBuNf8Aaij/AHco/wBqPv8Aair/AIA0/wBqOf8AgCj/AIAo/wBq
Kv8Aezz/NX1q/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAEAAYAD/ACAA/wAAAP8AYAD/AAAA/wAgAP8AYAD/AGAA/wAAAP8AYAD/ACAA/wAA
AP8AYAD/AGAA/wAAAP8AYAD/ACAA/wBgAP8AAAD/AIAA/wAAAP8AYAD/AAAAQEBgQP8AQCD/ACAg/wBA
IP8AICD/ICAA/wBAAP8AICD/ACAg/wAgAP8AQAD/ACAg/wBAAP8AQCD/ACAA/wBAAP8AICD/ACAg/wAg
QP8AQAD/ICAg/wBAIP8AQCD/QEBA/0BgQP8AICD/ICAg/wBAAP8AICD/AEAA/wAgIP8AQCD/AEAA/yAA
AP8AQCD/ACAA/wAgIP8gQAD/AEAg/wAgAP8AIAD/ACAg/yBAAP8AQCD/ACAA/wAgIP8gICD/QGBg/0BA
QP8AQCD/AEAg/wBAIP8gQAD/ACAg/wBAIP8AQAD/ICAg/wBAIP8AICD/ACAg/wBAIP8gQCD/AEAA/wAA
IP8AICD/AEAg/yBAIP8AQAD/AAAg/wBAIP8gQCD/QGBA/0BgQP8AICD/ICAg/wCVdf8Aa3b/AEAA/wBA
IP8Ampr/AKCA/wCUaf8AQCD/AJ5+/wBNOf8AQCD/AJRp/wCCYv8AIAD/AEAg/wBAIP8Ai1X/AHV6/yBA
AP8AIED/QGBA/0BgQP8AQCD/ACAA/wDv6v8AwMD/IEAA/wCDY/8A6+v/AKCA/wL9+/8AfIP/AOTK/wDL
5f8AoID/AOjo/wB+Z/8AQAD/AEAg/xxMEf8A////Bvr0/wBIKP8AQCD/QEBA/0BAQP8AICD/IEAg/wDv
6v8Aq6v/ACAA/wB/j/8Alnb/AE9P/wD7+/8Azp3/AJeX/wD//v8Am63/APz8/wCUa/8A////AL/P/wCD
Y/8A////AP///wB8XP8gICD/QGBg/0BAQP8AQCD/IEAg/wDq6v8AwKv/ACAg/yBtLf8Axsb/AP///wD/
//8ZfGr/AFlG/wD///8Azs7/AMbG/wBePv8AoID/AJBf/yB2dv8Aurr/ILat/xPItf8AQCD/QEBA/0Bg
QP8AICD/AEAA/wDv6v8Aq6v/AEAg/yCDY/8A9ev/AICg/wC50v8Abmf/AEAA/wDNzf8A////AK6T/wAg
IP8AQAD/ICAg/wDk5P8Ausv/AJt7/wDa2v8ARyf/QGBA/0BgQP8AYGD/IKCg/wD09P8A6tX/AI6O/wBt
ef8A9ev/AKCA/wD7/f8AeEr/AEAg/wCtmv8A////AHcu/wBAIP8AQCD/AGFQ/wD///8Af1//AIOD/wD/
//8ZVDT/QEBg/0BAQP8AgGD/AKCA/wCggP8AoID/AI53/yBAAP8AZ0f/AKCg/wCJdP8gQAD/AEAA/wBa
NP8AkmT/ICAA/wBAIP8AQAD/AFBA/yCggP8AVUr/AEsr/yCggP8AgGD/QEBA/0BgQP8AQCD/IEAg/wBA
AP8AICD/IEAg/wBAQP8AQCD/AEAA/wBAIP8gYCD/AEAA/yBAIP8AQCD/AEAA/yBAAP8AQED/AEBA/wBA
IP8AQCD/IEAA/wBAIP8gQCD/QGBA/0CAQP8AQCD/AEAg/wBAIP8AQCD/AGAA/wBAIP8AQCD/AEAg/wBA
IP8AQAD/AEAg/wBAIP8AQCD/AEAg/wBgAP8AQCD/AEAg/wBAIP8AYCD/ACAA/wBAIP8AQCD/QIBg/0Bg
QP8AQCD/ICAg/wBAQP8gYCD/AEAg/wBAIP8gQCD/AEBA/wCAQP8AQAD/AEAg/yBAQP8AYCD/AGBA/yAg
AP8AYCD/IEBg/2CgYP8ggGD/AEBA/wBgIP8gYCD/QEBA/0BgQP8AYCD/AGAg/wBAQP8AQCD/AGAg/wBg
IP8AQCD/AGAg/yBAIP8AYCD/IEAg/wBgIP8AQCD/IEAg/wBgIP8gYED/UNDQ/zCwkP9QsLD/QMCg/wBA
IP8AQCD/QIBg/0CAQP8AQCD/AGAg/yBgIP8AYED/AEAg/yBAIP8AYCD/IGAg/wBgIP8AQCD/AGAg/wBA
QP8AYCD/AGAg/wBAIP8wkJD/MLCQ/wBAIP8AYCD/YODg/wBAIP8AYCD/QGBA/0CAQP8AYED/AEAg/wBg
IP8AQCD/AGBA/wBgIP8AQCD/UNCw/zCwkP8wkJD/MLCQ/2CggP8wsJD/MJCQ/zCwkP9QsJD/ULCw/wBg
IP8gYGD/YMDA/wBgIP8AYCD/QGBg/0CAQP8AQCD/AGBA/yBgIP8AYCD/IGAg/wBgIP8AYCD/MLCQ/wBA
IP8AgCD/AGAg/wBAIP8AYCD/AGAg/wBgIP8AYED/QKCg/2Dg4P9gwMD/AKCA/wBgIP8AYCD/QGBg/0CA
YP8AYCD/AGAg/wBgIP8AYED/AGAg/wBgIP8ggED/MLCQ/wBgIP8AQED/AGAg/wBgIP8AYED/AIAg/wBg
IP8AQCD/AIAg/wBAQP8AYCD/AGAg/wBgIP8AYED/QGBA/0CAQP8AgGD/cLCw/2Dg4P8ggID/AGAg/wBg
QP8AYCD/MLCQ/wBgIP8AgCD/IGAg/yBgQP8AYCD/MLCQ/2Dg4P9g4OD/kNDQ/2Dg4P9g4OD/YODg/2Dg
4P8ggCD/QIBg/0CAQP8goID/MLCQ/wCAQP9g4OD/MLCQ/zCQcP9goID/YMCg/zCQkP8wkJD/MJCQ/zCw
cP8wkJD/YMCg/2Dg4P9g4OD/YODg/2Dg4P9g4OD/YODg/2Dg4P8AYED/QIBA/0CAYP8ggED/YMDA/1Cw
kP9AwMD/AIAg/wBgQP8AgCD/AGBA/wCAIP8AgED/AIAg/wBgIP8AYED/MLCQ/2Dg4P9g4OD/YODg/2Dg
4P9g4OD/YODg/3Dv7/8AgCD/QIBg/0CAQP8AgED/IKBg/zCQkP8ggED/AGAg/wCAQP8AgED/AGAg/wBg
IP8AYCD/AIBA/wBgQP8AgCD/MJBQ/zCwkP8wsJD/MLCQ/zCwkP8wsJD/MLCQ/zCwkP8AYCD/QIBg/2CA
gP8AgCD/AGBA/wCAIP8AYCD/AIBA/wBgQP8AgCD/AIAg/wBgQP8AgED/AGAg/wCAIP8AYED/AGAg/wCA
QP8AgCD/AGBA/wCAIP8AgCD/AGBA/wCAIP8AgED/YICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAA==
</value>
</data>
</root>
\ No newline at end of file
......@@ -36,6 +36,7 @@ namespace TSA_V
this.btnExit = new System.Windows.Forms.Button();
this.btnWork = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.LblUserName = new System.Windows.Forms.Label();
this.btnScreenTest = new System.Windows.Forms.Button();
this.lblWaitTime = new System.Windows.Forms.Label();
this.btnCloseLed = new System.Windows.Forms.Button();
......@@ -44,6 +45,7 @@ namespace TSA_V
this.btnMaintenance = new System.Windows.Forms.Button();
this.btnCom = new System.Windows.Forms.Button();
this.btnProduct = new System.Windows.Forms.Button();
this.BtnHistory = new System.Windows.Forms.Button();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
......@@ -96,6 +98,8 @@ namespace TSA_V
// panel1
//
this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.panel1.Controls.Add(this.BtnHistory);
this.panel1.Controls.Add(this.LblUserName);
this.panel1.Controls.Add(this.lblVersion);
this.panel1.Controls.Add(this.btnScreenTest);
this.panel1.Controls.Add(this.lblWaitTime);
......@@ -110,10 +114,19 @@ namespace TSA_V
this.panel1.Size = new System.Drawing.Size(861, 453);
this.panel1.TabIndex = 14;
//
// LblUserName
//
this.LblUserName.AutoSize = true;
this.LblUserName.Location = new System.Drawing.Point(21, 420);
this.LblUserName.Name = "LblUserName";
this.LblUserName.Size = new System.Drawing.Size(41, 12);
this.LblUserName.TabIndex = 18;
this.LblUserName.Text = "label1";
//
// btnScreenTest
//
this.btnScreenTest.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnScreenTest.Location = new System.Drawing.Point(630, 310);
this.btnScreenTest.Location = new System.Drawing.Point(640, 310);
this.btnScreenTest.Name = "btnScreenTest";
this.btnScreenTest.Size = new System.Drawing.Size(104, 40);
this.btnScreenTest.TabIndex = 17;
......@@ -229,6 +242,17 @@ namespace TSA_V
this.btnProduct.UseVisualStyleBackColor = false;
this.btnProduct.Click += new System.EventHandler(this.btnProduct_Click);
//
// BtnHistory
//
this.BtnHistory.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.BtnHistory.Location = new System.Drawing.Point(640, 264);
this.BtnHistory.Name = "BtnHistory";
this.BtnHistory.Size = new System.Drawing.Size(104, 40);
this.BtnHistory.TabIndex = 19;
this.BtnHistory.Text = "历史记录查询";
this.BtnHistory.UseVisualStyleBackColor = true;
this.BtnHistory.Click += new System.EventHandler(this.BtnHistory_Click);
//
// FrmMenu
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
......@@ -269,5 +293,7 @@ namespace TSA_V
private System.Windows.Forms.Label lblWaitTime;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Button btnScreenTest;
private System.Windows.Forms.Label LblUserName;
private System.Windows.Forms.Button BtnHistory;
}
}
\ No newline at end of file
......@@ -80,6 +80,7 @@ namespace TSA_V
private System.Timers.Timer timer = new System.Timers.Timer();
private void FrmMenu_Load(object sender, EventArgs e)
{
LblUserName.Text = DB.userName;
GetVersion(true);
Task.Factory.StartNew(delegate
{
......@@ -335,5 +336,11 @@ namespace TSA_V
{
openForms();
}
private void BtnHistory_Click(object sender, EventArgs e)
{
FrmHistory frm = new FrmHistory();
frm.ShowDialog();
}
}
}
......@@ -105,7 +105,16 @@ namespace TSA_V
XmlConfigurator.Configure();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
DeviceLibrary.DB.db = new DAL.SQLite();
bool rtn = DeviceLibrary.DB.db.Connect();
LogUtil.info("登录数据库" + rtn);
FrmLogin frm = new FrmLogin();
DialogResult dr = frm.ShowDialog();
if (dr == DialogResult.OK)
Application.Run(new FrmMenu());
DeviceLibrary.DB.db.Close();
}
}
......
......@@ -97,6 +97,9 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net46\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Speech" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Forms.DataVisualization" />
......@@ -154,6 +157,18 @@
<Compile Include="FrmBoardList.Designer.cs">
<DependentUpon>FrmBoardList.cs</DependentUpon>
</Compile>
<Compile Include="FrmHistory.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmHistory.Designer.cs">
<DependentUpon>FrmHistory.cs</DependentUpon>
</Compile>
<Compile Include="FrmLogin.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmLogin.Designer.cs">
<DependentUpon>FrmLogin.cs</DependentUpon>
</Compile>
<Compile Include="FrmMaintenance.cs">
<SubType>Form</SubType>
</Compile>
......@@ -306,6 +321,12 @@
<EmbeddedResource Include="FrmBoardList.resx">
<DependentUpon>FrmBoardList.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmHistory.resx">
<DependentUpon>FrmHistory.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmLogin.resx">
<DependentUpon>FrmLogin.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmMaintenance.resx">
<DependentUpon>FrmMaintenance.cs</DependentUpon>
</EmbeddedResource>
......@@ -587,8 +608,10 @@
<Error Condition="!Exists('..\packages\Microsoft.ML.CpuMath.0.11.0\build\netstandard2.0\Microsoft.ML.CpuMath.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ML.CpuMath.0.11.0\build\netstandard2.0\Microsoft.ML.CpuMath.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.ML.0.11.0\build\netstandard2.0\Microsoft.ML.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ML.0.11.0\build\netstandard2.0\Microsoft.ML.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.ML.0.11.0\build\netstandard2.0\Microsoft.ML.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ML.0.11.0\build\netstandard2.0\Microsoft.ML.targets'))" />
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
</Target>
<Import Project="..\packages\Microsoft.ML.0.11.0\build\netstandard2.0\Microsoft.ML.targets" Condition="Exists('..\packages\Microsoft.ML.0.11.0\build\netstandard2.0\Microsoft.ML.targets')" />
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\build\net46\Stub.System.Data.SQLite.Core.NetFramework.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.
<Target Name="BeforeBuild">
......
......@@ -4,9 +4,11 @@
<package id="Microsoft.ML" version="0.11.0" targetFramework="net461" />
<package id="Microsoft.ML.CpuMath" version="0.11.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.113.3" targetFramework="net461" />
<package id="System.Buffers" version="4.4.0" targetFramework="net461" />
<package id="System.CodeDom" version="4.4.0" targetFramework="net461" />
<package id="System.Collections.Immutable" version="1.5.0" targetFramework="net461" />
<package id="System.Data.SQLite.Core" version="1.0.113.7" targetFramework="net461" />
<package id="System.Memory" version="4.5.1" targetFramework="net461" />
<package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net461" />
<package id="System.Reflection.Emit.Lightweight" version="4.3.0" targetFramework="net461" />
......
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')"
Include="$(MSBuildThisFileDirectory)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')"
Include="$(MSBuildThisFileDirectory)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')"
Include="$(MSBuildThisFileDirectory)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')"
Include="$(MSBuildThisFileDirectory)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')"
Include="$(MSBuildThisFileDirectory)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** Target Framework Version Directory Base Name **
******************************************************************************
-->
<PropertyGroup Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')">
<!--
NOTE: Attempt to determine the name of our immediate parent directory,
e.g. "net40". This is needed in order to locate the correct set
of SQLite interop files. This value will have a trailing slash.
-->
<SQLiteTargetFramework>$([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)'))</SQLiteTargetFramework>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<!--
NOTE: Grab the list of SQLite interop files to be copied to the build
output directory. There should be one file for each supported
processor architecture.
-->
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)') And
'$(SQLiteTargetFramework)' != '' And
HasTrailingSlash('$(SQLiteTargetFramework)')"
Include="$(MSBuildThisFileDirectory)..\..\build\$(SQLiteTargetFramework)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** Target Framework Version Directory Base Name **
******************************************************************************
-->
<PropertyGroup Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')">
<!--
NOTE: Attempt to determine the name of our immediate parent directory,
e.g. "net40". This is needed in order to locate the correct set
of SQLite interop files. This value will have a trailing slash.
-->
<SQLiteTargetFramework>$([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)'))</SQLiteTargetFramework>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<!--
NOTE: Grab the list of SQLite interop files to be copied to the build
output directory. There should be one file for each supported
processor architecture.
-->
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)') And
'$(SQLiteTargetFramework)' != '' And
HasTrailingSlash('$(SQLiteTargetFramework)')"
Include="$(MSBuildThisFileDirectory)..\..\build\$(SQLiteTargetFramework)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** Target Framework Version Directory Base Name **
******************************************************************************
-->
<PropertyGroup Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')">
<!--
NOTE: Attempt to determine the name of our immediate parent directory,
e.g. "net40". This is needed in order to locate the correct set
of SQLite interop files. This value will have a trailing slash.
-->
<SQLiteTargetFramework>$([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)'))</SQLiteTargetFramework>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<!--
NOTE: Grab the list of SQLite interop files to be copied to the build
output directory. There should be one file for each supported
processor architecture.
-->
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)') And
'$(SQLiteTargetFramework)' != '' And
HasTrailingSlash('$(SQLiteTargetFramework)')"
Include="$(MSBuildThisFileDirectory)..\..\build\$(SQLiteTargetFramework)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** Target Framework Version Directory Base Name **
******************************************************************************
-->
<PropertyGroup Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')">
<!--
NOTE: Attempt to determine the name of our immediate parent directory,
e.g. "net40". This is needed in order to locate the correct set
of SQLite interop files. This value will have a trailing slash.
-->
<SQLiteTargetFramework>$([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)'))</SQLiteTargetFramework>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<!--
NOTE: Grab the list of SQLite interop files to be copied to the build
output directory. There should be one file for each supported
processor architecture.
-->
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)') And
'$(SQLiteTargetFramework)' != '' And
HasTrailingSlash('$(SQLiteTargetFramework)')"
Include="$(MSBuildThisFileDirectory)..\..\build\$(SQLiteTargetFramework)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<!--
*
* System.Data.SQLite.Core.NetFramework.targets -
*
* WARNING: This MSBuild file requires MSBuild 4.0 features.
*
* Written by Joe Mistachkin and David Archer.
* Released to the public domain, use at your own risk!
*
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
******************************************************************************
** Load Per-User Settings **
******************************************************************************
-->
<!--
NOTE: If the per-user settings file exists, import it now. The contained
settings, if any, will override the default ones provided below.
-->
<Import Condition="'$(MSBuildThisFileFullPath)' != '' And
Exists('$(MSBuildThisFileFullPath).user')"
Project="$(MSBuildThisFileFullPath).user" />
<!--
******************************************************************************
** Target Framework Version Directory Base Name **
******************************************************************************
-->
<PropertyGroup Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)')">
<!--
NOTE: Attempt to determine the name of our immediate parent directory,
e.g. "net40". This is needed in order to locate the correct set
of SQLite interop files. This value will have a trailing slash.
-->
<SQLiteTargetFramework>$([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)'))</SQLiteTargetFramework>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Items **
******************************************************************************
-->
<ItemGroup>
<!--
NOTE: Grab the list of SQLite interop files to be copied to the build
output directory. There should be one file for each supported
processor architecture.
-->
<SQLiteInteropFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
HasTrailingSlash('$(MSBuildThisFileDirectory)') And
'$(SQLiteTargetFramework)' != '' And
HasTrailingSlash('$(SQLiteTargetFramework)')"
Include="$(MSBuildThisFileDirectory)..\..\build\$(SQLiteTargetFramework)**\SQLite.Interop.*" />
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Content Items **
******************************************************************************
-->
<ItemGroup Condition="'$(ContentSQLiteInteropFiles)' != '' And
'$(ContentSQLiteInteropFiles)' != 'false' And
'@(SQLiteInteropFiles)' != ''">
<Content Include="@(SQLiteInteropFiles)">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!--
******************************************************************************
** SQLite Interop Library Build Targets **
******************************************************************************
-->
<Target Name="CopySQLiteInteropFiles"
Condition="'$(CopySQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')"
Inputs="@(SQLiteInteropFiles)"
Outputs="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
<!--
NOTE: Copy "SQLite.Interop.dll" and all related files, for every
architecture that we support, to the build output directory.
-->
<Copy SourceFiles="@(SQLiteInteropFiles)"
DestinationFiles="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CleanSQLiteInteropFiles"
Condition="'$(CleanSQLiteInteropFiles)' != 'false' And
'$(OutDir)' != '' And
HasTrailingSlash('$(OutDir)') And
Exists('$(OutDir)')">
<!--
NOTE: Delete "SQLite.Interop.dll" and all related files, for every
architecture that we support, from the build output directory.
-->
<Delete Files="@(SQLiteInteropFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!--
******************************************************************************
-->
<Target Name="CollectSQLiteInteropFiles"
Condition="'$(CollectSQLiteInteropFiles)' != 'false'">
<ItemGroup>
<FilesForPackagingFromProject Include="@(SQLiteInteropFiles)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<!--
******************************************************************************
** SQLite Interop Library Build Properties **
******************************************************************************
-->
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
CopySQLiteInteropFiles;
</PostBuildEventDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
CopySQLiteInteropFiles;
</BuildDependsOn>
<CleanDependsOn>
$(CleanDependsOn);
CleanSQLiteInteropFiles;
</CleanDependsOn>
</PropertyGroup>
<!--
******************************************************************************
** SQLite Interop Library Publish Properties for Visual Studio 201x **
******************************************************************************
-->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' Or
'$(VisualStudioVersion)' == '10.0' Or
'$(VisualStudioVersion)' == '11.0' Or
'$(VisualStudioVersion)' == '12.0' Or
'$(VisualStudioVersion)' == '14.0' Or
'$(VisualStudioVersion)' == '15.0' Or
'$(VisualStudioVersion)' == '16.0'">
<PipelineCollectFilesPhaseDependsOn>
CollectSQLiteInteropFiles;
$(PipelineCollectFilesPhaseDependsOn);
</PipelineCollectFilesPhaseDependsOn>
</PropertyGroup>
</Project>
<?xml version="1.0"?>
<!--
*
* System.Data.SQLite.dll.altconfig -
*
* WARNING: This XML configuration file is intended for use within the NuGet
* package directories only. Please do not copy this file to any of
* the build output directories because it could interfere with the
* native library pre-loading feature.
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<configuration>
<appSettings>
<add key="PreLoadSQLite_BaseDirectory"
value="%PreLoadSQLite_AssemblyDirectory%\..\..\build\%PreLoadSQLite_TargetFramework%" />
</appSettings>
<dllmap dll="SQLite.Interop" target="SQLite.Interop.dll" />
</configuration>
<?xml version="1.0"?>
<!--
*
* System.Data.SQLite.dll.altconfig -
*
* WARNING: This XML configuration file is intended for use within the NuGet
* package directories only. Please do not copy this file to any of
* the build output directories because it could interfere with the
* native library pre-loading feature.
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<configuration>
<appSettings>
<add key="PreLoadSQLite_BaseDirectory"
value="%PreLoadSQLite_AssemblyDirectory%\..\..\build\%PreLoadSQLite_TargetFramework%" />
</appSettings>
<dllmap dll="SQLite.Interop" target="SQLite.Interop.dll" />
</configuration>
<?xml version="1.0"?>
<!--
*
* System.Data.SQLite.dll.altconfig -
*
* WARNING: This XML configuration file is intended for use within the NuGet
* package directories only. Please do not copy this file to any of
* the build output directories because it could interfere with the
* native library pre-loading feature.
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<configuration>
<appSettings>
<add key="PreLoadSQLite_BaseDirectory"
value="%PreLoadSQLite_AssemblyDirectory%\..\..\build\%PreLoadSQLite_TargetFramework%" />
</appSettings>
<dllmap dll="SQLite.Interop" target="SQLite.Interop.dll" />
</configuration>
<?xml version="1.0"?>
<!--
*
* System.Data.SQLite.dll.altconfig -
*
* WARNING: This XML configuration file is intended for use within the NuGet
* package directories only. Please do not copy this file to any of
* the build output directories because it could interfere with the
* native library pre-loading feature.
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<configuration>
<appSettings>
<add key="PreLoadSQLite_BaseDirectory"
value="%PreLoadSQLite_AssemblyDirectory%\..\..\build\%PreLoadSQLite_TargetFramework%" />
</appSettings>
<dllmap dll="SQLite.Interop" target="SQLite.Interop.dll" />
</configuration>
<?xml version="1.0"?>
<!--
*
* System.Data.SQLite.dll.altconfig -
*
* WARNING: This XML configuration file is intended for use within the NuGet
* package directories only. Please do not copy this file to any of
* the build output directories because it could interfere with the
* native library pre-loading feature.
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<configuration>
<appSettings>
<add key="PreLoadSQLite_BaseDirectory"
value="%PreLoadSQLite_AssemblyDirectory%\..\..\build\%PreLoadSQLite_TargetFramework%" />
</appSettings>
<dllmap dll="SQLite.Interop" target="SQLite.Interop.dll" />
</configuration>
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!