Crop, rotate and trim album art

This commit is contained in:
Grigory Chudov
2018-07-03 19:59:19 -04:00
parent 53dadd858a
commit dd1358f8dc
5 changed files with 703 additions and 521 deletions

View File

@@ -352,9 +352,7 @@
<None Include="Resources\wv.ico" />
<None Include="Resources\wave.ico" />
<None Include="Resources\tta.ico" />
<Content Include="user_profiles_enabled">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="user_profiles_enabled" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">

View File

@@ -557,6 +557,7 @@ namespace JDP
this.Invoke((MethodInvoker)delegate()
{
frmChoice dlg = new frmChoice();
dlg.config = _profile._config;
if (_choiceWidth != 0 && _choiceHeight != 0)
dlg.Size = new Size(_choiceWidth, _choiceHeight);
if (_choiceMaxed)
@@ -941,6 +942,7 @@ namespace JDP
if (_batchPaths.Count <= 1 && _batchProcessed == 0 && action == CUEAction.Encode && checkBoxEditTags.Checked)
{
frmChoice dlg = new frmChoice();
dlg.config = _profile._config;
if (_choiceWidth != 0 && _choiceHeight != 0)
dlg.Size = new Size(_choiceWidth, _choiceHeight);
if (_choiceMaxed)
@@ -971,6 +973,19 @@ namespace JDP
entry.Metadata.CopyMetadata(dlg.ChosenRelease.metadata);
}
}
if (dlgRes != DialogResult.Cancel)
{
if (cueSheet.AlbumArt.Count == 0 && cueSheet.Metadata.AlbumArt.Count > 0)
{
var ms = new MemoryStream();
var image = cueSheet.Metadata.AlbumArt.Find(x => x.primary) ?? cueSheet.Metadata.AlbumArt[0];
if (cueSheet.CTDB.FetchFile(image.uri, ms))
{
var blob = new TagLib.ByteVector(ms.ToArray());
cueSheet.AlbumArt.Add(new TagLib.Picture(new TagLib.ByteVector(blob)));
}
}
}
dlg.Close();
}
else if (_profile._config.advanced.CacheMetadata)
@@ -2238,6 +2253,7 @@ namespace JDP
}
CueSheet.UseLocalDB(_localDB);
frmChoice dlg = new frmChoice();
dlg.config = _profile._config;
if (_choiceWidth != 0 && _choiceHeight != 0)
dlg.Size = new Size(_choiceWidth, _choiceHeight);
if (_choiceMaxed)

View File

@@ -240,11 +240,13 @@ namespace JDP
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.tableLayoutPanel1);
this.KeyPreview = true;
this.Name = "frmChoice";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmChoice_FormClosing);
this.Load += new System.EventHandler(this.frmChoice_Load);
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.frmChoice_KeyPress);
this.Resize += new System.EventHandler(this.frmChoice_Resize);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();

View File

@@ -12,347 +12,493 @@ using CUETools.CTDB;
namespace JDP
{
public partial class frmChoice : Form
{
public frmChoice()
{
InitializeComponent();
}
public partial class frmChoice : Form
{
public frmChoice()
{
InitializeComponent();
}
public CUESheet CUE;
public CUESheet CUE;
public CUEConfig config;
private bool ctdb;
private CTDBMetadataSearch metadataSearch;
private bool ctdb;
private CTDBMetadataSearch metadataSearch;
private enum CropAlign
{
None, TopLeft, BottomRight
};
private RotateFlipType imageRotation = RotateFlipType.RotateNoneFlipNone;
private CropAlign cropAlign = CropAlign.None;
private int trimEdge = 0;
public void LookupAlbumInfo(bool cache, bool cue, bool ctdb, CTDBMetadataSearch metadataSearch)
{
this.ctdb = ctdb;
this.metadataSearch = metadataSearch;
var releases = CUE.LookupAlbumInfo(cache, cue, false, CTDBMetadataSearch.None);
this.Choices = releases;
if (ctdb || metadataSearch != CTDBMetadataSearch.None)
backgroundWorker1.RunWorkerAsync(null);
}
public void LookupAlbumInfo(bool cache, bool cue, bool ctdb, CTDBMetadataSearch metadataSearch)
{
this.ctdb = ctdb;
this.metadataSearch = metadataSearch;
var releases = CUE.LookupAlbumInfo(cache, cue, false, CTDBMetadataSearch.None);
this.Choices = releases;
if (ctdb || metadataSearch != CTDBMetadataSearch.None)
backgroundWorker1.RunWorkerAsync(null);
}
private void frmChoice_Load(object sender, EventArgs e)
{
buttonOk.Select();
}
private void frmChoice_Load(object sender, EventArgs e)
{
buttonOk.Select();
}
private void AddItem(object i)
{
if (i is CUEToolsSourceFile)
{
CUEToolsSourceFile sf = i as CUEToolsSourceFile;
ListViewItem item = new ListViewItem(sf.path, 0);
item.Tag = sf;
listChoices.Items.Add(item);
}
else if (i is TagLib.IPicture)
{
TagLib.IPicture pic = i as TagLib.IPicture;
ListViewItem item = new ListViewItem(pic.Description, -1);
item.Tag = pic;
listChoices.Items.Add(item);
}
else if (i is CUEMetadataEntry)
{
CUEMetadataEntry entry = i as CUEMetadataEntry;
ListViewItem item = new ListViewItem(entry.ToString(), entry.ImageKey);
item.Tag = entry;
listChoices.Items.Add(item);
private void AddItem(object i)
{
if (i is CUEToolsSourceFile)
{
CUEToolsSourceFile sf = i as CUEToolsSourceFile;
ListViewItem item = new ListViewItem(sf.path, 0);
item.Tag = sf;
listChoices.Items.Add(item);
}
else if (i is TagLib.IPicture)
{
TagLib.IPicture pic = i as TagLib.IPicture;
ListViewItem item = new ListViewItem(pic.Description, -1);
item.Tag = pic;
listChoices.Items.Add(item);
}
else if (i is CUEMetadataEntry)
{
CUEMetadataEntry entry = i as CUEMetadataEntry;
ListViewItem item = new ListViewItem(entry.ToString(), entry.ImageKey);
item.Tag = entry;
listChoices.Items.Add(item);
if (entry.ImageKey == "freedb")
{
// check if the entry contains non-iso characters,
// and add a second one if it does
CUEMetadata copy = new CUEMetadata(entry.metadata);
if (copy.FreedbToEncoding())
{
entry = new CUEMetadataEntry(copy, entry.TOC, entry.ImageKey);
item = new ListViewItem(entry.ToString(), entry.ImageKey);
item.Tag = entry;
listChoices.Items.Add(item);
}
}
}
else
{
ListViewItem item = new ListViewItem(i.ToString(), -1);
item.Tag = i;
listChoices.Items.Add(item);
}
}
if (entry.ImageKey == "freedb")
{
// check if the entry contains non-iso characters,
// and add a second one if it does
CUEMetadata copy = new CUEMetadata(entry.metadata);
if (copy.FreedbToEncoding())
{
entry = new CUEMetadataEntry(copy, entry.TOC, entry.ImageKey);
item = new ListViewItem(entry.ToString(), entry.ImageKey);
item.Tag = entry;
listChoices.Items.Add(item);
}
}
}
else
{
ListViewItem item = new ListViewItem(i.ToString(), -1);
item.Tag = i;
listChoices.Items.Add(item);
}
}
public IEnumerable<object> Choices
{
set
{
foreach (object i in value)
AddItem(i);
if (CUE != null)
{
textBox1.Hide();
pictureBox1.Hide();
tableLayoutPanelMeta.Show();
tableLayoutPanel1.SetRowSpan(listChoices, 2);
tableLayoutPanel1.PerformLayout();
}
else
{
textBox1.Show();
pictureBox1.Hide();
tableLayoutPanelMeta.Hide();
tableLayoutPanel1.SetRowSpan(textBox1, 3);
tableLayoutPanel1.PerformLayout();
}
if (listChoices.Items.Count > 0)
listChoices.Items[0].Selected = true;
}
}
public IEnumerable<object> Choices
{
set
{
foreach (object i in value)
AddItem(i);
if (CUE != null)
{
textBox1.Hide();
pictureBox1.Hide();
tableLayoutPanelMeta.Show();
tableLayoutPanel1.SetRowSpan(listChoices, 2);
tableLayoutPanel1.PerformLayout();
}
else
{
textBox1.Show();
pictureBox1.Hide();
tableLayoutPanelMeta.Hide();
tableLayoutPanel1.SetRowSpan(textBox1, 3);
tableLayoutPanel1.PerformLayout();
}
if (listChoices.Items.Count > 0)
listChoices.Items[0].Selected = true;
}
}
public int ChosenIndex
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0].Index : -1;
}
}
public int ChosenIndex
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0].Index : -1;
}
}
public object ChosenObject
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0].Tag : null;
}
}
public object ChosenObject
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0].Tag : null;
}
}
public CUEMetadataEntry ChosenRelease
{
get
{
object o = ChosenObject;
return o != null && o is CUEMetadataEntry ? o as CUEMetadataEntry : null;
}
}
public CUEMetadataEntry ChosenRelease
{
get
{
object o = ChosenObject;
return o != null && o is CUEMetadataEntry ? o as CUEMetadataEntry : null;
}
}
private ListViewItem ChosenItem
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0] : null;
}
}
private ListViewItem ChosenItem
{
get
{
return listChoices.SelectedItems.Count > 0 ? listChoices.SelectedItems[0] : null;
}
}
private void frmChoice_FormClosing(object sender, FormClosingEventArgs e)
{
if (backgroundWorker1.IsBusy)
{
e.Cancel = true;
return;
}
CUEMetadataEntry ri = ChosenRelease;
if (e.CloseReason != CloseReason.None || DialogResult != DialogResult.OK || ri == null || CUE == null)
return;
CUE.CopyMetadata(ri.metadata);
}
private void frmChoice_FormClosing(object sender, FormClosingEventArgs e)
{
if (backgroundWorker1.IsBusy)
{
e.Cancel = true;
return;
}
private void AutoResizeList(ListView list, int mainCol)
{
list.SuspendLayout();
int widthAvailable = list.ClientSize.Width - 2 * SystemInformation.BorderSize.Width - SystemInformation.VerticalScrollBarWidth;
for (int i = 0; i < list.Columns.Count; i++)
if (i != mainCol)
{
list.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
widthAvailable -= list.Columns[i].Width + SystemInformation.BorderSize.Width;
}
if (list.Columns[mainCol].Width != widthAvailable)
list.Columns[mainCol].Width = widthAvailable;
list.ResumeLayout(false);
}
TagLib.IPicture picture = ChosenObject as TagLib.IPicture;
if (e.CloseReason == CloseReason.None && DialogResult == DialogResult.OK
&& pictureBox1.Image != null && picture != null
&& (cropAlign != CropAlign.None || imageRotation != RotateFlipType.RotateNoneFlipNone || trimEdge != 0))
{
using (MemoryStream encoded = new MemoryStream())
{
pictureBox1.Image.Save(encoded, System.Drawing.Imaging.ImageFormat.Jpeg);
picture.Data = new TagLib.ByteVector(encoded.ToArray());
picture.MimeType = "image/jpeg";
}
}
private void listChoices_SelectedIndexChanged(object sender, EventArgs e)
{
object item = ChosenObject;
if (item != null && item is TagLib.IPicture)
{
TagLib.IPicture picture = item as TagLib.IPicture;
using (MemoryStream imageStream = new MemoryStream(picture.Data.Data, 0, picture.Data.Count))
try { pictureBox1.Image = Image.FromStream(imageStream); }
catch { }
textBox1.Hide();
pictureBox1.Show();
tableLayoutPanelMeta.Hide();
tableLayoutPanel1.SetRowSpan(pictureBox1, 2);
}
else if (item != null && item is CUEToolsSourceFile)
{
textBox1.Text = (item as CUEToolsSourceFile).contents.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n");
}
else if (item != null && item is CUEMetadataEntry)
{
CUEMetadataEntry r = (item as CUEMetadataEntry);
dataGridViewTracks.SuspendLayout();
dataGridViewTracks.Rows.Clear();
foreach (CUETrackMetadata track in r.metadata.Tracks)
{
int no = dataGridViewTracks.Rows.Count;
dataGridViewTracks.Rows.Add(
(no + 1).ToString(),
track.Title,
r.TOC[no + r.TOC.FirstAudio].StartMSF,
r.TOC[no + r.TOC.FirstAudio].LengthMSF
);
}
dataGridViewTracks.ResumeLayout();
dataGridViewMetadata.Rows.Clear();
dataGridViewMetadata.Rows.Add("Artist", r.metadata.Artist);
dataGridViewMetadata.Rows.Add("Album", r.metadata.Title);
dataGridViewMetadata.Rows.Add("Date", r.metadata.Year);
dataGridViewMetadata.Rows.Add("Genre", r.metadata.Genre);
dataGridViewMetadata.Rows.Add("Disc Number", r.metadata.DiscNumber);
dataGridViewMetadata.Rows.Add("Total Discs", r.metadata.TotalDiscs);
dataGridViewMetadata.Rows.Add("Disc Name", r.metadata.DiscName);
dataGridViewMetadata.Rows.Add("Label", r.metadata.Label);
CUEMetadataEntry ri = ChosenRelease;
if (e.CloseReason != CloseReason.None || DialogResult != DialogResult.OK || ri == null || CUE == null)
return;
CUE.CopyMetadata(ri.metadata);
// TODO: copy album art
}
private void AutoResizeList(ListView list, int mainCol)
{
list.SuspendLayout();
int widthAvailable = list.ClientSize.Width - 2 * SystemInformation.BorderSize.Width - SystemInformation.VerticalScrollBarWidth;
for (int i = 0; i < list.Columns.Count; i++)
if (i != mainCol)
{
list.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
widthAvailable -= list.Columns[i].Width + SystemInformation.BorderSize.Width;
}
if (list.Columns[mainCol].Width != widthAvailable)
list.Columns[mainCol].Width = widthAvailable;
list.ResumeLayout(false);
}
private void listChoices_SelectedIndexChanged(object sender, EventArgs e)
{
object item = ChosenObject;
if (item != null && item is TagLib.IPicture)
{
imageRotation = RotateFlipType.RotateNoneFlipNone;
cropAlign = CropAlign.None;
trimEdge = 0;
ResetPictureBox();
textBox1.Hide();
pictureBox1.Show();
tableLayoutPanelMeta.Hide();
tableLayoutPanel1.SetRowSpan(pictureBox1, 2);
}
else if (item != null && item is CUEToolsSourceFile)
{
textBox1.Text = (item as CUEToolsSourceFile).contents.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n");
}
else if (item != null && item is CUEMetadataEntry)
{
CUEMetadataEntry r = (item as CUEMetadataEntry);
dataGridViewTracks.SuspendLayout();
dataGridViewTracks.Rows.Clear();
foreach (CUETrackMetadata track in r.metadata.Tracks)
{
int no = dataGridViewTracks.Rows.Count;
dataGridViewTracks.Rows.Add(
(no + 1).ToString(),
track.Title,
r.TOC[no + r.TOC.FirstAudio].StartMSF,
r.TOC[no + r.TOC.FirstAudio].LengthMSF
);
}
dataGridViewTracks.ResumeLayout();
dataGridViewMetadata.Rows.Clear();
dataGridViewMetadata.Rows.Add("Artist", r.metadata.Artist);
dataGridViewMetadata.Rows.Add("Album", r.metadata.Title);
dataGridViewMetadata.Rows.Add("Date", r.metadata.Year);
dataGridViewMetadata.Rows.Add("Genre", r.metadata.Genre);
dataGridViewMetadata.Rows.Add("Disc Number", r.metadata.DiscNumber);
dataGridViewMetadata.Rows.Add("Total Discs", r.metadata.TotalDiscs);
dataGridViewMetadata.Rows.Add("Disc Name", r.metadata.DiscName);
dataGridViewMetadata.Rows.Add("Label", r.metadata.Label);
dataGridViewMetadata.Rows.Add("Label#", r.metadata.LabelNo);
dataGridViewMetadata.Rows.Add("Country", r.metadata.Country);
dataGridViewMetadata.Rows.Add("Release Date", r.metadata.ReleaseDate);
dataGridViewMetadata.Rows.Add("Barcode", r.metadata.Barcode);
dataGridViewMetadata.Rows.Add("Comment", r.metadata.Comment);
if (pictureBox1.ImageLocation == null)
{
if (pictureBox1.Image != null) pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
pictureBox1.ImageLocation = null;
if (r.metadata.AlbumArt.Count > 0)
{
pictureBox1.Show();
var image = r.metadata.AlbumArt.Find(x => x.primary) ?? r.metadata.AlbumArt[0];
pictureBox1.ImageLocation = image.uri150;
} else
{
pictureBox1.Hide();
}
}
else
{
dataGridViewMetadata.Rows.Clear();
dataGridViewTracks.Rows.Clear();
textBox1.Text = "";
}
}
else
{
dataGridViewMetadata.Rows.Clear();
dataGridViewTracks.Rows.Clear();
textBox1.Text = "";
}
}
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
pictureBox1.SizeMode = pictureBox1.SizeMode == PictureBoxSizeMode.Zoom ?
PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom;
}
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
pictureBox1.SizeMode = pictureBox1.SizeMode == PictureBoxSizeMode.Zoom ?
PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom;
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
e.Result = CUE.LookupAlbumInfo(false, false, this.ctdb, this.metadataSearch);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
e.Result = CUE.LookupAlbumInfo(false, false, this.ctdb, this.metadataSearch);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
foreach (object i in (e.Result as List<object>))
AddItem(i);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
foreach (object i in (e.Result as List<object>))
AddItem(i);
}
private void frmChoice_Resize(object sender, EventArgs e)
{
AutoResizeList(listChoices, 0);
}
private void frmChoice_Resize(object sender, EventArgs e)
{
AutoResizeList(listChoices, 0);
}
private void dataGridViewMetadata_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
var te = e.Control as DataGridViewTextBoxEditingControl;
if (te != null)
{
// te.AutoCompleteMode = AutoCompleteMode.None;
te.AutoCompleteMode = AutoCompleteMode.Suggest;
te.AutoCompleteSource = AutoCompleteSource.CustomSource;
te.AutoCompleteCustomSource.Clear();
foreach (ListViewItem item in listChoices.Items)
{
var r = item.Tag as CUEMetadataEntry;
switch (dataGridViewMetadata.CurrentCell.RowIndex)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
te.AutoCompleteCustomSource.Add(track.Artist);
te.AutoCompleteCustomSource.Add(r.metadata.Artist);
break;
case 1: te.AutoCompleteCustomSource.Add(r.metadata.Title); break;
case 2: te.AutoCompleteCustomSource.Add(r.metadata.Year); break;
case 3: te.AutoCompleteCustomSource.Add(r.metadata.Genre); break;
case 4: te.AutoCompleteCustomSource.Add(r.metadata.DiscNumber); break;
case 5: te.AutoCompleteCustomSource.Add(r.metadata.TotalDiscs); break;
case 6: te.AutoCompleteCustomSource.Add(r.metadata.DiscName); break;
case 7: te.AutoCompleteCustomSource.Add(r.metadata.Label); break;
private void dataGridViewMetadata_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
var te = e.Control as DataGridViewTextBoxEditingControl;
if (te != null)
{
// te.AutoCompleteMode = AutoCompleteMode.None;
te.AutoCompleteMode = AutoCompleteMode.Suggest;
te.AutoCompleteSource = AutoCompleteSource.CustomSource;
te.AutoCompleteCustomSource.Clear();
foreach (ListViewItem item in listChoices.Items)
{
var r = item.Tag as CUEMetadataEntry;
switch (dataGridViewMetadata.CurrentCell.RowIndex)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
te.AutoCompleteCustomSource.Add(track.Artist);
te.AutoCompleteCustomSource.Add(r.metadata.Artist);
break;
case 1: te.AutoCompleteCustomSource.Add(r.metadata.Title); break;
case 2: te.AutoCompleteCustomSource.Add(r.metadata.Year); break;
case 3: te.AutoCompleteCustomSource.Add(r.metadata.Genre); break;
case 4: te.AutoCompleteCustomSource.Add(r.metadata.DiscNumber); break;
case 5: te.AutoCompleteCustomSource.Add(r.metadata.TotalDiscs); break;
case 6: te.AutoCompleteCustomSource.Add(r.metadata.DiscName); break;
case 7: te.AutoCompleteCustomSource.Add(r.metadata.Label); break;
case 8: te.AutoCompleteCustomSource.Add(r.metadata.LabelNo); break;
case 9: te.AutoCompleteCustomSource.Add(r.metadata.Country); break;
case 10: te.AutoCompleteCustomSource.Add(r.metadata.ReleaseDate); break;
case 11: te.AutoCompleteCustomSource.Add(r.metadata.Barcode); break;
case 12: te.AutoCompleteCustomSource.Add(r.metadata.Comment); break;
}
}
}
}
}
}
}
}
private void dataGridViewMetadata_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
ListViewItem item = ChosenItem;
CUEMetadataEntry r = ChosenRelease;
var label = dataGridViewMetadata.Rows[e.RowIndex].Cells[1].Value as string;
if (label != null && item != null && r != null)
{
switch (e.RowIndex)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
if (track.Artist == r.metadata.Artist)
track.Artist = label;
r.metadata.Artist = label;
break;
case 1: r.metadata.Title = label; break;
case 2: r.metadata.Year = label; break;
case 3: r.metadata.Genre = label; break;
case 4: r.metadata.DiscNumber = label; break;
case 5: r.metadata.TotalDiscs = label; break;
case 6: r.metadata.DiscName = label; break;
case 7: r.metadata.Label = label; break;
private void dataGridViewMetadata_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
ListViewItem item = ChosenItem;
CUEMetadataEntry r = ChosenRelease;
var label = dataGridViewMetadata.Rows[e.RowIndex].Cells[1].Value as string;
if (label != null && item != null && r != null)
{
switch (e.RowIndex)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
if (track.Artist == r.metadata.Artist)
track.Artist = label;
r.metadata.Artist = label;
break;
case 1: r.metadata.Title = label; break;
case 2: r.metadata.Year = label; break;
case 3: r.metadata.Genre = label; break;
case 4: r.metadata.DiscNumber = label; break;
case 5: r.metadata.TotalDiscs = label; break;
case 6: r.metadata.DiscName = label; break;
case 7: r.metadata.Label = label; break;
case 8: r.metadata.LabelNo = label; break;
case 9: r.metadata.Country = label; break;
case 9: r.metadata.Country = label; break;
case 10: r.metadata.ReleaseDate = label; break;
case 11: r.metadata.Barcode = label; break;
case 12: r.metadata.Comment = label; break;
}
item.Text = r.ToString();
}
}
item.Text = r.ToString();
}
}
private void dataGridViewMetadata_KeyDown(object sender, KeyEventArgs e)
{
CUEMetadataEntry r = ChosenRelease;
if (e.KeyCode == Keys.Delete && r != null)
{
var ee = new DataGridViewCellEventArgs(1, dataGridViewMetadata.CurrentCellAddress.Y);
dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value = "";
dataGridViewMetadata_CellEndEdit(sender, ee);
}
}
private void dataGridViewMetadata_KeyDown(object sender, KeyEventArgs e)
{
CUEMetadataEntry r = ChosenRelease;
if (e.KeyCode == Keys.Delete && r != null)
{
var ee = new DataGridViewCellEventArgs(1, dataGridViewMetadata.CurrentCellAddress.Y);
dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value = "";
dataGridViewMetadata_CellEndEdit(sender, ee);
}
}
private void dataGridViewTracks_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
CUEMetadataEntry ri = ChosenRelease;
var label = dataGridViewTracks.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string;
if (ri != null && label != null)
ri.metadata.Tracks[e.RowIndex].Title = label;
private void dataGridViewTracks_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
CUEMetadataEntry ri = ChosenRelease;
var label = dataGridViewTracks.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string;
if (ri != null && label != null)
ri.metadata.Tracks[e.RowIndex].Title = label;
}
}
/*
private void listTracks_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (listTracks.FocusedItem.Index + 1 < listTracks.Items.Count) // && e.editing
{
listTracks.FocusedItem.Selected = false;
listTracks.FocusedItem = listTracks.Items[listTracks.FocusedItem.Index + 1];
listTracks.FocusedItem.Selected = true;
listTracks.FocusedItem.BeginEdit();
}
}
}
* */
}
private void frmChoice_KeyPress(object sender, KeyPressEventArgs e)
{
TagLib.IPicture picture = ChosenObject as TagLib.IPicture;
if (e.KeyChar == 'r' && picture != null)
{
switch (imageRotation)
{
case RotateFlipType.RotateNoneFlipNone:
imageRotation = RotateFlipType.Rotate90FlipNone;
break;
case RotateFlipType.Rotate90FlipNone:
imageRotation = RotateFlipType.Rotate180FlipNone;
break;
case RotateFlipType.Rotate180FlipNone:
imageRotation = RotateFlipType.Rotate270FlipNone;
break;
case RotateFlipType.Rotate270FlipNone:
imageRotation = RotateFlipType.RotateNoneFlipNone;
break;
}
ResetPictureBox();
return;
}
if (e.KeyChar == 'c' && picture != null)
{
switch (cropAlign)
{
case CropAlign.None:
cropAlign = CropAlign.TopLeft;
break;
case CropAlign.TopLeft:
cropAlign = CropAlign.BottomRight;
break;
case CropAlign.BottomRight:
cropAlign = CropAlign.None;
break;
}
ResetPictureBox();
return;
}
if (e.KeyChar == 't' && picture != null)
{
if (trimEdge == 0) trimEdge = 1;
else trimEdge <<= 1;
if (trimEdge > 1024) trimEdge = 0;
ResetPictureBox();
return;
}
}
private void ResetPictureBox()
{
TagLib.IPicture picture = ChosenObject as TagLib.IPicture;
if (pictureBox1.Image != null) pictureBox1.Image.Dispose();
pictureBox1.Image = null;
pictureBox1.ImageLocation = null;
using (MemoryStream imageStream = new MemoryStream(picture.Data.Data, 0, picture.Data.Count))
try
{
var image = Image.FromStream(imageStream);
if (imageRotation != RotateFlipType.RotateNoneFlipNone)
image.RotateFlip(imageRotation);
if (cropAlign == CropAlign.None && trimEdge == 0)
{
pictureBox1.Image = image;
return;
}
var width = image.Width;
var height = image.Height;
var sz = Math.Min(width, height);
Rectangle dstRect =
cropAlign == CropAlign.None ?
Rectangle.FromLTRB(0, 0, width - 2 * trimEdge, height - 2 * trimEdge) :
Rectangle.FromLTRB(0, 0, sz - 2 * trimEdge, sz - 2 * trimEdge);
Rectangle srcRect =
cropAlign == CropAlign.None ?
Rectangle.FromLTRB(trimEdge, trimEdge, width - trimEdge, height - trimEdge) :
cropAlign == CropAlign.TopLeft ?
Rectangle.FromLTRB(trimEdge, trimEdge, sz - trimEdge, sz - trimEdge) :
//cropAlign == CropAlign.BottomRight ?
Rectangle.FromLTRB(width - sz + trimEdge, height - sz + trimEdge, width - trimEdge, height - trimEdge);
var mode = System.Drawing.Drawing2D.InterpolationMode.Default;
if (dstRect.Width > config.maxAlbumArtSize || dstRect.Height > config.maxAlbumArtSize)
{
dstRect =
cropAlign != CropAlign.None ?
Rectangle.FromLTRB(0, 0, config.maxAlbumArtSize, config.maxAlbumArtSize) :
width > height ? Rectangle.FromLTRB(0, 0, config.maxAlbumArtSize, (height - 2 * trimEdge) * config.maxAlbumArtSize / (width - 2 * trimEdge))
: Rectangle.FromLTRB(0, 0, (width - 2 * trimEdge) * config.maxAlbumArtSize / (height - 2 * trimEdge), config.maxAlbumArtSize);
mode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
}
Bitmap b = new Bitmap(dstRect.Width, dstRect.Height);
pictureBox1.Image = b;
using (Graphics g = Graphics.FromImage((Image)b))
{
g.InterpolationMode = mode;
g.DrawImage(image, dstRect, srcRect, GraphicsUnit.Pixel);
}
image.Dispose();
}
catch { }
}
/*
private void listTracks_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (listTracks.FocusedItem.Index + 1 < listTracks.Items.Count) // && e.editing
{
listTracks.FocusedItem.Selected = false;
listTracks.FocusedItem = listTracks.Items[listTracks.FocusedItem.Index + 1];
listTracks.FocusedItem.Selected = true;
listTracks.FocusedItem.BeginEdit();
}
}
}
* */
}
}

View File

@@ -112,23 +112,26 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonOk.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonOk.Location" type="System.Drawing.Point, System.Drawing">
<value>631, 3</value>
<value>947, 5</value>
</data>
<data name="buttonOk.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 29</value>
<value>232, 43</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
@@ -139,7 +142,7 @@
<value>buttonOk</value>
</data>
<data name="&gt;&gt;buttonOk.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonOk.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
@@ -154,185 +157,187 @@
<value>Fill</value>
</data>
<data name="listChoices.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
<value>4, 5</value>
</data>
<data name="listChoices.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="listChoices.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 144</value>
<value>1183, 221</value>
</data>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABY
KAAAAk1TRnQBSQFMAgEBCQEAAUwBAAFMAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMBIAAwsBDwMUARsDHAEpAyEBMgEwAU0BLwGmASMBZgEgAdEBIwFmASAB0QEz
AUIBMgFmBAABMwFCATIBZgEjAWYBIAHRASMBZgEgAdEBIwFmASAB0QEjAWYBIAHRATABUAEvAakDIQEz
wAADBgEIAwoBDgMPARUDEgEZASQBZAEhAcwBIQHVARAB/wEhAacBFgHvATIBUQEyAZkEAAEyAVEBMgGZ
ASEBpwEWAe8BIQHVARAB/wEhAdUBEAH/ASEB1QEQAf8BJAFvASAB0QMTARrQAAEnAW4BIQHMASQBzQET
Af8BIQFhASAB0QEhASUBIQEzBAABIQElASEBMwEhAWEBIAHRASEBzAEQAf8BIQHMARAB/wEhAcwBEAH/
AScBdwEgAdHEAAEpATEBKQFDATABbgEqAbgBMAFuASoBuAEpATEBKQFDASgBdQEhAcwBKAHEARcB/wEi
AWABIAHRATIBQAEyAWYEAAEyAUABMgFmASEBYAEgAdEBIQHBARAB/wEhAcEBEAH/ASEBwQEQAf8BKAF8
ASAB0cQAATIBbgEsAbIBTgHGAT0B/wFAAa0BMgHzASkBdwEhAcwBJgGDAR0B2QEiAbcBEQH/AScBlgEc
Ae8BIgFiASAB0wEhAVcBIQHMASEBYgEgAdMBIwGUARkB7wEjAbcBEgH/ASIBtgERAf8BIQG2ARAB/wEo
AX0BIAHRxAABKQF5ASEBzAFNAcUBPAH/AUMBuwEyAf8BTAHEATsB/wFCAb0BMQH/ASEBqwEQAf8BIwGs
ARIB/wEnAa8BFgH/AScBrwEWAf8BJgGvARUB/wEmAZsBHAHvASIBeQEgAdEBIgF5ASAB0QEjAZoBGQHv
ASkBfwEgAdHEAAEzAXIBLAGyAVUBzQFEAf8BRQGzATYB8wEqAX0BIQHMATEBjAEmAdkBMwGwASIB/wEi
AaIBEQH/ASEBoQEQAf8BIQGhARAB/wEoAagBFwH/ASMBewEgAdMBMgFHATIBZgEhAScBIQEzATIBYAEy
AZkBMwFHATIBZsQAASoBMwEpAUMBMgF2ASoBuAEyAXYBKgG4ASoBMwEpAUMBKwF/ASEBzAFPAccBPgH/
AT4BtwEtAf8BNAGtASMB/wEqAaQBGQH/ATEBqgEgAf8BIQFzASEBzOQAASsBgQEhAcwBUgHKAUEB/wFE
AbwBMwH/AUQBvAEzAf8BRAG8ATMB/wFMAcQBOwH/AScBfgElAdMBMgFHATIBZgEhAScBIQEzATIBYAEy
AZkBMwFIATIBZtQAASwBgwEhAcwBVwHPAUYB/wFJAcEBOAH/AUkBwQE4Af8BSQHBATgB/wFLAcMBOgH/
AUUBrwE5Ae8BJgF8ASQB0QEmAXwBJAHRAUQBrgE5Ae8BLAGDASEBzNQAASwBhgEhAcwBZAHcAVMB/wFc
AdQBSwH/AVsB0wFKAf8BWgHSAUkB/wFUAcwBQwH/AU4BxgE9Af8BVgHOAUUB/wFfAdcBTgH/AV0B1QFM
Af8BLAGGASEBzNQAATgBbAEyAZkBLQGIASEBzAEtAYgBIQHMAS0BiAEhAcwBLQGIASEBzAE3AZsBKwHZ
AVoB0gFJAf8BMwGWASYB2QEtAYgBIQHMAS0BiAEhAcwBOAFsATIBmeQAASoBNAEpAUMBLQGJASEBzAFl
Ad0BVAH/AS0BiQEhAcwBKgE0ASkBQ+wAATQBgQEqAbgBWQHLAUkB8wFgAdgBTwH/AVgBywFJAfMBNAGB
ASoBuOwAATUBggEqAbgBcQHpAWAB/wFsAeQBWwH/AXAB6AFfAf8BNQGCASoBuOwAASoBNAEpAUMBNgF/
ASwBsgEvAY4BIQHMATYBfwEsAbIBKgE0ASkBQ9gAAx0BKgNDAXcDHQEqOAADJwE7A04BlAJeAVwBzgFw
AWcBWQHrAXABZwFZAesCXgFcAc4DTgGUAgAB4gH/AgAB4gH/JAABYwFrAXMB/wFjAWsBcwH/AWMBawFz
Af8BYwFrAXMB/xwAA8cB/wNvAf8DcAH/A8cB/wPGAf8DxgH/A8cB/wPHAf8DxgH/A8cB/wPHAf8DxwH/
A8cB/wPHAf8MAAMdASkDQgF0Av8B8AH/A0IBdAMdASksAAMKAQ0DTgGWAZgBdgFNAfoB4QHNAbkB/wHx
AeABzgH/AfkB5wHWAf8B+AHmAdQB/wHwAd0BzAH/AeEBzQG5Af8CAAHiAf8CAAHiAf8DCgENGAABYwFr
AXMB/wM6Af8DOgH/ASECMQH/AwgB/wMIAf8DAAH/AwgB/xAAA3AB/wMBAf8DFwH/AzIB/wMBAf8DDAH/
A8cB/wPGAf8DxgH/A8cB/wPHAf8DxwH/A8YB/wPHAf8DxwH/A8cB/wQAAxwBKANAAXEC/wHwAf8C6QHa
A/8B8QH/A0ABcQMcASgkAAMKAQ0DVwG4AdkBvwGlAf8B/gHyAeQC/wHnAc8B/wH8AdsBuwH/AfkB0wGy
Af8B9gHQAawB/wH0AdEBrgH/AfYB2AG7Af8CAAHiAf8CAAHiAf8DVwG4AwoBDRAAAzoB/wG9AsYB/wFj
AWsBcwH/AzoB/wEZAiEB/wMIAf8DCAH/AwAB/wMAAf8DCAH/DAADAgH/A8MN/wMyAf8DDAH/A8cB/wPG
Af8DxwH/A8YB/wPGAf8DxwH/A8cB/wPHAf8DxwH/AxwBJwNAAW8C/wHwAf8B6wHdAbEB/wH3AcEBKgH/
Ae0B3wGzA/8B8gH/A0ABbwMcAScgAANOAZYB2QG/AaUC/wH4AesC/wHrAdEC/wHhAcMB/wH+AdsBugH/
AfsB1gGyAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8IAAEZ
AiEB/wM6Af8BYwFrAXMB/wG9AsYB/wFjAWsBcwH/ARkCIQH/AwgB/wMIAf8DAAH/AwAB/wMAAf8DCAH/
CAADAQH/A8MR/wMCAf8DxwH/A8YB/wPHAf8DxwH/A8cB/wPHAf8DxwH/A8cB/wPHAf8DQAFuAv8B8AH/
AukB2gH/AecBqwEUAf8B5wGrARQB/wHnAasBFAH/AeoB2wGwA/8B9AH/A0ABbgMcAScYAAMmATgBrAGH
AUsB/QL+AfoC/wH5AekC/wHvAdgC/wHnAc0C/wHhAcIB/wH8AdwBuwH/AgAB4gH/AgAB4gH/AgAB4gH/
AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/BAABGQIhAf8BIQIxAf8DOgH/AzoB/wFjAWsBcwH/
AWMBawFzAf8BIQIxAf8BGQIhAf8DCAH/AwAB/wMAAf8DAAH/AwAB/wEZAiEB/wQAA3AB/wMMAf8DUwH/
A6wB/wOtAf8DwwH/AwIB/wMYAf8DAQH/AwIB/wMCAf8DAQH/AxgB/wPHAf8DxwH/A8cB/wMcAScDPwFt
Av8B8QH/AecB1wGrAf8B1wGWAQAB/wHXAZYBAAH/AdcBlgEAAf8B6AHYAa4D/wH1Af8DPwFtAxwBJxQA
A04BlgHiAc4BugH/AfcB3gHGAv8B6QHRAv8B9gHiAv8B8gHdAv8B8AHdAf8B+AHqAdkB/wH4AeYB1AH/
AfsB3wHHAf8B9QHPAasB/wIAAeIB/wIAAeIB/wH4Ad0BwwH/AeIBzgG6Af8DTgGWBAADCAH/ARkCIQH/
ARkCIQH/ASECMQH/ASECMQH/AwgB/wEQAVsBYwH/ARABWwFjAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8EAAPHAf8DcAH/AwwB/wMBAf8DAgX/AwIB/wMMAf8Dkwn/A4kB/wMYAf8DGAH/A8YB/wPHAf8EAAMb
ASYDPwFsAv8B8gH/AeUB1AGpAf8BzQGJAQAB/wHNAYkBAAH/Ac0BiQEAAf8B6AHXAa8D/wH3Af8DPwFs
AxsBJhAAAl4BWwHQAe8B4AHQAf8B5wG+AZYB/wHnAbwBlAH/AfABzAGpAf8B/gHsAdoB/wHdAcQBrAH/
AWkBZAFcAecBaQFkAVwB5wHdAcMBqgH/AfgB3QHEAf8CAAHiAf8CAAHiAf8B9QHWAbgB/wHxAd8BzwH/
Al4BWwHQAWMBawFzAf8DAAH/AwgB/wMIAf8DCAH/AwgB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wEA
AcYB1gH/AwAB/wMAAf8DAAH/AwAB/wMAAf8BYwFrAXMB/wPHAf8DxwH/A8cB/wPGAf8DAQX/AwIB/wMY
Ef8DwgH/AwIB/wPHAf8DxgH/CAADGwEmAz4BawL/AfQB/wHnAdYBrAH/AdEBjgEAAf8B0QGOAQAB/wHR
AY4BAAH/AewB2wGzA/8B+AH/Az4BawMbASYMAAFwAWQBWQHsAfUB5AHVAf8B6QG+AZcB/wHoAbwBlgH/
AecBvAGUAf8B8wHeAcoB/wFpAWQBWQHmAxQBGwMUARsBaQFkAVkB5gH2AeMB0wH/AgAB4gH/AgAB4gH/
Ae0ByQGkAf8B9gHkAdIB/wFwAWQBWQHsAWMBawFzAf8DAAH/AwAB/wMAAf8DAAH/ARABWwFjAf8BAAHG
AdYB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wEQAVsBYwH/AwAB/wMAAf8DAAH/AwAB/wFjAWsBcwH/
A1cB/wNXAf8DWAH/A1cB/wMBBf8DAgH/AwIB/wMyAf8Dww3/AwIB/wNXAf8DVwH/DAADGwEmAz4BawL/
AfUB/wHrAdwBswH/Ad8BoQEKAf8B3wGhAQoB/wHfAaEBCgH/AfEB4gG7A/8B+gH/Az4BawMbASYIAAFw
AWQBWQHsAfUB5AHVAf8B6QG/AZkB/wHpAcABmQH/AekBwQGaAf8B8wHdAckB/wFpAWQBWQHmAxQBGwMU
ARsBaQFkAVkB5gH4AegB2QH/AfIB0gGyAf8B8AHMAasB/wHwAcwBqwH/AfYB5AHTAf8BcAFkAVkB7AFj
AWsBcwH/AwAB/wMAAf8DAAH/AwAB/wEQAVsBYwH/AQABxgHWAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHW
Af8BEAFbAWMB/wMIAf8DCAH/AwgB/wMIAf8BYwFrAXMB/wNXAf8DVwH/A1cB/wNYAf8DAgX/AwEB/wM0
Af8DDAH/AwEB/wMCAf8DAQX/AwIB/wNXAf8DWAH/EAADGwEmAz4BagL/AfcB/wHyAeQBuwH/AfABuAEh
Af8B8AG4ASEB/wHwAbgBIQH/AvgB9AP/AfsB/wM+AWoDGgElBAACXgFbAdAB8AHhAdEB/wHqAcQBoQH/
AekBwQGbAf8B6QHAAZcB/wHxAc4BsgH/AdwBwwGqAf8BaQFkAVwB5wFpAWQBXAHnAd0BxAGsAv8B/AHz
Av8B9AHlAv8B7gHaAf8B/AHlAdEB/wHxAeEB0QH/Al4BWwHQAWMBawFzAf8DAAH/AwAB/wMAAf8DAAH/
AwgB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wEAAcYB1gH/AwgB/wEZAiEB/wEZAiEB/wMIAf8DCAH/
AWMBawFzAf8DVwH/A1cB/wNYAf8DVwH/AwIF/wMMAf8DAgH/AxgB/wM0Af8DNAH/AwEF/wMBAf8DVwH/
A1cB/xQAAxoBJQM9AWkC/wH4Af8B9wHqAcMB/wH9AckBMgH/AfkB7AHHAf8C+wH3Af8C/AH5A/8B/AH/
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAc
KAAAAk1TRnQBSQFMAgEBCQEAAWQBAAFkAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMBIAAwsBDwMUARsDHQEpAyIBMgFPAVIBTwGmAUoBXwFJAdEBSgFfAUkB0QM8
AWYEAAM8AWYBSgFfAUkB0QFKAV8BSQHRAUoBXwFJAdEBSgFfAUkB0QFPAVIBTwGpAyMBM8AAAwYBCAMK
AQ4DEAEVAxIBGQFMAV4BSwHMAR4B1QENAf8BMwGRAS0B7wFNAU4BTQGZBAABTQFOAU0BmQEzAZEBLQHv
AR4B1QENAf8BHgHVAQ0B/wEeAdUBDQH/AUoBYwFJAdEDEwEa0AABTgFfAUsBzAEhAc0BEAH/AUoBXgFJ
AdEDIwEzBAADIwEzAUoBXgFJAdEBHgHMAQ0B/wEeAcwBDQH/AR4BzAENAf8BTQFmAUkB0cQAASsBLAEr
AUMBUQFbAVABuAFRAVsBUAG4ASsBLAErAUMBTgFiAUsBzAElAcQBFAH/AUoBXQFJAdEDPAFmBAADPAFm
AUoBXQFJAdEBHgHBAQ0B/wEeAcEBDQH/AR4BwQENAf8BTQFmAUkB0cQAAVIBWQFQAbIBSwHGAToB/wFJ
AZoBOwHzAU4BYgFLAcwBRwFrAUQB2QEfAbcBDgH/ATgBhQEvAe8BRwFdAUcB0wFLAVkBSwHMAUcBXQFH
AdMBNAGDAS4B7wEgAbcBDwH/AR8BtgEOAf8BHgG2AQ0B/wFNAWYBSQHRxAABTgFkAUsBzAFKAcUBOQH/
AUABuwEvAf8BSQHEATgB/wE/Ab0BLgH/AR4BqwENAf8BIAGsAQ8B/wEkAa8BEwH/ASQBrwETAf8BIwGv
ARIB/wE4AYcBLwHvAUoBZgFJAdEBSgFmAUkB0QE0AYYBLgHvAU0BZgFJAdHEAAFSAVoBUAGyAVIBzQFB
Af8BTAGfAT0B8wFOAWQBSwHMAU0BbwFHAdkBMAGwAR8B/wEfAaIBDgH/AR4BoQENAf8BHgGhAQ0B/wEl
AagBFAH/AUoBZwFHAdMDPAFmAyMBMwFNAU4BTQGZAzwBZsQAASsBLAErAUMBUQFcAVABuAFRAVwBUAG4
ASsBLAErAUMBTgFmAUsBzAFMAccBOwH/ATsBtwEqAf8BMQGtASAB/wEnAaQBFgH/AS4BqgEdAf8BSwFi
AUsBzOQAAU4BZgFLAcwBTwHKAT4B/wFBAbwBMAH/AUEBvAEwAf8BQQG8ATAB/wFJAcQBOAH/AUsBZwFL
AdMDPAFmAyMBMwFNAU4BTQGZAzwBZtQAAU4BZgFLAcwBVAHPAUMB/wFGAcEBNQH/AUYBwQE1Af8BRgHB
ATUB/wFIAcMBNwH/AUsBlQFCAe8BSgFmAUoB0QFKAWYBSgHRAUsBlAFCAe8BTgFmAUsBzNQAAU4BZgFL
AcwBYQHcAVAB/wFZAdQBSAH/AVgB0wFHAf8BVwHSAUYB/wFRAcwBQAH/AUsBxgE6Af8BUwHOAUIB/wFc
AdcBSwH/AVoB1QFJAf8BTgFmAUsBzNQAAU0BUAFNAZkBTwFpAUsBzAFPAWkBSwHMAU8BaQFLAcwBTwFp
AUsBzAFNAXQBSQHZAVcB0gFGAf8BTQF0AUcB2QFPAWkBSwHMAU8BaQFLAcwBTQFQAU0BmeQAASsBLAEr
AUMBTwFpAUsBzAFiAd0BUQH/AU8BaQFLAcwBKwEsASsBQ+wAAVIBXgFQAbgBXAGvAUwB8wFdAdgBTAH/
AVsBrwFMAfMBUgFeAVABuOwAAVIBXgFQAbgBbgHpAV0B/wFpAeQBWAH/AW0B6AFcAf8BUgFeAVABuOwA
ASsBLAErAUMBUgFcAVABsgFPAWkBSwHMAVIBXAFQAbIBKwEsASsBQ9gAAx0BKgNDAXcDHQEqOAADJwE7
A04BlAJeAVwBzgFqAWMBWQHrAWoBYwFZAesCXgFcAc4DTgGUAgAB4gH/AgAB4gH/JAABYAFoAXAB/wFg
AWgBcAH/AWABaAFwAf8BYAFoAXAB/xwAA8cB/wNsAf8DbQH/A8cB/wPGAf8DxgH/A8cB/wPHAf8DxgH/
A8cB/wPHAf8DxwH/A8cB/wPHAf8MAAMdASkDQgF0Av8B8AH/A0IBdAMdASksAAMKAQ0DTgGWAY8BcwFN
AfoB4QHNAbkB/wHxAeABzgH/AfkB5wHWAf8B+AHmAdQB/wHwAd0BzAH/AeEBzQG5Af8CAAHiAf8CAAHi
Af8DCgENGAABYAFoAXAB/wM3Af8DNwH/AR4CLgH/AwUB/wMFAf8DAAH/AwUB/xAAA20B/wMAAf8DFAH/
Ay8B/wMAAf8DCQH/A8cB/wPGAf8DxgH/A8cB/wPHAf8DxwH/A8YB/wPHAf8DxwH/A8cB/wQAAxwBKANA
AXEC/wHwAf8C6QHaA/8B8QH/A0ABcQMcASgkAAMKAQ0DVwG4AdkBvwGlAf8B/gHyAeQC/wHnAc8B/wH8
AdsBuwH/AfkB0wGyAf8B9gHQAawB/wH0AdEBrgH/AfYB2AG7Af8CAAHiAf8CAAHiAf8DVwG4AwoBDRAA
AzcB/wG9AsYB/wFgAWgBcAH/AzcB/wEWAh4B/wMFAf8DBQH/AwAB/wMAAf8DBQH/DwAB/wPDDf8DLwH/
AwkB/wPHAf8DxgH/A8cB/wPGAf8DxgH/A8cB/wPHAf8DxwH/A8cB/wMcAScDQAFvAv8B8AH/AesB3QGx
Af8B9wHBAScB/wHtAd8BswP/AfIB/wNAAW8DHAEnIAADTgGWAdkBvwGlAv8B+AHrAv8B6wHRAv8B4QHD
Af8B/gHbAboB/wH7AdYBsgH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/
AgAB4gH/CAABFgIeAf8DNwH/AWABaAFwAf8BvQLGAf8BYAFoAXAB/wEWAh4B/wMFAf8DBQH/AwAB/wMA
Af8DAAH/AwUB/wsAAf8DwxH/AwAB/wPHAf8DxgH/A8cB/wPHAf8DxwH/A8cB/wPHAf8DxwH/A8cB/wNA
AW4C/wHwAf8C6QHaAf8B5wGrAREB/wHnAasBEQH/AecBqwERAf8B6gHbAbAD/wH0Af8DQAFuAxwBJxgA
AyYBOAGpAYcBSAH9Av4B+gL/AfkB6QL/Ae8B2AL/AecBzQL/AeEBwgH/AfwB3AG7Af8CAAHiAf8CAAHi
Af8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8EAAEWAh4B/wEeAi4B/wM3Af8DNwH/
AWABaAFwAf8BYAFoAXAB/wEeAi4B/wEWAh4B/wMFAf8DAAH/AwAB/wMAAf8DAAH/ARYCHgH/BAADbQH/
AwkB/wNQAf8DrAH/A60B/wPDAf8DAAH/AxUB/wMAAf8DAAH/AwAB/wMAAf8DFQH/A8cB/wPHAf8DxwH/
AxwBJwM/AW0C/wHxAf8B5wHXAasB/wHXAZYBAAH/AdcBlgEAAf8B1wGWAQAB/wHoAdgBrgP/AfUB/wM/
AW0DHAEnFAADTgGWAeIBzgG6Af8B9wHeAcYC/wHpAdEC/wH2AeIC/wHyAd0C/wHwAd0B/wH4AeoB2QH/
AfgB5gHUAf8B+wHfAccB/wH1Ac8BqwH/AgAB4gH/AgAB4gH/AfgB3QHDAf8B4gHOAboB/wNOAZYEAAMF
Af8BFgIeAf8BFgIeAf8BHgIuAf8BHgIuAf8DBQH/AQ0BWAFgAf8BDQFYAWAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wQAA8cB/wNtAf8DCQH/AwAB/wMABf8DAAH/AwkB/wOTCf8DiQH/AxUB/wMVAf8DxgH/
A8cB/wQAAxsBJgM/AWwC/wHyAf8B5QHUAakB/wHNAYkBAAH/Ac0BiQEAAf8BzQGJAQAB/wHoAdcBrwP/
AfcB/wM/AWwDGwEmEAACXgFbAdAB7wHgAdAB/wHnAb4BlgH/AecBvAGUAf8B8AHMAakB/wH+AewB2gH/
Ad0BxAGsAf8CZAFcAecCZAFcAecB3QHDAaoB/wH4Ad0BxAH/AgAB4gH/AgAB4gH/AfUB1gG4Af8B8QHf
Ac8B/wJeAVsB0AFgAWgBcAH/AwAB/wMFAf8DBQH/AwUB/wMFAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHW
Af8BAAHGAdYB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AWABaAFwAf8DxwH/A8cB/wPHAf8DxgH/AwAF/wMA
Af8DFRH/A8IB/wMAAf8DxwH/A8YB/wgAAxsBJgM+AWsC/wH0Af8B5wHWAawB/wHRAY4BAAH/AdEBjgEA
Af8B0QGOAQAB/wHsAdsBswP/AfgB/wM+AWsDGwEmDAABagFkAVkB7AH1AeQB1QH/AekBvgGXAf8B6AG8
AZYB/wHnAbwBlAH/AfMB3gHKAf8BZgFhAVkB5gMUARsDFAEbAWYBYQFZAeYB9gHjAdMB/wIAAeIB/wIA
AeIB/wHtAckBpAH/AfYB5AHSAf8BagFkAVkB7AFgAWgBcAH/AwAB/wMAAf8DAAH/AwAB/wENAVgBYAH/
AQABxgHWAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHWAf8BDQFYAWAB/wMAAf8DAAH/AwAB/wMAAf8BYAFo
AXAB/wNUAf8DVAH/A1UB/wNUAf8DAAX/AwAB/wMAAf8DLwH/A8MN/wMAAf8DVAH/A1QB/wwAAxsBJgM+
AWsC/wH1Af8B6wHcAbMB/wHfAaEBBwH/Ad8BoQEHAf8B3wGhAQcB/wHxAeIBuwP/AfoB/wM+AWsDGwEm
CAABagFkAVkB7AH1AeQB1QH/AekBvwGZAf8B6QHAAZkB/wHpAcEBmgH/AfMB3QHJAf8BZgFhAVkB5gMU
ARsDFAEbAWYBYQFZAeYB+AHoAdkB/wHyAdIBsgH/AfABzAGrAf8B8AHMAasB/wH2AeQB0wH/AWoBZAFZ
AewBYAFoAXAB/wMAAf8DAAH/AwAB/wMAAf8BDQFYAWAB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wEA
AcYB1gH/AQ0BWAFgAf8DBQH/AwUB/wMFAf8DBQH/AWABaAFwAf8DVAH/A1QB/wNUAf8DVQH/AwAF/wMA
Af8DMQH/AwkB/wMAAf8DAAH/AwAF/wMAAf8DVAH/A1UB/xAAAxsBJgM+AWoC/wH3Af8B8gHkAbsB/wHw
AbgBHgH/AfABuAEeAf8B8AG4AR4B/wL4AfQD/wH7Af8DPgFqAxoBJQQAAl4BWwHQAfAB4QHRAf8B6gHE
AaEB/wHpAcEBmwH/AekBwAGXAf8B8QHOAbIB/wHcAcMBqgH/AmQBXAHnAmQBXAHnAd0BxAGsAv8B/AHz
Av8B9AHlAv8B7gHaAf8B/AHlAdEB/wHxAeEB0QH/Al4BWwHQAWABaAFwAf8DAAH/AwAB/wMAAf8DAAH/
AwUB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wEAAcYB1gH/AwUB/wEWAh4B/wEWAh4B/wMFAf8DBQH/
AWABaAFwAf8DVAH/A1QB/wNVAf8DVAH/AwAF/wMJAf8DAAH/AxUB/wMxAf8DMQH/AwAF/wMAAf8DVAH/
A1QB/xQAAxoBJQM9AWkC/wH4Af8B9wHqAcMB/wH9AckBLwH/AfkB7AHHAf8C+wH3Af8C/AH5A/8B/AH/
Az0BaQMaASUDTgGWAeIBzgG6Af8B8QHSAbYB/wHrAcEBmwH/AesBvwGZAv8B5AHTAv8B6AHbAf8B8wHa
AccB/wH4AfEB5AL/AfgB7QL/AfcB6QL/Af4B8QL/AfwB7wL/AfwB8gH/AeIBzgG6Af8DTgGWBAADCAH/
AwAB/wMAAf8DAAH/AwAB/wMIAf8BEAFbAWMB/wEQAVsBYwH/AwgB/wM6Af8DOgH/ARkCIQH/ARkCIQH/
ARkCIQH/BAADWAH/A1gB/wNYAf8DVwH/AwEJ/wOIAf8DGAH/AwEB/wMMAf8DAQX/AwIB/wNXAf8DVwH/
GAADGgElAz0BaAL/AfoB/wL4AfQB/wL7AfcB/wLoAd4B/wLYAckB/wLoAd4D/wH+Af8DPQFoAyYBOAGs
AYcBSwH9AfoB7QHhAf8B7AHHAaMC/wHsAdoF/wH3Ac0BtgH/AewBvQGXAv8B9AHcA/8B9wL/AfcB6AP/
AfMD/wH5Af8C/gH5Af8BrAGHAUsB/QMmATgEAAM6Af8DAAH/AwAB/wMAAf8DCAH/AwgB/wEZAiEB/wM6
Af8BYwFrAXMB/wFjAq0B/wM6Af8DOgH/ARkCIQH/AzoB/wQAA1cB/wNXAf8DVwH/A1cB/wMCAf8DrA3/
A8MB/wNGAf8DAgX/AwEB/wNXAf8DVwH/HAADGgElAz0BaAL/AfsB/wL8AfkB/wLLAbsB/wQAAssBvAP/
AccB/wH4AfEB5AL/AfgB7QL/AfcB6QL/Af4B8QL/AfwB7wL/AfwB8gH/AeIBzgG6Af8DTgGWBAADBQH/
AwAB/wMAAf8DAAH/AwAB/wMFAf8BDQFYAWAB/wENAVgBYAH/AwUB/wM3Af8DNwH/ARYCHgH/ARYCHgH/
ARYCHgH/BAADVQH/A1UB/wNVAf8DVAH/AwAJ/wOIAf8DFQH/AwAB/wMJAf8DAAX/AwAB/wNUAf8DVAH/
GAADGgElAz0BaAL/AfoB/wL4AfQB/wL7AfcB/wLoAd4B/wLYAckB/wLoAd4D/wH+Af8DPQFoAyYBOAGp
AYcBSAH9AfoB7QHhAf8B7AHHAaMC/wHsAdoF/wH3Ac0BtgH/AewBvQGXAv8B9AHcA/8B9wL/AfcB6AP/
AfMD/wH5Af8C/gH5Af8BqQGHAUgB/QMmATgEAAM3Af8DAAH/AwAB/wMAAf8DBQH/AwUB/wEWAh4B/wM3
Af8BYAFoAXAB/wFgAq0B/wM3Af8DNwH/ARYCHgH/AzcB/wQAA1QB/wNUAf8DVAH/A1QB/wMAAf8DrA3/
A8MB/wNDAf8DAAX/AwAB/wNUAf8DVAH/HAADGgElAz0BaAL/AfsB/wL8AfkB/wLLAbsB/wQAAssBvAP/
Af4B/wM9AWgEAANOAZYB2QG/AaUC/wH6AfAG/wH9AfMB/wHwAcEBowH/Ae4BxgGgAf8B/QHwAdED/wH+
Av8B/QHwAv8B/QHxBf8B2QG/AaUB/wNOAZYMAAEZAiEB/wMAAf8DAAH/AwgB/wMIAf8BGQIhAf8BIQIx
Af8BYwFrAXMB/wG9AsYB/wFjAWsBcwH/ASECMQH/AzoB/wgAA1cB/wNYAf8DVwH/A1cB/wMYAf8DMgH/
A60Z/wMBAf8DWAH/A1cB/yAAAxoBJQM9AWcC/wH8Af8C1AHKAf8CrwGfAf8C1AHLA/8B/gH/Az0BZwQA
Av8B/QHwAv8B/QHxBf8B2QG/AaUB/wNOAZYMAAEWAh4B/wMAAf8DAAH/AwUB/wMFAf8BFgIeAf8BHgIu
Af8BYAFoAXAB/wG9AsYB/wFgAWgBcAH/AR4CLgH/AzcB/wgAA1QB/wNVAf8DVAH/A1QB/wMVAf8DLwH/
A60Z/wMAAf8DVQH/A1QB/yAAAxoBJQM9AWcC/wH8Af8C1AHKAf8CrwGfAf8C1AHLA/8B/gH/Az0BZwQA
AwoBDQNXAbgB2QG/AaUB/wH+Af0B/AL/AfEB5AH/AfIBygGuAf8B8gHSAa0B/wH5Ae0ByAP/AfcD/wH9
Af8B/gH9AfwB/wHZAb8BpQH/A1cBuAMKAQ0QAAM6Af8DAAH/AwgB/wMIAf8BGQIhAf8BIQIxAf8DOgH/
AWMBawFzAf8BYwFrAXMB/wFjAWsBcwH/DAADVwH/A1cB/wNYAf8DVwH/A1cB/wMYAf8DAgH/AxgB/wOJ
Ef8DAgH/A1gB/wNXAf8kAAMaASQDPQFnAv8B/gP/Af4D/wH+Bf8DPQFnCAADCgENA04BlgGYAXYBTQH6
AeEBzQG5Af8B8QHiAdQB/wH5AewB3wH/AfsB8wHlAf8B9AHtAeQB/wHiAc4BuwH/AZgBdgFNAfoDTgGW
AwoBDRgAASECMQH/ASECMQH/AwgB/wMIAf8DCAH/ARkCIQH/AzoB/wM6Af8QAANXAf8DVwH/A1cB/wNX
Af8DVwH/A1cB/wNXAf8DGAH/AwEB/wMMAf8DUwH/A8IF/wMBAf8DWAH/A1cB/ygAAxoBJAM8AWYDPAFm
AzwBZgM8AWYDMQFNEAADJwE7A04BlAJeAVwBzgFwAWcBWQHrAXABZAFYAe8CXgFbAdkDTwGXAycBOygA
AWMBawFzAf8BYwFrAXMB/wFjAWsBcwH/AWMBawFzAf8cAANXAf8DVwH/A1cB/wNXAf8DWAH/A1cB/wNX
Af8DVwH/A1cB/wMMAf8DAQH/AzIB/wMYAf8DWAH/EAADAgEDAxQBHAMwAUwDRAF5A1ABmgNQAaQDUAGa
A0QBeQMwAUwDFAEcAwMBBAgAA5YB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQ
AgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wEQAgAB/wQAAUMBzAL/
ARACmQH/ARACmQH/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/
AUMBzAL/AUMBzAL/AUMBzAL/EAADAgEDAxQBHAMwAUwDRAF5A1ABmgNQAaQDUAGaA0QBeQMwAUwDFAEc
Af8B/gH9AfwB/wHZAb8BpQH/A1cBuAMKAQ0QAAM3Af8DAAH/AwUB/wMFAf8BFgIeAf8BHgIuAf8DNwH/
AWABaAFwAf8BYAFoAXAB/wFgAWgBcAH/DAADVAH/A1QB/wNVAf8DVAH/A1QB/wMVAf8DAAH/AxUB/wOJ
Ef8DAAH/A1UB/wNUAf8kAAMaASQDPQFnAv8B/gP/Af4D/wH+Bf8DPQFnCAADCgENA04BlgGPAXMBTQH6
AeEBzQG5Af8B8QHiAdQB/wH5AewB3wH/AfsB8wHlAf8B9AHtAeQB/wHiAc4BuwH/AY8BcwFNAfoDTgGW
AwoBDRgAAR4CLgH/AR4CLgH/AwUB/wMFAf8DBQH/ARYCHgH/AzcB/wM3Af8QAANUAf8DVAH/A1QB/wNU
Af8DVAH/A1QB/wNUAf8DFQH/AwAB/wMJAf8DUAH/A8IF/wMAAf8DVQH/A1QB/ygAAxoBJAM8AWYDPAFm
AzwBZgM8AWYDMQFNEAADJwE7A04BlAJeAVwBzgFqAWMBWQHrAWgBYgFYAe8CXgFbAdkDTwGXAycBOygA
AWABaAFwAf8BYAFoAXAB/wFgAWgBcAH/AWABaAFwAf8cAANUAf8DVAH/A1QB/wNUAf8DVQH/A1QB/wNU
Af8DVAH/A1QB/wMJAf8DAAH/Ay8B/wMVAf8DVQH/EAADAgEDAxQBHAMwAUwDRAF5A1ABmgNQAaQDUAGa
A0QBeQMwAUwDFAEcAwMBBAgAA5YB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wEN
AgAB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wENAgAB/wQAAUABzAL/
AQ0CmQH/AQ0CmQH/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/
AUABzAL/AUABzAL/AUABzAL/EAADAgEDAxQBHAMwAUwDRAF5A1ABmgNQAaQDUAGaA0QBeQMwAUwDFAEc
AwMBBBAAAwQBBgMkATYDUwGwAWMCXgHlA18B+wGzAqkB/wNfAfsDYAHrA1oB0wNTAawDRwGCAygBPAMH
AQkEAAHMApkB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wPqAf8D6gH/A+oB/wGAAgAB/wPqAf8D6gH/
A+oB/wGAAgAB/wGAAgAB/wFDAgAB/wEQAgAB/wEQApkB/wMAAf8DBgH/AyoB/wMAAf8DAAH/AUMBzAL/
AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/AUMBzAL/CAADBAEG
A+oB/wGAAgAB/wGAAgAB/wFAAgAB/wENAgAB/wENApkB/wMAAf8DAwH/AycB/wMAAf8DAAH/AUABzAL/
AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/AUABzAL/CAADBAEG
AyQBNgNTAbABYwJeAeUDXwH7AbMCqQH/A18B+wNgAesDWgHTA1MBrANHAYIDKAE8AwcBCQgAAwIBAwMx
AU8DXAHqAc8CtAL/At0C/wLiAv8C6AL/Au4C/wLzAf8DzwH/A18B8wNYAcYDTAGSAygBPAMDAQQBzAKZ
Af8BgAIAAf8BgAIAAf8BgAIAAf8D8QH/AYACAAH/AYACAAH/A/EB/wGAAgAB/wPxAf8BgAIAAf8BgAIA
Af8D8QH/AYACAAH/AYACAAH/ARACAAH/AwAB/wPMDf8DKgH/AwAB/wFDAcwC/wFDAcwC/wFDAcwC/wFD
AcwC/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wQAAwIBAwMxAU8DXAHqAc8CtAL/At0C/wLi
Af8D8QH/AYACAAH/AYACAAH/AQ0CAAH/AwAB/wPMDf8DJwH/AwAB/wFAAcwC/wFAAcwC/wFAAcwC/wFA
AcwC/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wQAAwIBAwMxAU8DXAHqAc8CtAL/At0C/wLi
Av8C6AL/Au4C/wLzAf8DzwH/A18B8wNYAcYDTAGSAygBPAMDAQQEAAMmATgDbQH3AfUCxwL/AtIC/wLY
Av8C3QL/AuIC/wLoAv8C9AX/A/UB/wNkAfsDWAHGA0cBggMUARwBzAKZAf8BmQEAARAB/wGAAgAB/wGA
AgAF/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAB/wGAAgAB/wEQAgAB/wMAAf8DzBH/
AwAB/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wFDAcwC/wQA
AyYBOANtAfcB9QLHAv8C0gL/AtgC/wLdAv8C4gL/AugC/wL0Bf8D9QH/A2QB+wNYAcYDRwGCAxQBHAMH
Av8C3QL/AuIC/wLoAv8C9AX/A/UB/wNfAfsDWAHGA0cBggMUARwBzAKZAf8BmQEAAQ0B/wGAAgAB/wGA
AgAF/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAB/wGAAgAB/wENAgAB/wMAAf8DzBH/
AwAB/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wFAAcwC/wQA
AyYBOANtAfcB9QLHAv8C0gL/AtgC/wLdAv8C4gL/AugC/wL0Bf8D9QH/A18B+wNYAcYDRwGCAxQBHAMH
AQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLdAv8C4gL/AvoJ/wP1Af8DXwHzA1MBrAMwAUwBzAKZ
Af8BmQEAARAB/wGAAgAB/wGAAgAB/wGAAgAN/wGAAgAN/wGAAgAB/wGAAgAB/wGAAgAB/wEQAgAB/wEQ
ApkB/wMAAf8DVAH/A8AB/wPAAf8DzAH/AwAB/wMGAf8DAAH/AwAB/wMAAf8DAAH/AwYB/wFDAcwC/wFD
AcwC/wFDAcwC/wMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLdAv8C4gL/AvoJ/wP1Af8DXwHz
Af8BmQEAAQ0B/wGAAgAB/wGAAgAB/wGAAgAN/wGAAgAN/wGAAgAB/wGAAgAB/wGAAgAB/wENAgAB/wEN
ApkB/wMAAf8DUQH/A8AB/wPAAf8DzAH/AwAB/wMDAf8DAAH/AwAB/wMAAf8DAAH/AwMB/wFAAcwC/wFA
AcwC/wFAAcwC/wMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLdAv8C4gL/AvoJ/wP1Af8DXwHz
A1MBrAMwAUwDPgFqAcYCsQL/AtkC/wLUAv8CzwL/As0C/wHUAdsC/wHXAeIC/wHkAeoR/wHSAswB/wNa
AdMDQwF3AcwCmQH/AZkBAAEQAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIABf8BgAIABf8BgAIA
Af8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BEAIAAf8BQwHMAv8BEAKZAf8DAAH/AwAB/wMABf8DAAH/
AwAB/wGkAqAJ/wOZAf8DBgH/AwYB/wFDAcwC/wFDAcwC/wM+AWoBxgKxAv8C2QL/AtQC/wLPAv8CzQL/
AdQB2wL/AdcB4gL/AeQB6hH/AdICzAH/A1oB0wNDAXcDVgG2Af8C4wH/AQABCwEMAf8BAAELAQwB/wEA
AQsBDAL/Ad4B5wH/AQABCwEMAv8B0QHzAf8BAAELAQwC/wH4Av8BSwJRAf8BAAELAQwB/wFLAlEB/wHM
ApkB/wFcAlUB6gNOAZQBzAKZAf8BmQEAARAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAF/wGA
AgAF/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEQAgAB/wFDAcwC/wFDAcwC/wFDAcwC/wFD
AcwC/wMABf8DAAH/AwYR/wPMAf8DAAH/AUMBzAL/AUMBzAL/A1YBtgH/AuMB/wFLAlEB/wEAAQsBDAH/
AUsCUQL/Ad4B5wH/AUsCUQH/AQABCwEMAf8BSwJRAv8B+AL/AQABCwEMAf8BAAELAQwB/wEAAQsBDAH/
AcwCmQH/AVwCVQHqA04BlANhAeIB/wLnAf8BAAELAQwC/wLeAv8C4AL/Ae8B/AH/AQABCwEMAv8B4gH8
Af8BAAELAQwB/wH8AfAB+QH/AQABCwEMAf8BzAKZAf8BAAELAQwB/wHMApkB/wFtAmwB9wNRAaEBzAKZ
Af8BmQEAARAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGA
AgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEQAgAB/wGZAkMB/wGZAkMB/wGZAkMB/wGZAkMB/wMA
Bf8DAAH/AwAB/wMqAf8DzA3/AwAB/wGZAkMB/wGZAkMB/wNhAeIB/wLnAf8BAAELAQwC/wLeAf8BAAEL
AQwC/wHvAfwB/wEAAQsBDAL/AeIB/AH/AQABCwEMAf8B/AHwAfkB/wEAAQsBDAH/AcwCmQH/AcwCmQH/
AcwCmQH/AW0CbAH3A1EBoQGeAowB/wHpAr4B/wEAAQsBDAH/AQABCwEMAf8B+QLWAv8B6QHzAf8BAAEL
AQwB/wEAAQsBDAH/AQABCwEMAf8B+QHoAewB/wEAAQsBDAH/AeYCugH/AeYCvQH/AeYCwAH/AaYClAH/
A04BlDT/A/EB/wPqAf8DgAH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AwAF/wMAAf8DMgH/AwAB/wMA
Af8DAAH/AwAF/wMAAf8BmQJDAf8BmQJDAf8BngKMAf8B6QK+Af8BAAELAQwB/wHzAsUB/wH5AtYC/wHp
AfMB/wEAAQsBDAL/AekB8wH/AQABCwEMAf8B+QHoAewB/wEAAQsBDAH/AQABCwEMAf8B5gK9Af8B5gLA
Af8BpgKUAf8DTgGUA10B0gHbAqgB/wEAAQsBDAH/AeoCtwH/AfMCzQL/Ae4B/AH/AQABCwEMAv8B0gH1
Af8BAAELAQwC/wH0AfwB/wEAAQsBDAL/AtgB/wEAAQsBDAL/AuIB/wNiAfYDQwF3BP8BmQEAARAJ/wGA
AgAN/wGAAgAB/wGAAgAN/wGAAgAB/wGAAgAB/wOAAf8BmQJDAf8BmQJDAf8BmQJDAf8BmQJDAf8DAAX/
AwAB/wMAAf8DBgH/AzIB/wMyAf8DAAX/AwAB/wGZAkMB/wGZAkMB/wNdAdIB2wKoAf8BAAELAQwB/wHq
ArcB/wEAAQsBDAL/Ae4B/AH/AQABCwEMAv8B0gH1Af8BAAELAQwC/wH0AfwB/wEAAQsBDAL/AtgC/wLd
Av8C4gH/A2IB9gNDAXcDVgGxAdUCogH/AQABCwEMAf8BAAELAQwB/wEAAQsBDAL/AfYC/wFLAlEB/wEA
AQsBDAH/AUsCUQL/AeAB5wH/AUsCUQH/AQABCwEMAf8BSwJRAv8C3QH/A1oB5AMwAUwE/wGZAQABEAn/
AYACAAn/AYACABH/AYACAAH/A/EB/wPqAf8DgAH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AwAJ/wOZ
Af8DBgH/AwAB/wMAAf8DAAX/AwAB/wGZAkMB/wGZAkMB/wNWAbEB1QKiAf8BSwJRAf8BAAELAQwB/wFL
AlEC/wH2Av8BAAELAQwC/wHSAfUB/wEAAQsBDAL/AeAB5wH/AQABCwEMAf8BAAELAQwB/wEAAQsBDAL/
AdMDQwF3AcwCmQH/AZkBAAENAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIABf8BgAIABf8BgAIA
Af8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BDQIAAf8BQAHMAv8BDQKZAf8DAAH/AwAB/wMABf8DAAH/
AwAB/wGkAqAJ/wOZAf8DAwH/AwMB/wFAAcwC/wFAAcwC/wM+AWoBxgKxAv8C2QL/AtQC/wLPAv8CzQL/
AdQB2wL/AdcB4gL/AeQB6hH/AdICzAH/A1oB0wNDAXcDVgG2Af8C4wH/AQABCAEJAf8BAAEIAQkB/wEA
AQgBCQL/Ad4B5wH/AQABCAEJAv8B0QHzAf8BAAEIAQkC/wH4Av8BSAJOAf8BAAEIAQkB/wFIAk4B/wHM
ApkB/wFcAlUB6gNOAZQBzAKZAf8BmQEAAQ0B/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAF/wGA
AgAF/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wENAgAB/wFAAcwC/wFAAcwC/wFAAcwC/wFA
AcwC/wMABf8DAAH/AwMR/wPMAf8DAAH/AUABzAL/AUABzAL/A1YBtgH/AuMB/wFIAk4B/wEAAQgBCQH/
AUgCTgL/Ad4B5wH/AUgCTgH/AQABCAEJAf8BSAJOAv8B+AL/AQABCAEJAf8BAAEIAQkB/wEAAQgBCQH/
AcwCmQH/AVwCVQHqA04BlANhAeIB/wLnAf8BAAEIAQkC/wLeAv8C4AL/Ae8B/AH/AQABCAEJAv8B4gH8
Af8BAAEIAQkB/wH8AfAB+QH/AQABCAEJAf8BzAKZAf8BAAEIAQkB/wHMApkB/wFtAmwB9wNRAaEBzAKZ
Af8BmQEAAQ0B/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGA
AgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wENAgAB/wGZAkAB/wGZAkAB/wGZAkAB/wGZAkAB/wMA
Bf8DAAH/AwAB/wMnAf8DzA3/AwAB/wGZAkAB/wGZAkAB/wNhAeIB/wLnAf8BAAEIAQkC/wLeAf8BAAEI
AQkC/wHvAfwB/wEAAQgBCQL/AeIB/AH/AQABCAEJAf8B/AHwAfkB/wEAAQgBCQH/AcwCmQH/AcwCmQH/
AcwCmQH/AW0CbAH3A1EBoQGeAowB/wHpAr4B/wEAAQgBCQH/AQABCAEJAf8B+QLWAv8B6QHzAf8BAAEI
AQkB/wEAAQgBCQH/AQABCAEJAf8B+QHoAewB/wEAAQgBCQH/AeYCugH/AeYCvQH/AeYCwAH/AaYClAH/
A04BlDT/A/EB/wPqAf8DgAH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AwAF/wMAAf8DLwH/AwAB/wMA
Af8DAAH/AwAF/wMAAf8BmQJAAf8BmQJAAf8BngKMAf8B6QK+Af8BAAEIAQkB/wHzAsUB/wH5AtYC/wHp
AfMB/wEAAQgBCQL/AekB8wH/AQABCAEJAf8B+QHoAewB/wEAAQgBCQH/AQABCAEJAf8B5gK9Af8B5gLA
Af8BpgKUAf8DTgGUA10B0gHbAqgB/wEAAQgBCQH/AeoCtwH/AfMCzQL/Ae4B/AH/AQABCAEJAv8B0gH1
Af8BAAEIAQkC/wH0AfwB/wEAAQgBCQL/AtgB/wEAAQgBCQL/AuIB/wNiAfYDQwF3BP8BmQEAAQ0J/wGA
AgAN/wGAAgAB/wGAAgAN/wGAAgAB/wGAAgAB/wOAAf8BmQJAAf8BmQJAAf8BmQJAAf8BmQJAAf8DAAX/
AwAB/wMAAf8DAwH/Ay8B/wMvAf8DAAX/AwAB/wGZAkAB/wGZAkAB/wNdAdIB2wKoAf8BAAEIAQkB/wHq
ArcB/wEAAQgBCQL/Ae4B/AH/AQABCAEJAv8B0gH1Af8BAAEIAQkC/wH0AfwB/wEAAQgBCQL/AtgC/wLd
Av8C4gH/A2IB9gNDAXcDVgGxAdUCogH/AQABCAEJAf8BAAEIAQkB/wEAAQgBCQL/AfYC/wFIAk4B/wEA
AQgBCQH/AUgCTgL/AeAB5wH/AUgCTgH/AQABCAEJAf8BSAJOAv8C3QH/A1oB5AMwAUwE/wGZAQABDQn/
AYACAAn/AYACABH/AYACAAH/A/EB/wPqAf8DgAH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AwAJ/wOZ
Af8DAwH/AwAB/wMAAf8DAAX/AwAB/wGZAkAB/wGZAkAB/wNWAbEB1QKiAf8BSAJOAf8BAAEIAQkB/wFI
Ak4C/wH2Av8BAAEIAQkC/wHSAfUB/wEAAQgBCQL/AeAB5wH/AQABCAEJAf8BAAEIAQkB/wEAAQgBCQL/
At0B/wNaAeQDMAFMAzIBUAHDAr8S/wHsAfEC/wHbAecC/wHZAd4C/wLUAv8CzwL/As0C/wLSAf8BxgKt
Af8DUwGsAxQBGwT/AZkBAAEQCf8BgAIACf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIABf8BgAIAAf8BgAIA
Af8BgAIAAf8BEAIAAf8BmQJDAf8BmQJDAf8BmQJDAf8BmQJDAf8DAAH/A8AN/wPMAf8DPAH/AwAF/wMA
Af8BmQJDAf8BmQJDAf8DMgFQAcMCvxL/AewB8QL/AdsB5wL/AdkB3gL/AtQC/wLPAv8CzQL/AtIB/wHG
Af8DUwGsAxQBGwT/AZkBAAENCf8BgAIACf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIABf8BgAIAAf8BgAIA
Af8BgAIAAf8BDQIAAf8BmQJAAf8BmQJAAf8BmQJAAf8BmQJAAf8DAAH/A8AN/wPMAf8DOQH/AwAF/wMA
Af8BmQJAAf8BmQJAAf8DMgFQAcMCvxL/AewB8QL/AdsB5wL/AdkB3gL/AtQC/wLPAv8CzQL/AtIB/wHG
Aq0B/wNTAawDFAEbBAADWgHAA/UK/wL+Av8C5wL/AuMC/wLeAv8C2QL/AtQC/wLPAf8B9QLHAf8DXwHj
AyMBNAMCAQME/wGZAQABEAH/AYACAAX/AYACAAn/AYACAAn/AYACAAX/AYACAAH/A/EB/wPqAf8BEAIA
Af8BmQJDAf8BmQJDAf8BmQJDAf8BmQJDAf8DBgH/AyoB/wPAGf8DAAH/AZkCQwH/AZkCQwH/BAADWgHA
AyMBNAMCAQME/wGZAQABDQH/AYACAAX/AYACAAn/AYACAAn/AYACAAX/AYACAAH/A/EB/wPqAf8BDQIA
Af8BmQJAAf8BmQJAAf8BmQJAAf8BmQJAAf8DAwH/AycB/wPAGf8DAAH/AZkCQAH/AZkCQAH/BAADWgHA
A/UK/wL+Av8C5wL/AuMC/wLeAv8C2QL/AtQC/wLPAf8B9QLHAf8DXwHjAyMBNAMCAQMEAAMXASADYgHv
A/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFNAwQBBgQABP8BmQIQCf8BgAIA
Af8BgAIACf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DhgH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/
AZkCQwH/AwYB/wMAAf8DBgH/A5kR/wMAAf8BmQJDAf8BmQJDAf8EAAMXASADYgHvA/UG/wL4Av8C7AL/
A/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFNAwQBBgQABP8BmQINCf8BgAIA
Af8BgAIACf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DhgH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/
AZkCQAH/AwMB/wMAAf8DAwH/A5kR/wMAAf8BmQJAAf8BmQJAAf8EAAMXASADYgHvA/UG/wL4Av8C7AL/
AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFNAwQBBgwAAxcBIANaAcADxgL/AvcC/wLyAv8C7AL/
AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMCAQMIAAT/AZkCEC3/A/EB/wPqAf8DhgH/AZkCQwH/AZkCQwH/
AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AwYB/wMAAf8DAAH/A1QB/wPMBf8DAAH/AZkCQwH/
AZkCQwH/CAADFwEgA1oBwAPGAv8C9wL/AvIC/wLsAv8C5wL/AuMB/wHGArEB/wNeAdADJAE2AwIBAxgA
AzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFaAwUBBxAACP8BzAKZLf8D8QH/A8AB/wQAAZkCQwH/
AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AZkCQwH/AwAB/wMAAf8DKgH/
AwYB/wGZAkMB/xQAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFaAwUBBxAAAUIBTQE+BwABPgMA
AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMCAQMIAAT/AZkCDS3/A/EB/wPqAf8DhgH/AZkCQAH/AZkCQAH/
AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AwMB/wMAAf8DAAH/A1EB/wPMBf8DAAH/AZkCQAH/
AZkCQAH/CAADFwEgA1oBwAPGAv8C9wL/AvIC/wLsAv8C5wL/AuMB/wHGArEB/wNeAdADJAE2AwIBAxgA
AzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFaAwUBBxAACP8BzAKZLf8D8QH/A8AB/wQAAZkCQAH/
AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AZkCQAH/AwAB/wMAAf8DJwH/
AwMB/wGZAkAB/xQAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFaAwUBBxAAAUIBTQE+BwABPgMA
ASgDAAFAAwABMAMAAQEBAAEBBQABgAEBFgAD/wIAAYAHAAGABgAB8AGBBwABgQcAAQEHAAEBBwABAQcA
AR8GAAHwAQEGAAHwAQEGAAHwAQEGAAHwAQEGAAH/AQcGAAH/AQcGAAH/AQcGAAH/AQcGAAHjAf8B8AEH
AfwBPwGAAQEBwQH/AcABAwHwAQ8CAAGAAf8BgAEBAeABBwMAAX8BgAEAAcABAwMAAT8CAAGAAQEDAAEf
@@ -349,7 +354,7 @@
<value>listChoices</value>
</data>
<data name="&gt;&gt;listChoices.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listChoices.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
@@ -364,7 +369,10 @@
<value>Courier New, 8pt</value>
</data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 153</value>
<value>4, 236</value>
</data>
<data name="textBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
@@ -373,7 +381,7 @@
<value>Vertical</value>
</data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 7</value>
<value>1183, 10</value>
</data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -382,7 +390,7 @@
<value>textBox1</value>
</data>
<data name="&gt;&gt;textBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textBox1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
@@ -400,13 +408,16 @@
<value>Fill</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 422</value>
<value>4, 650</value>
</data>
<data name="tableLayoutPanel2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 35</value>
<value>1183, 53</value>
</data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>30</value>
@@ -415,7 +426,7 @@
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
@@ -429,11 +440,17 @@
<data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 166</value>
<value>4, 256</value>
</data>
<data name="pictureBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 7</value>
<value>1183, 73</value>
</data>
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>Zoom</value>
@@ -445,7 +462,7 @@
<value>pictureBox1</value>
</data>
<data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
@@ -456,7 +473,7 @@
<data name="tableLayoutPanelMeta.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<metadata name="dataGridViewTextBoxColumnTrackNo.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="dataGridViewTextBoxColumnTrackNo.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackNo.HeaderText" xml:space="preserve">
@@ -468,13 +485,13 @@
<data name="dataGridViewTextBoxColumnTrackNo.Width" type="System.Int32, mscorlib">
<value>30</value>
</data>
<metadata name="dataGridViewTextBoxColumnTrackTitle.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="dataGridViewTextBoxColumnTrackTitle.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackTitle.HeaderText" xml:space="preserve">
<value>Title</value>
</data>
<metadata name="dataGridViewTextBoxColumnTrackStart.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="dataGridViewTextBoxColumnTrackStart.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackStart.HeaderText" xml:space="preserve">
@@ -486,7 +503,7 @@
<data name="dataGridViewTextBoxColumnTrackStart.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<metadata name="dataGridViewTextBoxColumnTrackLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="dataGridViewTextBoxColumnTrackLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackLength.HeaderText" xml:space="preserve">
@@ -496,19 +513,16 @@
<value>50</value>
</data>
<data name="dataGridViewTextBoxColumnTrackLength.Width" type="System.Int32, mscorlib">
<value>50</value>
<value>65</value>
</data>
<data name="dataGridViewTracks.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="dataGridViewTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>396, 2</value>
</data>
<data name="dataGridViewTracks.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>2, 2, 2, 2</value>
<value>594, 3</value>
</data>
<data name="dataGridViewTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>390, 233</value>
<value>586, 295</value>
</data>
<data name="dataGridViewTracks.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@@ -517,7 +531,7 @@
<value>dataGridViewTracks</value>
</data>
<data name="&gt;&gt;dataGridViewTracks.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTracks.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value>
@@ -525,7 +539,7 @@
<data name="&gt;&gt;dataGridViewTracks.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="Item.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="Item.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="Item.HeaderText" xml:space="preserve">
@@ -537,7 +551,7 @@
<data name="Item.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<metadata name="Value.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="Value.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="Value.HeaderText" xml:space="preserve">
@@ -547,13 +561,10 @@
<value>Fill</value>
</data>
<data name="dataGridViewMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>2, 2</value>
</data>
<data name="dataGridViewMetadata.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>2, 2, 2, 2</value>
<value>3, 3</value>
</data>
<data name="dataGridViewMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>390, 233</value>
<value>585, 295</value>
</data>
<data name="dataGridViewMetadata.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@@ -562,7 +573,7 @@
<value>dataGridViewMetadata</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value>
@@ -574,13 +585,16 @@
<value>Fill</value>
</data>
<data name="tableLayoutPanelMeta.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 179</value>
<value>4, 339</value>
</data>
<data name="tableLayoutPanelMeta.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="tableLayoutPanelMeta.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelMeta.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 237</value>
<value>1183, 301</value>
</data>
<data name="tableLayoutPanelMeta.TabIndex" type="System.Int32, mscorlib">
<value>32</value>
@@ -589,7 +603,7 @@
<value>tableLayoutPanelMeta</value>
</data>
<data name="&gt;&gt;tableLayoutPanelMeta.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanelMeta.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
@@ -606,11 +620,14 @@
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>794, 460</value>
<value>1191, 708</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>29</value>
@@ -619,7 +636,7 @@
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Type" xml:space="preserve">
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>$this</value>
@@ -628,25 +645,28 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanel2" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="textBox1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="listChoices" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="pictureBox1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutPanelMeta" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="Absolute,150,Percent,5,Percent,5,Percent,90,Absolute,40" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanel2" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="textBox1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="listChoices" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="pictureBox1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutPanelMeta" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="Absolute,231,Percent,5,Percent,20,Percent,75,Absolute,62" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>127, 17</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>51</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
<value>9, 20</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>794, 460</value>
<value>1191, 708</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>590, 495</value>
<value>874, 731</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
@@ -658,60 +678,60 @@
<value>columnHeader1</value>
</data>
<data name="&gt;&gt;columnHeader1.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;imageList1.Name" xml:space="preserve">
<value>imageList1</value>
</data>
<data name="&gt;&gt;imageList1.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackNo.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackNo</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackNo.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackTitle.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackTitle</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackTitle.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackStart.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackStart</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackStart.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackLength.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackLength</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackLength.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Item.Name" xml:space="preserve">
<value>Item</value>
</data>
<data name="&gt;&gt;Item.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Value.Name" xml:space="preserve">
<value>Value</value>
</data>
<data name="&gt;&gt;Value.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;backgroundWorker1.Name" xml:space="preserve">
<value>backgroundWorker1</value>
</data>
<data name="&gt;&gt;backgroundWorker1.Type" xml:space="preserve">
<value>System.ComponentModel.BackgroundWorker, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.ComponentModel.BackgroundWorker, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmChoice</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>