* support for new metadata sources via CTDB

* CUETools: GUI tweaks for large screen resolutions on windows 7
* CUETools.Codecs.LAMEEncoder: fix VBR header update for filenames with unicode characters
* CUERipper: more string messages for SCSI errors when ripping
This commit is contained in:
chudov
2011-09-08 18:25:54 +00:00
parent 02d37c8bfc
commit 8b19665038
28 changed files with 4316 additions and 4105 deletions

View File

@@ -690,6 +690,14 @@ namespace Bwg.Scsi
#region Private Functions #region Private Functions
public string GetErrorString()
{
string res = messages.GetString(string.Format("SCSISenseKey_{0:X2}", (int)this.GetSenseKey())) ?? this.GetSenseKey().ToString();
if (this.GetSenseKey() == SenseKeyType.NoSense)
return res;
return res + ": " + Device.LookupSenseError(this.GetSenseAsc(), this.GetSenseAscq());
}
/// <summary> /// <summary>
/// Return a string associated with the ASC/ASCQ bytes /// Return a string associated with the ASC/ASCQ bytes
/// </summary> /// </summary>

View File

@@ -127,11 +127,14 @@
<value>NO INDEX/SECTOR SIGNAL</value> <value>NO INDEX/SECTOR SIGNAL</value>
</data> </data>
<data name="SCSIErrorMessage_0102" xml:space="preserve"> <data name="SCSIErrorMessage_0102" xml:space="preserve">
<value>NO SEEK COMPLETE</value> <value>no seek complete</value>
</data> </data>
<data name="SCSIErrorMessage_0103" xml:space="preserve"> <data name="SCSIErrorMessage_0103" xml:space="preserve">
<value>PERIPHERAL DEVICE WRITE FAULT</value> <value>PERIPHERAL DEVICE WRITE FAULT</value>
</data> </data>
<data name="SCSIErrorMessage_0200" xml:space="preserve">
<value>NO SEEK COMPLETE</value>
</data>
<data name="SCSIErrorMessage_0400" xml:space="preserve"> <data name="SCSIErrorMessage_0400" xml:space="preserve">
<value>LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE</value> <value>LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE</value>
</data> </data>
@@ -310,13 +313,13 @@
<value>CANNOT WRITE MEDIUM - UNSUPPORTED MEDIUM VERSION</value> <value>CANNOT WRITE MEDIUM - UNSUPPORTED MEDIUM VERSION</value>
</data> </data>
<data name="SCSIErrorMessage_3A00" xml:space="preserve"> <data name="SCSIErrorMessage_3A00" xml:space="preserve">
<value>MEDIUM NOT PRESENT</value> <value>medium not present</value>
</data> </data>
<data name="SCSIErrorMessage_3A01" xml:space="preserve"> <data name="SCSIErrorMessage_3A01" xml:space="preserve">
<value>MEDIUM NOT PRESENT - TRAY CLOSED</value> <value>medium not present - tray closed</value>
</data> </data>
<data name="SCSIErrorMessage_3A02" xml:space="preserve"> <data name="SCSIErrorMessage_3A02" xml:space="preserve">
<value>MEDIUM NOT PRESENT - TRAY OPEN</value> <value>medium not present - tray open</value>
</data> </data>
<data name="SCSIErrorMessage_3B0D" xml:space="preserve"> <data name="SCSIErrorMessage_3B0D" xml:space="preserve">
<value>MEDIUM DESTINATION ELEMENT FULL</value> <value>MEDIUM DESTINATION ELEMENT FULL</value>
@@ -489,6 +492,48 @@
<data name="SCSIErrorMessage_7306" xml:space="preserve"> <data name="SCSIErrorMessage_7306" xml:space="preserve">
<value>RMA/PMA IS ALMOST FULL</value> <value>RMA/PMA IS ALMOST FULL</value>
</data> </data>
<data name="SCSISenseKey_00" xml:space="preserve">
<value>unknown error</value>
</data>
<data name="SCSISenseKey_01" xml:space="preserve">
<value>recovered error</value>
</data>
<data name="SCSISenseKey_02" xml:space="preserve">
<value>not ready</value>
</data>
<data name="SCSISenseKey_03" xml:space="preserve">
<value>medium error</value>
</data>
<data name="SCSISenseKey_04" xml:space="preserve">
<value>hardware error</value>
</data>
<data name="SCSISenseKey_05" xml:space="preserve">
<value>illegal request</value>
</data>
<data name="SCSISenseKey_06" xml:space="preserve">
<value>unit attention</value>
</data>
<data name="SCSISenseKey_07" xml:space="preserve">
<value>data protect</value>
</data>
<data name="SCSISenseKey_08" xml:space="preserve">
<value>blank check</value>
</data>
<data name="SCSISenseKey_09" xml:space="preserve">
<value>vendor specific</value>
</data>
<data name="SCSISenseKey_0A" xml:space="preserve">
<value>copy aborted</value>
</data>
<data name="SCSISenseKey_0B" xml:space="preserve">
<value>aborted command</value>
</data>
<data name="SCSISenseKey_0D" xml:space="preserve">
<value>volume overflow</value>
</data>
<data name="SCSISenseKey_0E" xml:space="preserve">
<value>miscompare</value>
</data>
<data name="UnknownSCSIError" xml:space="preserve"> <data name="UnknownSCSIError" xml:space="preserve">
<value>NO SENSE STRING FOR</value> <value>NO SENSE STRING FOR</value>
</data> </data>

View File

@@ -126,4 +126,46 @@
<data name="SCSIErrorMessage_3A02" xml:space="preserve"> <data name="SCSIErrorMessage_3A02" xml:space="preserve">
<value>отсутствует носитель - лоток закрыт</value> <value>отсутствует носитель - лоток закрыт</value>
</data> </data>
<data name="SCSISenseKey_00" xml:space="preserve">
<value>неизвестная ошибка</value>
</data>
<data name="SCSISenseKey_01" xml:space="preserve">
<value>recovered error</value>
</data>
<data name="SCSISenseKey_02" xml:space="preserve">
<value>устройство не готово</value>
</data>
<data name="SCSISenseKey_03" xml:space="preserve">
<value>ошибка носителя</value>
</data>
<data name="SCSISenseKey_04" xml:space="preserve">
<value>аппаратная ошибка</value>
</data>
<data name="SCSISenseKey_05" xml:space="preserve">
<value>некорректный запрос</value>
</data>
<data name="SCSISenseKey_06" xml:space="preserve">
<value>unit attention</value>
</data>
<data name="SCSISenseKey_07" xml:space="preserve">
<value>data protect</value>
</data>
<data name="SCSISenseKey_08" xml:space="preserve">
<value>blank check</value>
</data>
<data name="SCSISenseKey_09" xml:space="preserve">
<value>vendor specific</value>
</data>
<data name="SCSISenseKey_0A" xml:space="preserve">
<value>copy aborted</value>
</data>
<data name="SCSISenseKey_0B" xml:space="preserve">
<value>aborted command</value>
</data>
<data name="SCSISenseKey_0D" xml:space="preserve">
<value>volume overflow</value>
</data>
<data name="SCSISenseKey_0E" xml:space="preserve">
<value>miscompare</value>
</data>
</root> </root>

View File

@@ -635,7 +635,7 @@ namespace CUERipper
cueSheet.Action = CUEAction.Encode; cueSheet.Action = CUEAction.Encode;
this.BeginInvoke((MethodInvoker)delegate() { toolStripStatusLabel1.Text = Properties.Resources.LookingUpVia + " CTDB..."; }); this.BeginInvoke((MethodInvoker)delegate() { toolStripStatusLabel1.Text = Properties.Resources.LookingUpVia + " CTDB..."; });
cueSheet.UseCUEToolsDB("CUERipper " + CUESheet.CUEToolsVersion, selectedDriveInfo.drive.ARName, false, CTDBPriority.High, CTDBPriority.Medium, CTDBPriority.Low); cueSheet.UseCUEToolsDB("CUERipper " + CUESheet.CUEToolsVersion, selectedDriveInfo.drive.ARName, false, CTDBMetadataSearch.Default);
cueSheet.CTDB.UploadHelper.onProgress += new EventHandler<Krystalware.UploadHelper.UploadProgressEventArgs>(UploadProgress); cueSheet.CTDB.UploadHelper.onProgress += new EventHandler<Krystalware.UploadHelper.UploadProgressEventArgs>(UploadProgress);
this.BeginInvoke((MethodInvoker)delegate() { toolStripStatusLabel1.Text = Properties.Resources.LookingUpVia + " AccurateRip..."; }); this.BeginInvoke((MethodInvoker)delegate() { toolStripStatusLabel1.Text = Properties.Resources.LookingUpVia + " AccurateRip..."; });
cueSheet.UseAccurateRip(); cueSheet.UseAccurateRip();

View File

@@ -1124,16 +1124,17 @@ namespace CUETools.AccurateRip
get { throw new Exception("unsupported"); } get { throw new Exception("unsupported"); }
} }
public void GenerateLog(TextWriter sw, int oi, bool v2) public void GenerateLog(TextWriter sw, int oi)
{ {
uint maxTotal = 0; uint maxTotal = 0;
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++) for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
maxTotal = Math.Max(maxTotal, Total(iTrack)); maxTotal = Math.Max(maxTotal, Total(iTrack));
uint maxConf = 0; uint maxConf = 0, maxConf2 = 0;
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++) for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
{ {
uint crcOI = v2 ? CRCV2(iTrack) : CRC(iTrack, oi); uint crcOI = CRC(iTrack, oi);
uint crcOI2 = CRCV2(iTrack);
for (int di = 0; di < (int)AccDisks.Count; di++) for (int di = 0; di < (int)AccDisks.Count; di++)
{ {
int trno = iTrack + _toc.FirstAudio - 1; int trno = iTrack + _toc.FirstAudio - 1;
@@ -1142,12 +1143,14 @@ namespace CUETools.AccurateRip
&& 0 != AccDisks[di].tracks[trno].CRC && 0 != AccDisks[di].tracks[trno].CRC
) )
maxConf = Math.Max(maxConf, AccDisks[di].tracks[trno].count); maxConf = Math.Max(maxConf, AccDisks[di].tracks[trno].count);
if (trno < AccDisks[di].tracks.Count
&& 0 == oi
&& crcOI2 == AccDisks[di].tracks[trno].CRC
&& 0 != AccDisks[di].tracks[trno].CRC
)
maxConf2 = Math.Max(maxConf, AccDisks[di].tracks[trno].count);
} }
} }
if (maxConf == 0 && v2)
return;
if (v2)
sw.WriteLine("AccurateRip v2:");
string ifmt = maxTotal < 10 ? ":0" : maxTotal < 100 ? ":00" : ":000"; string ifmt = maxTotal < 10 ? ":0" : maxTotal < 100 ? ":00" : ":000";
//string ifmt = maxTotal < 10 ? ",1" : maxTotal < 100 ? ",2" : ",3"; //string ifmt = maxTotal < 10 ? ",1" : maxTotal < 100 ? ",2" : ",3";
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++) for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
@@ -1155,7 +1158,9 @@ namespace CUETools.AccurateRip
uint count = 0; uint count = 0;
uint partials = 0; uint partials = 0;
uint conf = 0; uint conf = 0;
uint crcOI = v2 ? CRCV2(iTrack) : CRC(iTrack, oi); uint conf2 = 0;
uint crcOI = CRC(iTrack, oi);
uint crcOI2 = CRCV2(iTrack);
uint crc450OI = CRC450(iTrack, oi); uint crc450OI = CRC450(iTrack, oi);
for (int di = 0; di < (int)AccDisks.Count; di++) for (int di = 0; di < (int)AccDisks.Count; di++)
{ {
@@ -1166,20 +1171,29 @@ namespace CUETools.AccurateRip
if (crcOI == AccDisks[di].tracks[trno].CRC if (crcOI == AccDisks[di].tracks[trno].CRC
&& 0 != AccDisks[di].tracks[trno].CRC) && 0 != AccDisks[di].tracks[trno].CRC)
conf += AccDisks[di].tracks[trno].count; conf += AccDisks[di].tracks[trno].count;
if (crcOI2 == AccDisks[di].tracks[trno].CRC
&& 0 == oi
&& 0 != AccDisks[di].tracks[trno].CRC)
conf2 += AccDisks[di].tracks[trno].count;
if (crc450OI == AccDisks[di].tracks[trno].Frame450CRC if (crc450OI == AccDisks[di].tracks[trno].Frame450CRC
&& 0 != AccDisks[di].tracks[trno].Frame450CRC) && 0 != AccDisks[di].tracks[trno].Frame450CRC)
partials++; partials++;
} }
string status; string status;
if (conf > 0) if (conf + conf2 > 0)
status = "Accurately ripped"; status = "Accurately ripped";
else if (count == 0 && crcOI == 0) else if (count == 0 && crcOI == 0)
status = "Silent track"; status = "Silent track";
else if (partials > 0 && 0 != oi)
status = "No match (V2 was not tested)";
else if (partials > 0) else if (partials > 0)
status = "No match but offset"; status = "No match";
else else
status = "No match"; status = "No match";
sw.WriteLine(String.Format(" {0:00} [{1:x8}] ({3" + ifmt + "}/{2" + ifmt + "}) {4}", iTrack + 1, crcOI, count, conf, status)); if (oi == 0)
sw.WriteLine(String.Format(" {0:00} [{1:x8}|{5:x8}] ({3" + ifmt + "}+{6" + ifmt + "}/{2" + ifmt + "}) {4}", iTrack + 1, crcOI, count, conf, status, crcOI2, conf2));
else
sw.WriteLine(String.Format(" {0:00} [{1:x8}] ({3" + ifmt + "}/{2" + ifmt + "}) {4}", iTrack + 1, crcOI, count, conf, status));
} }
} }
@@ -1190,9 +1204,8 @@ namespace CUETools.AccurateRip
{ {
if (verbose) if (verbose)
{ {
sw.WriteLine("Track [ CRC ] Status"); sw.WriteLine("Track [ CRC | V2 ] Status");
GenerateLog(sw, 0, false); GenerateLog(sw, 0);
GenerateLog(sw, 0, true);
uint offsets_match = 0; uint offsets_match = 0;
for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++) for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++)
{ {
@@ -1217,7 +1230,7 @@ namespace CUETools.AccurateRip
break; break;
} }
sw.WriteLine("Offsetted by {0}:", oi); sw.WriteLine("Offsetted by {0}:", oi);
GenerateLog(sw, oi, false); GenerateLog(sw, oi);
} }
} }
offsets_match = 0; offsets_match = 0;
@@ -1252,7 +1265,7 @@ namespace CUETools.AccurateRip
break; break;
} }
sw.WriteLine("Offsetted by {0}:", oi); sw.WriteLine("Offsetted by {0}:", oi);
GenerateLog(sw, oi, false); GenerateLog(sw, oi);
} }
} }
} }

View File

@@ -28,6 +28,8 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMetadata));
this.progressBar1 = new System.Windows.Forms.ProgressBar(); this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.listView1 = new System.Windows.Forms.ListView(); this.listView1 = new System.Windows.Forms.ListView();
@@ -35,15 +37,17 @@
this.button1 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.panel1.SuspendLayout(); this.panel1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// progressBar1 // progressBar1
// //
this.progressBar1.Dock = System.Windows.Forms.DockStyle.Fill; this.progressBar1.Dock = System.Windows.Forms.DockStyle.Fill;
this.progressBar1.Location = new System.Drawing.Point(5, 5); this.progressBar1.Location = new System.Drawing.Point(7, 6);
this.progressBar1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.progressBar1.Name = "progressBar1"; this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(587, 25); this.progressBar1.Size = new System.Drawing.Size(783, 31);
this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee; this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
this.progressBar1.TabIndex = 0; this.progressBar1.TabIndex = 0;
// //
@@ -60,10 +64,13 @@
this.listView1.FullRowSelect = true; this.listView1.FullRowSelect = true;
this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listView1.HideSelection = false; this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(10, 10); this.listView1.Location = new System.Drawing.Point(13, 12);
this.listView1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.listView1.MultiSelect = false; this.listView1.MultiSelect = false;
this.listView1.Name = "listView1"; this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(597, 213); this.listView1.ShowItemToolTips = true;
this.listView1.Size = new System.Drawing.Size(797, 263);
this.listView1.SmallImageList = this.imageList1;
this.listView1.TabIndex = 1; this.listView1.TabIndex = 1;
this.listView1.UseCompatibleStateImageBehavior = false; this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details; this.listView1.View = System.Windows.Forms.View.Details;
@@ -77,9 +84,10 @@
// //
this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button1.Dock = System.Windows.Forms.DockStyle.Right; this.button1.Dock = System.Windows.Forms.DockStyle.Right;
this.button1.Location = new System.Drawing.Point(442, 5); this.button1.Location = new System.Drawing.Point(590, 6);
this.button1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 25); this.button1.Size = new System.Drawing.Size(100, 31);
this.button1.TabIndex = 2; this.button1.TabIndex = 2;
this.button1.Text = "Cancel"; this.button1.Text = "Cancel";
this.button1.UseVisualStyleBackColor = true; this.button1.UseVisualStyleBackColor = true;
@@ -89,9 +97,10 @@
// //
this.button2.DialogResult = System.Windows.Forms.DialogResult.OK; this.button2.DialogResult = System.Windows.Forms.DialogResult.OK;
this.button2.Dock = System.Windows.Forms.DockStyle.Right; this.button2.Dock = System.Windows.Forms.DockStyle.Right;
this.button2.Location = new System.Drawing.Point(517, 5); this.button2.Location = new System.Drawing.Point(690, 6);
this.button2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.button2.Name = "button2"; this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 25); this.button2.Size = new System.Drawing.Size(100, 31);
this.button2.TabIndex = 3; this.button2.TabIndex = 3;
this.button2.Text = "OK"; this.button2.Text = "OK";
this.button2.UseVisualStyleBackColor = true; this.button2.UseVisualStyleBackColor = true;
@@ -103,25 +112,35 @@
this.panel1.Controls.Add(this.button2); this.panel1.Controls.Add(this.button2);
this.panel1.Controls.Add(this.progressBar1); this.panel1.Controls.Add(this.progressBar1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(10, 223); this.panel1.Location = new System.Drawing.Point(13, 275);
this.panel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.panel1.Name = "panel1"; this.panel1.Name = "panel1";
this.panel1.Padding = new System.Windows.Forms.Padding(5); this.panel1.Padding = new System.Windows.Forms.Padding(7, 6, 7, 6);
this.panel1.Size = new System.Drawing.Size(597, 35); this.panel1.Size = new System.Drawing.Size(797, 43);
this.panel1.TabIndex = 4; this.panel1.TabIndex = 4;
// //
// imageList1
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "freedb");
this.imageList1.Images.SetKeyName(1, "musicbrainz");
this.imageList1.Images.SetKeyName(2, "discogs");
//
// FormMetadata // FormMetadata
// //
this.AcceptButton = this.button2; this.AcceptButton = this.button2;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.button1; this.CancelButton = this.button1;
this.ClientSize = new System.Drawing.Size(617, 268); this.ClientSize = new System.Drawing.Size(823, 330);
this.Controls.Add(this.listView1); this.Controls.Add(this.listView1);
this.Controls.Add(this.panel1); this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.MinimumSize = new System.Drawing.Size(500, 300); this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.MinimumSize = new System.Drawing.Size(661, 360);
this.Name = "FormMetadata"; this.Name = "FormMetadata";
this.Padding = new System.Windows.Forms.Padding(10); this.Padding = new System.Windows.Forms.Padding(13, 12, 13, 12);
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "CTDB Metadata Lookup"; this.Text = "CTDB Metadata Lookup";
this.Load += new System.EventHandler(this.FormMetadata_Load); this.Load += new System.EventHandler(this.FormMetadata_Load);
@@ -139,5 +158,6 @@
private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button2;
private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ImageList imageList1;
} }
} }

View File

@@ -41,9 +41,7 @@ namespace CUETools.CTDB.EACPlugin
{ {
this.ctdb.ContactDB(null, this.agent, null, false, false, this.ctdb.ContactDB(null, this.agent, null, false, false,
AudioDataPlugIn.Options.priorityMusicbrainz, AudioDataPlugIn.Options.MetadataSearch);
AudioDataPlugIn.Options.priorityFreedb,
AudioDataPlugIn.Options.priorityFreedbFuzzy);
} }
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
@@ -70,7 +68,11 @@ namespace CUETools.CTDB.EACPlugin
metadata.album == "" ? "Unknown Title" : metadata.album, metadata.album == "" ? "Unknown Title" : metadata.album,
discnumberandtotal != "" ? " (disc " + discnumberandtotal + (metadata.discname != null ? ": " + metadata.discname : "") + ")" : "", discnumberandtotal != "" ? " (disc " + discnumberandtotal + (metadata.discname != null ? ": " + metadata.discname : "") + ")" : "",
label == "" ? "" : " (" + label + ")"); label == "" ? "" : " (" + label + ")");
listView1.Items.Add(new ListViewItem(text) { Tag = metadata }); var tip = new StringBuilder();
var i = 0;
foreach(var tr in metadata.track)
tip.AppendFormat("{0}. {2}{1}\n", ++i, tr.name, ((tr.artist ?? metadata.artist) == metadata.artist) ? "" : tr.artist + " / ");
listView1.Items.Add(new ListViewItem(text) { Tag = metadata, ImageKey = metadata.source, ToolTipText = tip.ToString() });
} }
this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
if (listView1.Items.Count == 0) if (listView1.Items.Count == 0)

View File

@@ -120,4 +120,59 @@
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>210, 17</value>
</metadata>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABQ
CgAAAk1TRnQBSQFMAgEBAwEAAQgBAAEIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAAe0PCgEAAXoCUQt6
BwAE6xYAAbUEBAPzAQQD8wIEAV8BCgFRAQABEQETAQABDwp6BAAB6wIUARUCDgEAAQ4UAAG1AwQB9AIE
AfQBBAH0AgQB9AIEAQoBAAG8A/8BEwEPCXoDAAEUAQcB6wEUARECDgIAAQ4TAAG1AaICBAH/AgQB/wEE
Af8CBAH/AgQBCgEAAbwE/wEACXoCAAERARQB6wEHAesBEQIOAwABDhIAAbUBogMEA/8BBAP/AwQBCgFR
AQ8B6wIHAbwBAAERBAABEQN6AQABEQEVAhQC6wEVAREBDgQAARERAAG1AaIFBAH/AQQB/wUEAQoBegFR
AQ8CAAH/AQABDwH3Av8BkgIRAnoBAAEOAhECFQEOAkoCDhUAAbUBogUEAf8BBAH/BQQBCgR6AQAB/wEA
AREE/wG8AQACegHrAQAEDgQ3AQ4EAAHrEAABtQGiDQQBCgSuAQAB/wIAARMBvAP/AQACrgHrBAABSgQ3
AUoEAAHrEAAN/wH0AfMB+ASuAQAB/wEAARIBDwMAAf8BAAKuAesEAAFKBDcBSgQOAesQAAH/AaIC/wEE
A/8CBAP/AgQB+ASuAQAB/wEPAQABEQISAQAB/wEAAq4B6wQAAQ4ENwEOAhECDgHrEAAB/wGiAv8BBAL/
AQQE/wEEAfQB8wH4BK4BAAL/AZIBEQEAAQ8BAAH/AQACrgEAAQ4EAAEOAkoBDgIUAxERAAH/AaIC/wEE
Av8EBAH/AwQBCgSuAQABBwP/AbwB6gEAAf8BAAKuAQABFAMAAg4BEQEUAesBcwIUAREBFBEAAf8BogEE
Af8BBAL/AQQC/wEEAf8BBAH0AfMBCgSuAREBEwEHBv8BAAKuAgABEQIAAg4BEQEVAesBBwHrARUBFBIA
Af8BhgL/AgQC/wIEA/8CBAHsBa4BEQEAAREBkgT/AQACrgMAARQBAAIOAREBFQEUA+sTAAH/AYYL/wH0
AfMB7AeuAREBAAEPAesBvAH/AQACrgQAAhUDDgERAhQUAAL/AbUL/wH0AQcBAAmuAQ8BAAETAREBrgcA
BOsWAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AwABgAEBAfwBPwYAAfABDwYA
AeABBwYAAcABAwYAAYABAQYAAYABASYAAYABAQYAAYABAQYAAcABAwYAAeABBwYAAfABDwQAAYABAQH8
AT8CAAs=
</value>
</data>
</root> </root>

View File

@@ -49,7 +49,7 @@ namespace CUETools.CTDB.EACPlugin
this.ctdb.UploadHelper.onProgress += UploadProgress; this.ctdb.UploadHelper.onProgress += UploadProgress;
if (this.agent != null) if (this.agent != null)
{ {
this.ctdb.ContactDB(null, this.agent, this.drivename, true, false, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None); this.ctdb.ContactDB(null, this.agent, this.drivename, true, false, CTDBMetadataSearch.None);
} }
else else
{ {

View File

@@ -42,7 +42,7 @@ namespace MetadataPlugIn
TOC[1][0].Start = 0U; TOC[1][0].Start = 0U;
var ctdb = new CUEToolsDB(TOC, null); var ctdb = new CUEToolsDB(TOC, null);
var form = new CUETools.CTDB.EACPlugin.FormMetadata(ctdb, "EAC" + data.HostVersion + " CTDB 2.1.2"); var form = new CUETools.CTDB.EACPlugin.FormMetadata(ctdb, "EAC" + data.HostVersion + " CTDB 2.1.3");
form.ShowDialog(); form.ShowDialog();
var meta = form.Meta; var meta = form.Meta;
if (meta == null) if (meta == null)
@@ -154,7 +154,7 @@ namespace MetadataPlugIn
public string GetPluginName() public string GetPluginName()
{ {
return "CUETools DB Metadata Plugin V2.1.2b"; return "CUETools DB Metadata Plugin V2.1.3";
} }
public void ShowOptions() public void ShowOptions()

View File

@@ -33,53 +33,42 @@ namespace AudioDataPlugIn
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.linkLabel1 = new System.Windows.Forms.LinkLabel(); this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.radioButtonMBHigh = new System.Windows.Forms.RadioButton(); this.radioButtonMBExtensive = new System.Windows.Forms.RadioButton();
this.radioButtonMBLow = new System.Windows.Forms.RadioButton(); this.radioButtonMBFast = new System.Windows.Forms.RadioButton();
this.radioButtonMBMedium = new System.Windows.Forms.RadioButton(); this.radioButtonMBDefault = new System.Windows.Forms.RadioButton();
this.radioButtonMBNone = new System.Windows.Forms.RadioButton();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.radioButtonFDMedium = new System.Windows.Forms.RadioButton();
this.radioButtonFDHigh = new System.Windows.Forms.RadioButton();
this.radioButtonFDLow = new System.Windows.Forms.RadioButton();
this.radioButtonFDNone = new System.Windows.Forms.RadioButton();
this.buttonOk = new System.Windows.Forms.Button(); this.buttonOk = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.radioButtonFZMedium = new System.Windows.Forms.RadioButton();
this.radioButtonFZHigh = new System.Windows.Forms.RadioButton();
this.radioButtonFZLow = new System.Windows.Forms.RadioButton();
this.radioButtonFZNone = new System.Windows.Forms.RadioButton();
this.buttonCancel = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// label1 // label1
// //
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(95, 13); this.label1.Location = new System.Drawing.Point(127, 16);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(139, 13); this.label1.Size = new System.Drawing.Size(182, 17);
this.label1.TabIndex = 0; this.label1.TabIndex = 0;
this.label1.Text = "CUETools DB Plugin V2.1.2"; this.label1.Text = "CUETools DB Plugin V2.1.3";
// //
// label2 // label2
// //
this.label2.Location = new System.Drawing.Point(95, 67); this.label2.Location = new System.Drawing.Point(127, 82);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2"; this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(230, 34); this.label2.Size = new System.Drawing.Size(307, 42);
this.label2.TabIndex = 1; this.label2.TabIndex = 1;
this.label2.Text = "Copyright (c) 2011 Gregory S. Chudov"; this.label2.Text = "Copyright (c) 2011 Gregory S. Chudov";
// //
// linkLabel1 // linkLabel1
// //
this.linkLabel1.AutoSize = true; this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(95, 36); this.linkLabel1.Location = new System.Drawing.Point(127, 44);
this.linkLabel1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.linkLabel1.Name = "linkLabel1"; this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(164, 13); this.linkLabel1.Size = new System.Drawing.Size(209, 17);
this.linkLabel1.TabIndex = 3; this.linkLabel1.TabIndex = 3;
this.linkLabel1.TabStop = true; this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "http://db.cuetools.net/about.php"; this.linkLabel1.Text = "http://db.cuetools.net/about.php";
@@ -88,209 +77,82 @@ namespace AudioDataPlugIn
// pictureBox1 // pictureBox1
// //
this.pictureBox1.Image = global::CUETools.CTDB.EACPlugin.Properties.Resources.ctdb64; this.pictureBox1.Image = global::CUETools.CTDB.EACPlugin.Properties.Resources.ctdb64;
this.pictureBox1.Location = new System.Drawing.Point(13, 13); this.pictureBox1.Location = new System.Drawing.Point(17, 16);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(64, 64); this.pictureBox1.Size = new System.Drawing.Size(85, 79);
this.pictureBox1.TabIndex = 4; this.pictureBox1.TabIndex = 4;
this.pictureBox1.TabStop = false; this.pictureBox1.TabStop = false;
// //
// radioButtonMBHigh // radioButtonMBExtensive
// //
this.radioButtonMBHigh.AutoSize = true; this.radioButtonMBExtensive.AutoSize = true;
this.radioButtonMBHigh.Location = new System.Drawing.Point(6, 16); this.radioButtonMBExtensive.Location = new System.Drawing.Point(8, 20);
this.radioButtonMBHigh.Name = "radioButtonMBHigh"; this.radioButtonMBExtensive.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.radioButtonMBHigh.Size = new System.Drawing.Size(47, 17); this.radioButtonMBExtensive.Name = "radioButtonMBExtensive";
this.radioButtonMBHigh.TabIndex = 6; this.radioButtonMBExtensive.Size = new System.Drawing.Size(89, 21);
this.radioButtonMBHigh.TabStop = true; this.radioButtonMBExtensive.TabIndex = 6;
this.radioButtonMBHigh.Text = "High"; this.radioButtonMBExtensive.TabStop = true;
this.radioButtonMBHigh.UseVisualStyleBackColor = true; this.radioButtonMBExtensive.Text = "Extensive";
this.radioButtonMBExtensive.UseVisualStyleBackColor = true;
// //
// radioButtonMBLow // radioButtonMBFast
// //
this.radioButtonMBLow.AutoSize = true; this.radioButtonMBFast.AutoSize = true;
this.radioButtonMBLow.Location = new System.Drawing.Point(6, 50); this.radioButtonMBFast.Location = new System.Drawing.Point(8, 62);
this.radioButtonMBLow.Name = "radioButtonMBLow"; this.radioButtonMBFast.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.radioButtonMBLow.Size = new System.Drawing.Size(45, 17); this.radioButtonMBFast.Name = "radioButtonMBFast";
this.radioButtonMBLow.TabIndex = 7; this.radioButtonMBFast.Size = new System.Drawing.Size(56, 21);
this.radioButtonMBLow.TabStop = true; this.radioButtonMBFast.TabIndex = 7;
this.radioButtonMBLow.Text = "Low"; this.radioButtonMBFast.TabStop = true;
this.radioButtonMBLow.UseVisualStyleBackColor = true; this.radioButtonMBFast.Text = "Fast";
this.radioButtonMBFast.UseVisualStyleBackColor = true;
// //
// radioButtonMBMedium // radioButtonMBDefault
// //
this.radioButtonMBMedium.AutoSize = true; this.radioButtonMBDefault.AutoSize = true;
this.radioButtonMBMedium.Location = new System.Drawing.Point(6, 33); this.radioButtonMBDefault.Location = new System.Drawing.Point(8, 41);
this.radioButtonMBMedium.Name = "radioButtonMBMedium"; this.radioButtonMBDefault.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.radioButtonMBMedium.Size = new System.Drawing.Size(62, 17); this.radioButtonMBDefault.Name = "radioButtonMBDefault";
this.radioButtonMBMedium.TabIndex = 8; this.radioButtonMBDefault.Size = new System.Drawing.Size(74, 21);
this.radioButtonMBMedium.TabStop = true; this.radioButtonMBDefault.TabIndex = 8;
this.radioButtonMBMedium.Text = "Medium"; this.radioButtonMBDefault.TabStop = true;
this.radioButtonMBMedium.UseVisualStyleBackColor = true; this.radioButtonMBDefault.Text = "Default";
// this.radioButtonMBDefault.UseVisualStyleBackColor = true;
// radioButtonMBNone
//
this.radioButtonMBNone.AutoSize = true;
this.radioButtonMBNone.Location = new System.Drawing.Point(6, 67);
this.radioButtonMBNone.Name = "radioButtonMBNone";
this.radioButtonMBNone.Size = new System.Drawing.Size(51, 17);
this.radioButtonMBNone.TabIndex = 9;
this.radioButtonMBNone.TabStop = true;
this.radioButtonMBNone.Text = "None";
this.radioButtonMBNone.UseVisualStyleBackColor = true;
// //
// groupBox1 // groupBox1
// //
this.groupBox1.Controls.Add(this.radioButtonMBMedium); this.groupBox1.Controls.Add(this.radioButtonMBDefault);
this.groupBox1.Controls.Add(this.radioButtonMBHigh); this.groupBox1.Controls.Add(this.radioButtonMBExtensive);
this.groupBox1.Controls.Add(this.radioButtonMBLow); this.groupBox1.Controls.Add(this.radioButtonMBFast);
this.groupBox1.Controls.Add(this.radioButtonMBNone); this.groupBox1.Location = new System.Drawing.Point(16, 156);
this.groupBox1.Location = new System.Drawing.Point(12, 119); this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(83, 95); this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBox1.Size = new System.Drawing.Size(191, 107);
this.groupBox1.TabIndex = 15; this.groupBox1.TabIndex = 15;
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
this.groupBox1.Text = "Musicbrainz"; this.groupBox1.Text = "Metadata search mode:";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.radioButtonFDMedium);
this.groupBox2.Controls.Add(this.radioButtonFDHigh);
this.groupBox2.Controls.Add(this.radioButtonFDLow);
this.groupBox2.Controls.Add(this.radioButtonFDNone);
this.groupBox2.Location = new System.Drawing.Point(101, 119);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(83, 95);
this.groupBox2.TabIndex = 16;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Freedb";
//
// radioButtonFDMedium
//
this.radioButtonFDMedium.AutoSize = true;
this.radioButtonFDMedium.Location = new System.Drawing.Point(6, 33);
this.radioButtonFDMedium.Name = "radioButtonFDMedium";
this.radioButtonFDMedium.Size = new System.Drawing.Size(62, 17);
this.radioButtonFDMedium.TabIndex = 8;
this.radioButtonFDMedium.TabStop = true;
this.radioButtonFDMedium.Text = "Medium";
this.radioButtonFDMedium.UseVisualStyleBackColor = true;
//
// radioButtonFDHigh
//
this.radioButtonFDHigh.AutoSize = true;
this.radioButtonFDHigh.Location = new System.Drawing.Point(6, 16);
this.radioButtonFDHigh.Name = "radioButtonFDHigh";
this.radioButtonFDHigh.Size = new System.Drawing.Size(47, 17);
this.radioButtonFDHigh.TabIndex = 6;
this.radioButtonFDHigh.TabStop = true;
this.radioButtonFDHigh.Text = "High";
this.radioButtonFDHigh.UseVisualStyleBackColor = true;
//
// radioButtonFDLow
//
this.radioButtonFDLow.AutoSize = true;
this.radioButtonFDLow.Location = new System.Drawing.Point(6, 50);
this.radioButtonFDLow.Name = "radioButtonFDLow";
this.radioButtonFDLow.Size = new System.Drawing.Size(45, 17);
this.radioButtonFDLow.TabIndex = 7;
this.radioButtonFDLow.TabStop = true;
this.radioButtonFDLow.Text = "Low";
this.radioButtonFDLow.UseVisualStyleBackColor = true;
//
// radioButtonFDNone
//
this.radioButtonFDNone.AutoSize = true;
this.radioButtonFDNone.Location = new System.Drawing.Point(6, 67);
this.radioButtonFDNone.Name = "radioButtonFDNone";
this.radioButtonFDNone.Size = new System.Drawing.Size(51, 17);
this.radioButtonFDNone.TabIndex = 9;
this.radioButtonFDNone.TabStop = true;
this.radioButtonFDNone.Text = "None";
this.radioButtonFDNone.UseVisualStyleBackColor = true;
// //
// buttonOk // buttonOk
// //
this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
this.buttonOk.Location = new System.Drawing.Point(303, 189); this.buttonOk.Location = new System.Drawing.Point(404, 233);
this.buttonOk.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.buttonOk.Name = "buttonOk"; this.buttonOk.Name = "buttonOk";
this.buttonOk.Size = new System.Drawing.Size(75, 25); this.buttonOk.Size = new System.Drawing.Size(100, 31);
this.buttonOk.TabIndex = 17; this.buttonOk.TabIndex = 17;
this.buttonOk.Text = "OK"; this.buttonOk.Text = "OK";
this.buttonOk.UseVisualStyleBackColor = true; this.buttonOk.UseVisualStyleBackColor = true;
this.buttonOk.Click += new System.EventHandler(this.button2_Click); this.buttonOk.Click += new System.EventHandler(this.button2_Click);
// //
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(12, 101);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(134, 13);
this.label3.TabIndex = 18;
this.label3.Text = "Metadata providers priority:";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.radioButtonFZMedium);
this.groupBox3.Controls.Add(this.radioButtonFZHigh);
this.groupBox3.Controls.Add(this.radioButtonFZLow);
this.groupBox3.Controls.Add(this.radioButtonFZNone);
this.groupBox3.Location = new System.Drawing.Point(190, 119);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(83, 95);
this.groupBox3.TabIndex = 17;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Freedb fuzzy";
//
// radioButtonFZMedium
//
this.radioButtonFZMedium.AutoSize = true;
this.radioButtonFZMedium.Location = new System.Drawing.Point(6, 33);
this.radioButtonFZMedium.Name = "radioButtonFZMedium";
this.radioButtonFZMedium.Size = new System.Drawing.Size(62, 17);
this.radioButtonFZMedium.TabIndex = 8;
this.radioButtonFZMedium.TabStop = true;
this.radioButtonFZMedium.Text = "Medium";
this.radioButtonFZMedium.UseVisualStyleBackColor = true;
//
// radioButtonFZHigh
//
this.radioButtonFZHigh.AutoSize = true;
this.radioButtonFZHigh.Location = new System.Drawing.Point(6, 16);
this.radioButtonFZHigh.Name = "radioButtonFZHigh";
this.radioButtonFZHigh.Size = new System.Drawing.Size(47, 17);
this.radioButtonFZHigh.TabIndex = 6;
this.radioButtonFZHigh.TabStop = true;
this.radioButtonFZHigh.Text = "High";
this.radioButtonFZHigh.UseVisualStyleBackColor = true;
//
// radioButtonFZLow
//
this.radioButtonFZLow.AutoSize = true;
this.radioButtonFZLow.Location = new System.Drawing.Point(6, 50);
this.radioButtonFZLow.Name = "radioButtonFZLow";
this.radioButtonFZLow.Size = new System.Drawing.Size(45, 17);
this.radioButtonFZLow.TabIndex = 7;
this.radioButtonFZLow.TabStop = true;
this.radioButtonFZLow.Text = "Low";
this.radioButtonFZLow.UseVisualStyleBackColor = true;
//
// radioButtonFZNone
//
this.radioButtonFZNone.AutoSize = true;
this.radioButtonFZNone.Location = new System.Drawing.Point(6, 67);
this.radioButtonFZNone.Name = "radioButtonFZNone";
this.radioButtonFZNone.Size = new System.Drawing.Size(51, 17);
this.radioButtonFZNone.TabIndex = 9;
this.radioButtonFZNone.TabStop = true;
this.radioButtonFZNone.Text = "None";
this.radioButtonFZNone.UseVisualStyleBackColor = true;
//
// buttonCancel // buttonCancel
// //
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Location = new System.Drawing.Point(303, 158); this.buttonCancel.Location = new System.Drawing.Point(404, 194);
this.buttonCancel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 25); this.buttonCancel.Size = new System.Drawing.Size(100, 31);
this.buttonCancel.TabIndex = 19; this.buttonCancel.TabIndex = 19;
this.buttonCancel.Text = "Cancel"; this.buttonCancel.Text = "Cancel";
this.buttonCancel.UseVisualStyleBackColor = true; this.buttonCancel.UseVisualStyleBackColor = true;
@@ -298,21 +160,19 @@ namespace AudioDataPlugIn
// Options // Options
// //
this.AcceptButton = this.buttonOk; this.AcceptButton = this.buttonOk;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.buttonCancel; this.CancelButton = this.buttonCancel;
this.ClientSize = new System.Drawing.Size(390, 227); this.ClientSize = new System.Drawing.Size(520, 279);
this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.label3);
this.Controls.Add(this.buttonOk); this.Controls.Add(this.buttonOk);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
this.Controls.Add(this.pictureBox1); this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.linkLabel1); this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.label2); this.Controls.Add(this.label2);
this.Controls.Add(this.label1); this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.Name = "Options"; this.Name = "Options";
@@ -322,10 +182,6 @@ namespace AudioDataPlugIn
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@@ -337,23 +193,11 @@ namespace AudioDataPlugIn
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
private System.Windows.Forms.LinkLabel linkLabel1; private System.Windows.Forms.LinkLabel linkLabel1;
private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.RadioButton radioButtonMBHigh; private System.Windows.Forms.RadioButton radioButtonMBExtensive;
private System.Windows.Forms.RadioButton radioButtonMBLow; private System.Windows.Forms.RadioButton radioButtonMBFast;
private System.Windows.Forms.RadioButton radioButtonMBMedium; private System.Windows.Forms.RadioButton radioButtonMBDefault;
private System.Windows.Forms.RadioButton radioButtonMBNone;
private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.RadioButton radioButtonFDMedium;
private System.Windows.Forms.RadioButton radioButtonFDHigh;
private System.Windows.Forms.RadioButton radioButtonFDLow;
private System.Windows.Forms.RadioButton radioButtonFDNone;
private System.Windows.Forms.Button buttonOk; private System.Windows.Forms.Button buttonOk;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.RadioButton radioButtonFZMedium;
private System.Windows.Forms.RadioButton radioButtonFZHigh;
private System.Windows.Forms.RadioButton radioButtonFZLow;
private System.Windows.Forms.RadioButton radioButtonFZNone;
private System.Windows.Forms.Button buttonCancel; private System.Windows.Forms.Button buttonCancel;
} }
} }

View File

@@ -7,18 +7,52 @@ using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using CUETools.CTDB.EACPlugin.Properties; using CUETools.CTDB.EACPlugin.Properties;
using CUETools.CTDB; using CUETools.CTDB;
using Microsoft.Win32;
namespace AudioDataPlugIn namespace AudioDataPlugIn
{ {
public partial class Options : Form public partial class Options : Form
{ {
public static CTDBPriority priorityMusicbrainz = CTDBPriority.High; private static CTDBMetadataSearch? metadataSearch = null;
public static CTDBPriority priorityFreedb = CTDBPriority.Medium; private static string optionsKey = @"SOFTWARE\CUETools\EACPugin";
public static CTDBPriority priorityFreedbFuzzy = CTDBPriority.Low; public static CTDBMetadataSearch MetadataSearch
{
get
{
if (!metadataSearch.HasValue)
{
try
{
using (var key = Registry.CurrentUser.OpenSubKey(optionsKey, false))
{
var val = key.GetValue("MetadataSearch") as string;
if (val == "Default") metadataSearch = CTDBMetadataSearch.Default;
if (val == "Fast") metadataSearch = CTDBMetadataSearch.Fast;
if (val == "Extensive") metadataSearch = CTDBMetadataSearch.Extensive;
}
}
catch (Exception ex)
{
}
}
return metadataSearch ?? CTDBMetadataSearch.Default;
}
set
{
using (var key = Registry.CurrentUser.CreateSubKey(optionsKey))
{
key.SetValue("MetadataSearch", value.ToString());
}
metadataSearch = value;
}
}
public Options() public Options()
{ {
InitializeComponent(); this.InitializeComponent();
} }
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
@@ -29,34 +63,17 @@ namespace AudioDataPlugIn
private void Options_Load(object sender, EventArgs e) private void Options_Load(object sender, EventArgs e)
{ {
this.Icon = Resources.ctdb; this.Icon = Resources.ctdb;
this.radioButtonMBHigh.Checked = priorityMusicbrainz == CTDBPriority.High; this.radioButtonMBExtensive.Checked = MetadataSearch == CTDBMetadataSearch.Extensive;
this.radioButtonMBMedium.Checked = priorityMusicbrainz == CTDBPriority.Medium; this.radioButtonMBDefault.Checked = MetadataSearch == CTDBMetadataSearch.Default;
this.radioButtonMBLow.Checked = priorityMusicbrainz == CTDBPriority.Low; this.radioButtonMBFast.Checked = MetadataSearch == CTDBMetadataSearch.Fast;
this.radioButtonMBNone.Checked = priorityMusicbrainz == CTDBPriority.None;
this.radioButtonFDHigh.Checked = priorityFreedb == CTDBPriority.High;
this.radioButtonFDMedium.Checked = priorityFreedb == CTDBPriority.Medium;
this.radioButtonFDLow.Checked = priorityFreedb == CTDBPriority.Low;
this.radioButtonFDNone.Checked = priorityFreedb == CTDBPriority.None;
this.radioButtonFZHigh.Checked = priorityFreedbFuzzy == CTDBPriority.High;
this.radioButtonFZMedium.Checked = priorityFreedbFuzzy == CTDBPriority.Medium;
this.radioButtonFZLow.Checked = priorityFreedbFuzzy == CTDBPriority.Low;
this.radioButtonFZNone.Checked = priorityFreedbFuzzy == CTDBPriority.None;
} }
private void button2_Click(object sender, EventArgs e) private void button2_Click(object sender, EventArgs e)
{ {
priorityMusicbrainz = this.radioButtonMBHigh.Checked ? CTDBPriority.High Options.MetadataSearch = this.radioButtonMBExtensive.Checked ? CTDBMetadataSearch.Extensive
: this.radioButtonMBMedium.Checked ? CTDBPriority.Medium : this.radioButtonMBDefault.Checked ? CTDBMetadataSearch.Default
: this.radioButtonMBLow.Checked ? CTDBPriority.Low : this.radioButtonMBFast.Checked ? CTDBMetadataSearch.Fast
: CTDBPriority.None; : CTDBMetadataSearch.None;
priorityFreedb = this.radioButtonFDHigh.Checked ? CTDBPriority.High
: this.radioButtonFDMedium.Checked ? CTDBPriority.Medium
: this.radioButtonFDLow.Checked ? CTDBPriority.Low
: CTDBPriority.None;
priorityFreedbFuzzy = this.radioButtonFZHigh.Checked ? CTDBPriority.High
: this.radioButtonFZMedium.Checked ? CTDBPriority.Medium
: this.radioButtonFZLow.Checked ? CTDBPriority.Low
: CTDBPriority.None;
} }
} }
} }

View File

@@ -56,7 +56,7 @@ namespace AudioDataPlugIn
// the plugin and for display in the log file // the plugin and for display in the log file
public string GetAudioTransferPluginName() public string GetAudioTransferPluginName()
{ {
return "CUETools DB Plugin V2.1.2b"; return "CUETools DB Plugin V2.1.3";
} }
// Each plugin should have its own options page. // Each plugin should have its own options page.
@@ -122,7 +122,7 @@ namespace AudioDataPlugIn
ArId = AccurateRipVerify.CalculateAccurateRipId(TOC); ArId = AccurateRipVerify.CalculateAccurateRipId(TOC);
ar.ContactAccurateRip(ArId); ar.ContactAccurateRip(ArId);
#endif #endif
var form = new FormSubmitParity(ctdb, "EAC" + m_data.HostVersion + " CTDB 2.1.2", m_drivename); var form = new FormSubmitParity(ctdb, "EAC" + m_data.HostVersion + " CTDB 2.1.3", m_drivename);
//ctdb.ContactDB("EAC" + m_data.HostVersion + " CTDB 2.1.2", m_drivename, false, false); //ctdb.ContactDB("EAC" + m_data.HostVersion + " CTDB 2.1.2", m_drivename, false, false);
form.ShowDialog(); form.ShowDialog();
ctdb.Init(ar); ctdb.Init(ar);

View File

@@ -57,7 +57,7 @@ namespace CUETools.CTDB
} }
} }
public void ContactDB(string server, string userAgent, string driveName, bool ctdb, bool fuzzy, CTDBPriority musicbrainz, CTDBPriority freedb, CTDBPriority freedbFuzzy) public void ContactDB(string server, string userAgent, string driveName, bool ctdb, bool fuzzy, CTDBMetadataSearch metadataSearch)
{ {
this.driveName = driveName; this.driveName = driveName;
this.userAgent = userAgent + " (" + Environment.OSVersion.VersionString + ")" + (driveName != null ? " (" + driveName + ")" : ""); this.userAgent = userAgent + " (" + Environment.OSVersion.VersionString + ")" + (driveName != null ? " (" + driveName + ")" : "");
@@ -67,9 +67,8 @@ namespace CUETools.CTDB
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlbase HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlbase
+ "/lookup2.php" + "/lookup2.php"
+ "?ctdb=" + (ctdb ? "1" : "0") + "?ctdb=" + (ctdb ? "1" : "0")
+ "&musicbrainz=" + ((int)musicbrainz).ToString() + "&fuzzy=" + (fuzzy ? 1 : 0)
+ "&freedb=" + ((int)freedb + 8 * (int)freedbFuzzy).ToString() + "&metadata=" + (metadataSearch == CTDBMetadataSearch.None ? "none" : metadataSearch == CTDBMetadataSearch.Fast ? "fast" : metadataSearch == CTDBMetadataSearch.Default ? "default" : "extensive")
+ "&fuzzy=" + (fuzzy ? 1 : 0)
+ "&toc=" + toc.ToString()); + "&toc=" + toc.ToString());
req.Method = "GET"; req.Method = "GET";
req.Proxy = proxy; req.Proxy = proxy;
@@ -817,11 +816,11 @@ namespace CUETools.CTDB
public CTDBResponseMeta[] musicbrainz; public CTDBResponseMeta[] musicbrainz;
} }
public enum CTDBPriority public enum CTDBMetadataSearch
{ {
None = 0, None = 0,
High = 1, Fast = 1,
Medium = 2, Default = 2,
Low = 3 Extensive = 3
} }
} }

View File

@@ -83,12 +83,19 @@ namespace CUETools.Codecs.LAME
DeInit(true); DeInit(true);
if (needTag) if (needTag)
{ {
bool utf8Required = Encoding.Default.GetString(Encoding.Default.GetBytes(_path)) != _path;
var tempDir = System.IO.Path.Combine(System.IO.Path.GetPathRoot(_path), "Temp");
var tempName = utf8Required ? System.IO.Path.Combine(tempDir, Guid.NewGuid().ToString()) : _path;
try try
{ {
Lame_encDll.beWriteInfoTag(m_hLameStream, _path); if (utf8Required && !Directory.Exists(tempDir)) Directory.CreateDirectory(tempDir);
if (utf8Required) File.Move(_path, tempName);
Lame_encDll.beWriteInfoTag(m_hLameStream, tempName);
if (utf8Required) File.Move(tempName, _path);
} }
catch catch
{ {
if (utf8Required) File.Move(tempName, _path);
} }
} }
} }

View File

@@ -2211,7 +2211,7 @@ return processor.Go();
_localDB.Save(); _localDB.Save();
} }
public List<object> LookupAlbumInfo(bool useCache, bool useCUE, bool useCTDB, CTDBPriority priorityMusicbrainz, CTDBPriority priorityFreedb, CTDBPriority priorityFreedbFuzzy) public List<object> LookupAlbumInfo(bool useCache, bool useCUE, bool useCTDB, CTDBMetadataSearch metadataSearch)
{ {
List<object> Releases = new List<object>(); List<object> Releases = new List<object>();
@@ -2268,7 +2268,7 @@ return processor.Go();
{ {
ShowProgress("Looking up album via CTDB...", 0.0, null, null); ShowProgress("Looking up album via CTDB...", 0.0, null, null);
var ctdb = new CUEToolsDB(TOC, proxy); var ctdb = new CUEToolsDB(TOC, proxy);
ctdb.ContactDB(_config.advanced.CTDBServer, "CUETools " + CUEToolsVersion, null, false, false, priorityMusicbrainz, priorityFreedb, priorityFreedbFuzzy); ctdb.ContactDB(_config.advanced.CTDBServer, "CUETools " + CUEToolsVersion, null, false, false, metadataSearch);
foreach (var meta in ctdb.Metadata) foreach (var meta in ctdb.Metadata)
{ {
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks); CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
@@ -2279,7 +2279,7 @@ return processor.Go();
} }
} }
if (!ctdbFound && priorityFreedb != CTDBPriority.None) if (!ctdbFound && metadataSearch == CTDBMetadataSearch.Extensive)
{ {
ShowProgress("Looking up album via Freedb...", 0.0, null, null); ShowProgress("Looking up album via Freedb...", 0.0, null, null);
@@ -3196,13 +3196,13 @@ return processor.Go();
// TODO: It should also be set when assigning a DataTrack!!! // TODO: It should also be set when assigning a DataTrack!!!
} }
public void UseCUEToolsDB(string userAgent, string driveName, bool fuzzy, CTDBPriority musicbrainz, CTDBPriority freedb, CTDBPriority freedbFuzzy) public void UseCUEToolsDB(string userAgent, string driveName, bool fuzzy, CTDBMetadataSearch metadataSearch)
{ {
ShowProgress((string)"Contacting CUETools database...", 0, null, null); ShowProgress((string)"Contacting CUETools database...", 0, null, null);
_CUEToolsDB = new CUEToolsDB(_toc, proxy); _CUEToolsDB = new CUEToolsDB(_toc, proxy);
_CUEToolsDB.UploadHelper.onProgress += new EventHandler<Krystalware.UploadHelper.UploadProgressEventArgs>(UploadProgress); _CUEToolsDB.UploadHelper.onProgress += new EventHandler<Krystalware.UploadHelper.UploadProgressEventArgs>(UploadProgress);
_CUEToolsDB.ContactDB(_config.advanced.CTDBServer, userAgent, driveName, true, fuzzy, musicbrainz, freedb, freedbFuzzy); _CUEToolsDB.ContactDB(_config.advanced.CTDBServer, userAgent, driveName, true, fuzzy, metadataSearch);
if (!_toc[_toc.TrackCount].IsAudio && DataTrackLength == 0) if (!_toc[_toc.TrackCount].IsAudio && DataTrackLength == 0)
foreach (DBEntry e in _CUEToolsDB.Entries) foreach (DBEntry e in _CUEToolsDB.Entries)
@@ -6216,7 +6216,7 @@ return processor.Go();
return ArVerify.ExceptionStatus != WebExceptionStatus.Success ? WriteReport() : Go(); return ArVerify.ExceptionStatus != WebExceptionStatus.Success ? WriteReport() : Go();
case "repair": case "repair":
{ {
UseCUEToolsDB("CUETools " + CUEToolsVersion, null, true, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None); UseCUEToolsDB("CUETools " + CUEToolsVersion, null, true, CTDBMetadataSearch.None);
Action = CUEAction.Verify; Action = CUEAction.Verify;
if (CTDB.DBStatus != null) if (CTDB.DBStatus != null)
return CTDB.DBStatus; return CTDB.DBStatus;

View File

@@ -180,7 +180,7 @@ namespace CUETools.ConsoleRipper
string ArId = AccurateRipVerify.CalculateAccurateRipId(audioSource.TOC); string ArId = AccurateRipVerify.CalculateAccurateRipId(audioSource.TOC);
var ctdb = new CUEToolsDB(audioSource.TOC, null); var ctdb = new CUEToolsDB(audioSource.TOC, null);
ctdb.Init(arVerify); ctdb.Init(arVerify);
ctdb.ContactDB(null, "CUETools.ConsoleRipper 2.1.2", audioSource.ARName, true, false, CTDBPriority.High, CTDBPriority.Medium, CTDBPriority.Low); ctdb.ContactDB(null, "CUETools.ConsoleRipper 2.1.2", audioSource.ARName, true, false, CTDBMetadataSearch.Fast);
arVerify.ContactAccurateRip(ArId); arVerify.ContactAccurateRip(ArId);
CTDBResponseMeta meta = null; CTDBResponseMeta meta = null;
foreach (var imeta in ctdb.Metadata) foreach (var imeta in ctdb.Metadata)

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:2.0.50727.4200 // Runtime Version:2.0.50727.5446
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.

View File

@@ -1220,7 +1220,7 @@ namespace CUETools.Ripper.SCSI
public sealed class SCSIException : Exception public sealed class SCSIException : Exception
{ {
public SCSIException(string args, Device device, Device.CommandStatus st) public SCSIException(string args, Device device, Device.CommandStatus st)
: base(args + ": " + (st == Device.CommandStatus.DeviceFailed ? Device.LookupSenseError(device.GetSenseAsc(), device.GetSenseAscq()) : st.ToString())) : base(args + ": " + (st == Device.CommandStatus.DeviceFailed ? device.GetErrorString() : st.ToString()))
{ {
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

View File

@@ -170,7 +170,7 @@ namespace JDP {
// //
// toolStripContainer1.LeftToolStripPanel // toolStripContainer1.LeftToolStripPanel
// //
this.toolStripContainer1.LeftToolStripPanel.MaximumSize = new System.Drawing.Size(32, 0); this.toolStripContainer1.LeftToolStripPanel.MaximumSize = new System.Drawing.Size(43, 0);
this.toolStripContainer1.LeftToolStripPanelVisible = false; this.toolStripContainer1.LeftToolStripPanelVisible = false;
this.toolStripContainer1.Name = "toolStripContainer1"; this.toolStripContainer1.Name = "toolStripContainer1";
this.toolStripContainer1.RightToolStripPanelVisible = false; this.toolStripContainer1.RightToolStripPanelVisible = false;
@@ -355,7 +355,7 @@ namespace JDP {
// //
resources.ApplyResources(this.checkBoxUseAccurateRip, "checkBoxUseAccurateRip"); resources.ApplyResources(this.checkBoxUseAccurateRip, "checkBoxUseAccurateRip");
this.checkBoxUseAccurateRip.Image = global::JDP.Properties.Resources.AR; this.checkBoxUseAccurateRip.Image = global::JDP.Properties.Resources.AR;
this.checkBoxUseAccurateRip.MinimumSize = new System.Drawing.Size(0, 16); this.checkBoxUseAccurateRip.MinimumSize = new System.Drawing.Size(0, 21);
this.checkBoxUseAccurateRip.Name = "checkBoxUseAccurateRip"; this.checkBoxUseAccurateRip.Name = "checkBoxUseAccurateRip";
this.toolTip1.SetToolTip(this.checkBoxUseAccurateRip, resources.GetString("checkBoxUseAccurateRip.ToolTip")); this.toolTip1.SetToolTip(this.checkBoxUseAccurateRip, resources.GetString("checkBoxUseAccurateRip.ToolTip"));
this.checkBoxUseAccurateRip.UseVisualStyleBackColor = true; this.checkBoxUseAccurateRip.UseVisualStyleBackColor = true;
@@ -365,7 +365,7 @@ namespace JDP {
// //
resources.ApplyResources(this.checkBoxUseFreeDb, "checkBoxUseFreeDb"); resources.ApplyResources(this.checkBoxUseFreeDb, "checkBoxUseFreeDb");
this.checkBoxUseFreeDb.Image = global::JDP.Properties.Resources.freedb16; this.checkBoxUseFreeDb.Image = global::JDP.Properties.Resources.freedb16;
this.checkBoxUseFreeDb.MinimumSize = new System.Drawing.Size(0, 16); this.checkBoxUseFreeDb.MinimumSize = new System.Drawing.Size(0, 21);
this.checkBoxUseFreeDb.Name = "checkBoxUseFreeDb"; this.checkBoxUseFreeDb.Name = "checkBoxUseFreeDb";
this.toolTip1.SetToolTip(this.checkBoxUseFreeDb, resources.GetString("checkBoxUseFreeDb.ToolTip")); this.toolTip1.SetToolTip(this.checkBoxUseFreeDb, resources.GetString("checkBoxUseFreeDb.ToolTip"));
this.checkBoxUseFreeDb.UseVisualStyleBackColor = true; this.checkBoxUseFreeDb.UseVisualStyleBackColor = true;
@@ -403,7 +403,7 @@ namespace JDP {
// //
resources.ApplyResources(this.checkBoxUseMusicBrainz, "checkBoxUseMusicBrainz"); resources.ApplyResources(this.checkBoxUseMusicBrainz, "checkBoxUseMusicBrainz");
this.checkBoxUseMusicBrainz.Image = global::JDP.Properties.Resources.musicbrainz; this.checkBoxUseMusicBrainz.Image = global::JDP.Properties.Resources.musicbrainz;
this.checkBoxUseMusicBrainz.MinimumSize = new System.Drawing.Size(0, 16); this.checkBoxUseMusicBrainz.MinimumSize = new System.Drawing.Size(0, 21);
this.checkBoxUseMusicBrainz.Name = "checkBoxUseMusicBrainz"; this.checkBoxUseMusicBrainz.Name = "checkBoxUseMusicBrainz";
this.toolTip1.SetToolTip(this.checkBoxUseMusicBrainz, resources.GetString("checkBoxUseMusicBrainz.ToolTip")); this.toolTip1.SetToolTip(this.checkBoxUseMusicBrainz, resources.GetString("checkBoxUseMusicBrainz.ToolTip"));
this.checkBoxUseMusicBrainz.UseVisualStyleBackColor = true; this.checkBoxUseMusicBrainz.UseVisualStyleBackColor = true;
@@ -547,7 +547,7 @@ namespace JDP {
// labelFormat // labelFormat
// //
resources.ApplyResources(this.labelFormat, "labelFormat"); resources.ApplyResources(this.labelFormat, "labelFormat");
this.labelFormat.MinimumSize = new System.Drawing.Size(16, 16); this.labelFormat.MinimumSize = new System.Drawing.Size(21, 21);
this.labelFormat.Name = "labelFormat"; this.labelFormat.Name = "labelFormat";
// //
// comboBoxAudioFormat // comboBoxAudioFormat

View File

@@ -888,7 +888,7 @@ namespace JDP {
if (useLocalDB) if (useLocalDB)
cueSheet.UseLocalDB(_localDB); cueSheet.UseLocalDB(_localDB);
if (useCUEToolsDB) if (useCUEToolsDB)
cueSheet.UseCUEToolsDB("CUETools " + CUESheet.CUEToolsVersion, null, true, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None); cueSheet.UseCUEToolsDB("CUETools " + CUESheet.CUEToolsVersion, null, true, CTDBMetadataSearch.None);
if (useAR) if (useAR)
cueSheet.UseAccurateRip(); cueSheet.UseAccurateRip();
@@ -924,9 +924,7 @@ namespace JDP {
dlg.LookupAlbumInfo(_profile._config.advanced.CacheMetadata, dlg.LookupAlbumInfo(_profile._config.advanced.CacheMetadata,
true, true,
true, true,
checkBoxUseMusicBrainz.Checked ? CTDBPriority.High : CTDBPriority.None, CTDBMetadataSearch.Default);
checkBoxUseFreeDb.Checked ? CTDBPriority.Medium : CTDBPriority.None,
checkBoxUseFreeDb.Checked ? CTDBPriority.Low : CTDBPriority.None);
dlgRes = dlg.ShowDialog(this); dlgRes = dlg.ShowDialog(this);
_choiceMaxed = dlg.WindowState == FormWindowState.Maximized; _choiceMaxed = dlg.WindowState == FormWindowState.Maximized;
if (!_choiceMaxed) if (!_choiceMaxed)
@@ -2183,7 +2181,7 @@ namespace JDP {
if (_choiceMaxed) if (_choiceMaxed)
dlg.WindowState = FormWindowState.Maximized; dlg.WindowState = FormWindowState.Maximized;
dlg.CUE = CueSheet; dlg.CUE = CueSheet;
dlg.LookupAlbumInfo(true, node is FileSystemTreeNodeLocalDBEntry, true, CTDBPriority.High, CTDBPriority.Medium, CTDBPriority.Low); dlg.LookupAlbumInfo(true, node is FileSystemTreeNodeLocalDBEntry, true, CTDBMetadataSearch.Default);
var dlgRes = dlg.ShowDialog(this); var dlgRes = dlg.ShowDialog(this);
_choiceMaxed = dlg.WindowState == FormWindowState.Maximized; _choiceMaxed = dlg.WindowState == FormWindowState.Maximized;
if (!_choiceMaxed) if (!_choiceMaxed)

File diff suppressed because it is too large Load Diff

View File

@@ -39,19 +39,21 @@ namespace JDP
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.tableLayoutPanelMeta = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanelMeta = new System.Windows.Forms.TableLayoutPanel();
this.listMetadata = new System.Windows.Forms.ListView(); this.dataGridViewMetadata = new System.Windows.Forms.DataGridView();
this.columnHeaderMetadataValue = new System.Windows.Forms.ColumnHeader();
this.columnHeaderMetadataName = new System.Windows.Forms.ColumnHeader();
this.listTracks = new System.Windows.Forms.ListView();
this.Title = new System.Windows.Forms.ColumnHeader();
this.TrackNo = new System.Windows.Forms.ColumnHeader();
this.Start = new System.Windows.Forms.ColumnHeader();
this.Length = new System.Windows.Forms.ColumnHeader();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.dataGridViewTracks = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumnTrackNo = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumnTrackTitle = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumnTrackStart = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumnTrackLength = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Item = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Value = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.tableLayoutPanelMeta.SuspendLayout(); this.tableLayoutPanelMeta.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewMetadata)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewTracks)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// buttonOk // buttonOk
@@ -92,6 +94,7 @@ namespace JDP
this.imageList1.Images.SetKeyName(4, "tags"); this.imageList1.Images.SetKeyName(4, "tags");
this.imageList1.Images.SetKeyName(5, "local"); this.imageList1.Images.SetKeyName(5, "local");
this.imageList1.Images.SetKeyName(6, "ctdb"); this.imageList1.Images.SetKeyName(6, "ctdb");
this.imageList1.Images.SetKeyName(7, "discogs");
// //
// textBox1 // textBox1
// //
@@ -126,76 +129,110 @@ namespace JDP
// tableLayoutPanelMeta // tableLayoutPanelMeta
// //
resources.ApplyResources(this.tableLayoutPanelMeta, "tableLayoutPanelMeta"); resources.ApplyResources(this.tableLayoutPanelMeta, "tableLayoutPanelMeta");
this.tableLayoutPanelMeta.Controls.Add(this.listMetadata, 0, 0); this.tableLayoutPanelMeta.Controls.Add(this.dataGridViewTracks, 0, 0);
this.tableLayoutPanelMeta.Controls.Add(this.listTracks, 1, 0); this.tableLayoutPanelMeta.Controls.Add(this.dataGridViewMetadata, 0, 0);
this.tableLayoutPanelMeta.Name = "tableLayoutPanelMeta"; this.tableLayoutPanelMeta.Name = "tableLayoutPanelMeta";
// //
// listMetadata // dataGridViewMetadata
// //
this.listMetadata.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.dataGridViewMetadata.AllowUserToAddRows = false;
this.columnHeaderMetadataValue, this.dataGridViewMetadata.AllowUserToDeleteRows = false;
this.columnHeaderMetadataName}); this.dataGridViewMetadata.AllowUserToResizeColumns = false;
resources.ApplyResources(this.listMetadata, "listMetadata"); this.dataGridViewMetadata.AllowUserToResizeRows = false;
this.listMetadata.FullRowSelect = true; this.dataGridViewMetadata.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.listMetadata.GridLines = true; this.dataGridViewMetadata.BackgroundColor = System.Drawing.SystemColors.Window;
this.listMetadata.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; this.dataGridViewMetadata.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.listMetadata.LabelEdit = true; this.dataGridViewMetadata.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.listMetadata.Name = "listMetadata"; this.dataGridViewMetadata.ColumnHeadersVisible = false;
this.listMetadata.UseCompatibleStateImageBehavior = false; this.dataGridViewMetadata.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.listMetadata.View = System.Windows.Forms.View.Details; this.Item,
this.listMetadata.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listMetadata_AfterLabelEdit); this.Value});
this.listMetadata.DoubleClick += new System.EventHandler(this.listMetadata_DoubleClick); resources.ApplyResources(this.dataGridViewMetadata, "dataGridViewMetadata");
this.listMetadata.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listMetadata_KeyDown); this.dataGridViewMetadata.GridColor = System.Drawing.SystemColors.ControlLight;
// this.dataGridViewMetadata.MultiSelect = false;
// columnHeaderMetadataValue this.dataGridViewMetadata.Name = "dataGridViewMetadata";
// this.dataGridViewMetadata.RowHeadersVisible = false;
resources.ApplyResources(this.columnHeaderMetadataValue, "columnHeaderMetadataValue"); this.dataGridViewMetadata.RowTemplate.Height = 24;
// this.dataGridViewMetadata.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
// columnHeaderMetadataName this.dataGridViewMetadata.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewMetadata_CellEndEdit);
// this.dataGridViewMetadata.EditingControlShowing += new System.Windows.Forms.DataGridViewEditingControlShowingEventHandler(this.dataGridViewMetadata_EditingControlShowing);
resources.ApplyResources(this.columnHeaderMetadataName, "columnHeaderMetadataName"); this.dataGridViewMetadata.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridViewMetadata_KeyDown);
//
// listTracks
//
this.listTracks.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.Title,
this.TrackNo,
this.Start,
this.Length});
resources.ApplyResources(this.listTracks, "listTracks");
this.listTracks.FullRowSelect = true;
this.listTracks.GridLines = true;
this.listTracks.LabelEdit = true;
this.listTracks.Name = "listTracks";
this.listTracks.UseCompatibleStateImageBehavior = false;
this.listTracks.View = System.Windows.Forms.View.Details;
this.listTracks.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_AfterLabelEdit);
this.listTracks.DoubleClick += new System.EventHandler(this.listTracks_DoubleClick);
this.listTracks.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listTracks_PreviewKeyDown);
this.listTracks.BeforeLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_BeforeLabelEdit);
this.listTracks.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listTracks_KeyDown);
//
// Title
//
resources.ApplyResources(this.Title, "Title");
//
// TrackNo
//
resources.ApplyResources(this.TrackNo, "TrackNo");
//
// Start
//
resources.ApplyResources(this.Start, "Start");
//
// Length
//
resources.ApplyResources(this.Length, "Length");
// //
// backgroundWorker1 // backgroundWorker1
// //
this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork); this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted); this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
// //
// dataGridViewTracks
//
this.dataGridViewTracks.AllowUserToAddRows = false;
this.dataGridViewTracks.AllowUserToDeleteRows = false;
this.dataGridViewTracks.AllowUserToResizeColumns = false;
this.dataGridViewTracks.AllowUserToResizeRows = false;
this.dataGridViewTracks.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dataGridViewTracks.BackgroundColor = System.Drawing.SystemColors.Window;
this.dataGridViewTracks.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.dataGridViewTracks.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridViewTracks.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumnTrackNo,
this.dataGridViewTextBoxColumnTrackTitle,
this.dataGridViewTextBoxColumnTrackStart,
this.dataGridViewTextBoxColumnTrackLength});
resources.ApplyResources(this.dataGridViewTracks, "dataGridViewTracks");
this.dataGridViewTracks.GridColor = System.Drawing.SystemColors.ControlLight;
this.dataGridViewTracks.MultiSelect = false;
this.dataGridViewTracks.Name = "dataGridViewTracks";
this.dataGridViewTracks.RowHeadersVisible = false;
this.dataGridViewTracks.RowTemplate.Height = 24;
this.dataGridViewTracks.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.dataGridViewTracks.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewTracks_CellEndEdit);
//
// dataGridViewTextBoxColumnTrackNo
//
this.dataGridViewTextBoxColumnTrackNo.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.dataGridViewTextBoxColumnTrackNo.Frozen = true;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackNo, "dataGridViewTextBoxColumnTrackNo");
this.dataGridViewTextBoxColumnTrackNo.Name = "dataGridViewTextBoxColumnTrackNo";
this.dataGridViewTextBoxColumnTrackNo.ReadOnly = true;
this.dataGridViewTextBoxColumnTrackNo.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// dataGridViewTextBoxColumnTrackTitle
//
this.dataGridViewTextBoxColumnTrackTitle.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackTitle, "dataGridViewTextBoxColumnTrackTitle");
this.dataGridViewTextBoxColumnTrackTitle.Name = "dataGridViewTextBoxColumnTrackTitle";
this.dataGridViewTextBoxColumnTrackTitle.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// dataGridViewTextBoxColumnTrackStart
//
this.dataGridViewTextBoxColumnTrackStart.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackStart, "dataGridViewTextBoxColumnTrackStart");
this.dataGridViewTextBoxColumnTrackStart.Name = "dataGridViewTextBoxColumnTrackStart";
this.dataGridViewTextBoxColumnTrackStart.ReadOnly = true;
this.dataGridViewTextBoxColumnTrackStart.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// dataGridViewTextBoxColumnTrackLength
//
this.dataGridViewTextBoxColumnTrackLength.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackLength, "dataGridViewTextBoxColumnTrackLength");
this.dataGridViewTextBoxColumnTrackLength.Name = "dataGridViewTextBoxColumnTrackLength";
this.dataGridViewTextBoxColumnTrackLength.ReadOnly = true;
this.dataGridViewTextBoxColumnTrackLength.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Item
//
this.Item.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
this.Item.Frozen = true;
resources.ApplyResources(this.Item, "Item");
this.Item.Name = "Item";
this.Item.ReadOnly = true;
//
// Value
//
this.Value.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
resources.ApplyResources(this.Value, "Value");
this.Value.Name = "Value";
//
// frmChoice // frmChoice
// //
this.AcceptButton = this.buttonOk; this.AcceptButton = this.buttonOk;
@@ -207,11 +244,14 @@ namespace JDP
this.ShowInTaskbar = false; this.ShowInTaskbar = false;
this.Load += new System.EventHandler(this.frmChoice_Load); this.Load += new System.EventHandler(this.frmChoice_Load);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmChoice_FormClosing); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmChoice_FormClosing);
this.Resize += new System.EventHandler(this.frmChoice_Resize);
this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout(); this.tableLayoutPanel1.PerformLayout();
this.tableLayoutPanel2.ResumeLayout(false); this.tableLayoutPanel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.tableLayoutPanelMeta.ResumeLayout(false); this.tableLayoutPanelMeta.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridViewMetadata)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewTracks)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@@ -228,13 +268,13 @@ namespace JDP
private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.PictureBox pictureBox1;
private System.ComponentModel.BackgroundWorker backgroundWorker1; private System.ComponentModel.BackgroundWorker backgroundWorker1;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelMeta; private System.Windows.Forms.TableLayoutPanel tableLayoutPanelMeta;
private System.Windows.Forms.ListView listMetadata; private System.Windows.Forms.DataGridView dataGridViewMetadata;
private System.Windows.Forms.ColumnHeader columnHeaderMetadataValue; private System.Windows.Forms.DataGridView dataGridViewTracks;
private System.Windows.Forms.ColumnHeader columnHeaderMetadataName; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackNo;
private System.Windows.Forms.ListView listTracks; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackTitle;
private System.Windows.Forms.ColumnHeader Title; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackStart;
private System.Windows.Forms.ColumnHeader TrackNo; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackLength;
private System.Windows.Forms.ColumnHeader Start; private System.Windows.Forms.DataGridViewTextBoxColumn Item;
private System.Windows.Forms.ColumnHeader Length; private System.Windows.Forms.DataGridViewTextBoxColumn Value;
} }
} }

View File

@@ -22,17 +22,15 @@ namespace JDP
public CUESheet CUE; public CUESheet CUE;
private bool ctdb; private bool ctdb;
private CTDBPriority priorityMusicbrainz, priorityFreedb, priorityFreedbFuzzy; private CTDBMetadataSearch metadataSearch;
public void LookupAlbumInfo(bool cache, bool cue, bool ctdb, CTDBPriority priorityMusicbrainz, CTDBPriority priorityFreedb, CTDBPriority priorityFreedbFuzzy) public void LookupAlbumInfo(bool cache, bool cue, bool ctdb, CTDBMetadataSearch metadataSearch)
{ {
this.ctdb = ctdb; this.ctdb = ctdb;
this.priorityMusicbrainz = priorityMusicbrainz; this.metadataSearch = metadataSearch;
this.priorityFreedb = priorityFreedb; var releases = CUE.LookupAlbumInfo(cache, cue, false, CTDBMetadataSearch.None);
this.priorityFreedbFuzzy = priorityFreedbFuzzy;
var releases = CUE.LookupAlbumInfo(cache, cue, false, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None);
this.Choices = releases; this.Choices = releases;
if (ctdb || priorityMusicbrainz != CTDBPriority.None || priorityFreedb != CTDBPriority.None || priorityFreedbFuzzy != CTDBPriority.None) if (ctdb || metadataSearch != CTDBMetadataSearch.None)
backgroundWorker1.RunWorkerAsync(null); backgroundWorker1.RunWorkerAsync(null);
} }
@@ -159,14 +157,19 @@ namespace JDP
CUE.CopyMetadata(ri.metadata); CUE.CopyMetadata(ri.metadata);
} }
private void AutoResizeTracks() private void AutoResizeList(ListView list, int mainCol)
{ {
listTracks.Columns[1].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); list.SuspendLayout();
listTracks.Columns[2].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); int widthAvailable = list.Width - SystemInformation.BorderSize.Width - SystemInformation.VerticalScrollBarWidth;
listTracks.Columns[3].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); for (int i = 0; i < list.Columns.Count; i++)
int widthAvailable = listTracks.Width - listTracks.Columns[1].Width - listTracks.Columns[2].Width - listTracks.Columns[3].Width - listTracks.Padding.Horizontal - 24; if (i != mainCol)
if (listTracks.Columns[0].Width < widthAvailable) {
listTracks.Columns[0].Width = widthAvailable; 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) private void listChoices_SelectedIndexChanged(object sender, EventArgs e)
@@ -190,65 +193,147 @@ namespace JDP
else if (item != null && item is CUEMetadataEntry) else if (item != null && item is CUEMetadataEntry)
{ {
CUEMetadataEntry r = (item as CUEMetadataEntry); CUEMetadataEntry r = (item as CUEMetadataEntry);
listTracks.Items.Clear(); dataGridViewTracks.SuspendLayout();
dataGridViewTracks.Rows.Clear();
foreach (CUETrackMetadata track in r.metadata.Tracks) foreach (CUETrackMetadata track in r.metadata.Tracks)
{ {
listTracks.Items.Add(new ListViewItem(new string[] { int no = dataGridViewTracks.Rows.Count;
dataGridViewTracks.Rows.Add(
(no + 1).ToString(),
track.Title, track.Title,
(listTracks.Items.Count + 1).ToString(), r.TOC[no + r.TOC.FirstAudio].StartMSF,
r.TOC[listTracks.Items.Count + r.TOC.FirstAudio].StartMSF, r.TOC[no + r.TOC.FirstAudio].LengthMSF
r.TOC[listTracks.Items.Count + r.TOC.FirstAudio].LengthMSF );
}));
} }
AutoResizeTracks(); dataGridViewTracks.ResumeLayout();
listMetadata.Items.Clear(); dataGridViewMetadata.Rows.Clear();
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Artist, "Artist" })); dataGridViewMetadata.Rows.Add("Artist", r.metadata.Artist);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Title, "Album" })); dataGridViewMetadata.Rows.Add("Album", r.metadata.Title);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Year, "Date" })); dataGridViewMetadata.Rows.Add("Date", r.metadata.Year);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Genre, "Genre" })); dataGridViewMetadata.Rows.Add("Genre", r.metadata.Genre);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.DiscNumber, "Disc Number" })); dataGridViewMetadata.Rows.Add("Disc Number", r.metadata.DiscNumber);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.TotalDiscs, "Total Discs" })); dataGridViewMetadata.Rows.Add("Total Discs", r.metadata.TotalDiscs);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.DiscName, "Disc Name" })); dataGridViewMetadata.Rows.Add("Disc Name", r.metadata.DiscName);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Barcode, "Barcode" })); dataGridViewMetadata.Rows.Add("Barcode", r.metadata.Barcode);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.ReleaseDate, "Release Date" })); dataGridViewMetadata.Rows.Add("Release Date", r.metadata.ReleaseDate);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Label, "Label" })); dataGridViewMetadata.Rows.Add("Label", r.metadata.Label);
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Country, "Country" })); dataGridViewMetadata.Rows.Add("Country", r.metadata.Country);
} }
else else
{ {
listMetadata.Items.Clear(); dataGridViewMetadata.Rows.Clear();
listTracks.Items.Clear(); dataGridViewTracks.Rows.Clear();
textBox1.Text = ""; textBox1.Text = "";
} }
} }
private void listTracks_DoubleClick(object sender, EventArgs e) private void pictureBox1_DoubleClick(object sender, EventArgs e)
{ {
listTracks.FocusedItem.BeginEdit(); pictureBox1.SizeMode = pictureBox1.SizeMode == PictureBoxSizeMode.Zoom ?
PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom;
} }
private void listTracks_KeyDown(object sender, KeyEventArgs e) private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{ {
if (e.KeyCode == Keys.F2) e.Result = CUE.LookupAlbumInfo(false, false, this.ctdb, this.metadataSearch);
listTracks.FocusedItem.BeginEdit();
} }
private void listTracks_BeforeLabelEdit(object sender, LabelEditEventArgs e) private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{ {
if (ChosenRelease == null) foreach (object i in (e.Result as List<object>))
AddItem(i);
}
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)
{ {
e.CancelEdit = true; // te.AutoCompleteMode = AutoCompleteMode.None;
return; 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.Barcode); break;
case 8: te.AutoCompleteCustomSource.Add(r.metadata.ReleaseDate); break;
case 9: te.AutoCompleteCustomSource.Add(r.metadata.Label); break;
case 10: te.AutoCompleteCustomSource.Add(r.metadata.Country); break;
}
}
} }
} }
private void listTracks_AfterLabelEdit(object sender, LabelEditEventArgs e) private void dataGridViewMetadata_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{ {
CUEMetadataEntry ri = ChosenRelease; ListViewItem item = ChosenItem;
if (ri != null && e.Label != null) CUEMetadataEntry r = ChosenRelease;
ri.metadata.Tracks[e.Item].Title = e.Label; 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.Barcode = label; break;
case 8: r.metadata.ReleaseDate = label; break;
case 9: r.metadata.Label = label; break;
case 10: r.metadata.Country = label; break;
}
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 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) private void listTracks_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{ {
if (e.KeyCode == Keys.Enter) if (e.KeyCode == Keys.Enter)
@@ -262,91 +347,6 @@ namespace JDP
} }
} }
} }
* */
private void listMetadata_DoubleClick(object sender, EventArgs e)
{
listMetadata.FocusedItem.BeginEdit();
}
private void listMetadata_KeyDown(object sender, KeyEventArgs e)
{
CUEMetadataEntry r = ChosenRelease;
if (e.KeyCode == Keys.F2)
listMetadata.FocusedItem.BeginEdit();
if (e.KeyCode == Keys.Delete && r != null)
{
foreach (int i in listMetadata.SelectedIndices)
{
switch (i)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
if (track.Artist == r.metadata.Artist)
track.Artist = "";
r.metadata.Artist = "";
break;
case 1: r.metadata.Title = ""; break;
case 2: r.metadata.Year = ""; break;
case 3: r.metadata.Genre = ""; break;
case 4: r.metadata.DiscNumber = ""; break;
case 5: r.metadata.TotalDiscs = ""; break;
case 6: r.metadata.DiscName = ""; break;
case 7: r.metadata.Barcode = ""; break;
case 8: r.metadata.ReleaseDate = ""; break;
case 9: r.metadata.Label = ""; break;
case 10: r.metadata.Country = ""; break;
}
listMetadata.Items[i].Text = "";
}
ListViewItem item = ChosenItem;
item.Text = r.ToString();
}
}
private void listMetadata_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
ListViewItem item = ChosenItem;
CUEMetadataEntry r = ChosenRelease;
if (e.Label != null && item != null && r != null)
{
switch (e.Item)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
if (track.Artist == r.metadata.Artist)
track.Artist = e.Label;
r.metadata.Artist = e.Label;
break;
case 1: r.metadata.Title = e.Label; break;
case 2: r.metadata.Year = e.Label; break;
case 3: r.metadata.Genre = e.Label; break;
case 4: r.metadata.DiscNumber = e.Label; break;
case 5: r.metadata.TotalDiscs = e.Label; break;
case 6: r.metadata.DiscName = e.Label; break;
case 7: r.metadata.Barcode = e.Label; break;
case 8: r.metadata.ReleaseDate = e.Label; break;
case 9: r.metadata.Label = e.Label; break;
case 10: r.metadata.Country = e.Label; break;
}
item.Text = r.ToString();
}
}
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.priorityMusicbrainz, this.priorityFreedb, this.priorityFreedbFuzzy);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
foreach (object i in (e.Result as List<object>))
AddItem(i);
}
} }
} }

View File

@@ -123,10 +123,13 @@
</data> </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=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonOk.Location" type="System.Drawing.Point, System.Drawing"> <data name="buttonOk.Location" type="System.Drawing.Point, System.Drawing">
<value>631, 3</value> <value>841, 4</value>
</data>
<data name="buttonOk.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing"> <data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 29</value> <value>206, 35</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonOk.TabIndex" type="System.Int32, mscorlib"> <data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
@@ -154,10 +157,13 @@
<value>Fill</value> <value>Fill</value>
</data> </data>
<data name="listChoices.Location" type="System.Drawing.Point, System.Drawing"> <data name="listChoices.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value> <value>4, 4</value>
</data>
<data name="listChoices.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="listChoices.Size" type="System.Drawing.Size, System.Drawing"> <data name="listChoices.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 144</value> <value>1051, 177</value>
</data> </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=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
@@ -166,142 +172,159 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB4 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACQ
HwAAAk1TRnQBSQFMAgEBBwEAAQwBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA IwAAAk1TRnQBSQFMAgEBCAEAASQBAAEkAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAx0BKgNDAXcDHQEqeAADJwE7AVIBUAFOAZQBdwFqAVwBzgGYAXoBWQHr AwABMAMAAQEBAAEgBgABMP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8ALgADHQEqA0MBdwMd
AZgBegFZAesBdwFqAVwBzgFSAVABTgGUAgAB4gH/AgAB4gH/VAADHQEpA0IBdAL/AfAB/wNCAXQDHQEp ASp4AAMnATsDTgGUAWIBXgFcAc4BgAFuAVkB6wGAAW4BWQHrAWIBXgFcAc4DTgGUAgAB4gH/AgAB4gH/
bAADCgENAVIBUAFOAZYBrAF/AVMB+gHhAc0BuQH/AfEB4AHOAf8B+QHnAdYB/wH4AeYB1AH/AfAB3QHM JAABaAFwAXgB/wFoAXABeAH/AWgBcAF4Af8BaAFwAXgB/yAAAx0BKQNCAXQC/wHwAf8DQgF0Ax0BKWwA
Af8B4QHNAbkB/wIAAeIB/wIAAeIB/wMKAQ1MAAMcASgDQAFxAv8B8AH/AukB2gP/AfEB/wNAAXEDHAEo AwoBDQNOAZYBogF7AU8B+gHhAc0BuQH/AfEB4AHOAf8B+QHnAdYB/wH4AeYB1AH/AfAB3QHMAf8B4QHN
IAADNgFZA0IBdgNCAXYDMAFLBAADMAFLA0IBdgNCAXYDQgF2A0IBdgMwAUsEAAMwAUsDQgF2A0IBdgM2 AbkB/wIAAeIB/wIAAeIB/wMKAQ0YAAFoAXABeAH/Az8B/wM/Af8BJgI2Af8DDQH/Aw0B/wMAAf8DDQH/
AVkEAAMKAQ0BZgFfAVcBuAHZAb8BpQH/Af4B8gHkAv8B5wHPAf8B/AHbAbsB/wH5AdMBsgH/AfYB0AGs FAADHAEoA0ABcQL/AfAB/wLpAdoD/wHxAf8DQAFxAxwBKCAAAzYBWQNCAXYDQgF2AzABSwQAAzABSwNC
Af8B9AHRAa4B/wH2AdgBuwH/AgAB4gH/AgAB4gH/AWYBXwFXAbgDCgENRAADHAEnA0ABbwL/AfAB/wHr AXYDQgF2A0IBdgNCAXYDMAFLBAADMAFLA0IBdgNCAXYDNgFZBAADCgENA1cBuAHZAb8BpQH/Af4B8gHk
Ad0BsQH/AfcBwQEzAf8B7QHfAbMD/wHyAf8DQAFvAxwBJxwAA0EBcgL5AekB/wLzAeMB/wJWAVUBtQND Av8B5wHPAf8B/AHbAbsB/wH5AdMBsgH/AfYB0AGsAf8B9AHRAa4B/wH2AdgBuwH/AgAB4gH/AgAB4gH/
AXgDXQHDAvMB4wH/AvMB4wH/AvMB4wH/AvMB4wH/A10BwwNDAXgCVgFVAbUC8wHjAf8C+QHpAf8DQQFy A1cBuAMKAQ0QAAM/Af8BvQLGAf8BaAFwAXgB/wM/Af8BHgImAf8DDQH/Aw0B/wMAAf8DAAH/Aw0B/wwA
BAABUgFQAU4BlgHZAb8BpQL/AfgB6wL/AesB0QL/AeEBwwH/Af4B2wG6Af8B+wHWAbIB/wIAAeIB/wIA AxwBJwNAAW8C/wHwAf8B6wHdAbEB/wH3AcEBLwH/Ae0B3wGzA/8B8gH/A0ABbwMcASccAANBAXIC+QHp
AeIB/wIAAeIB/wIAAeIB/wIAAeIB/wIAAeIB/wIAAeIB/wIAAeIB/0AAA0ABbgL/AfAB/wLpAdoB/wHn Af8C8wHjAf8DVQG1A0MBeANbAcMC8wHjAf8C8wHjAf8C8wHjAf8C8wHjAf8DWwHDA0MBeANVAbUC8wHj
AasBHQH/AecBqwEdAf8B5wGrAR0B/wHqAdsBsAP/AfQB/wNAAW4DHAEnGAADQAFvAvQB5gH/AukB2gH/ Af8C+QHpAf8DQQFyBAADTgGWAdkBvwGlAv8B+AHrAv8B6wHRAv8B4QHDAf8B/gHbAboB/wH7AdYBsgH/
Au8B4AH/AvQB5gH/Au8B4AH/AukB2gH/AukB2gH/AukB2gH/AukB2gH/Au8B4AH/AvQB5gH/Au8B4AH/ AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/CAABHgImAf8DPwH/
AukB2gH/AvQB5gH/A0ABbwMmATgBtQGHAVQB/QL+AfoC/wH5AekC/wHvAdgC/wHnAc0C/wHhAcIB/wH8 AWgBcAF4Af8BvQLGAf8BaAFwAXgB/wEeAiYB/wMNAf8DDQH/AwAB/wMAAf8DAAH/Aw0B/wgAA0ABbgL/
AdwBuwH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/QAADHAEn AfAB/wLpAdoB/wHnAasBGQH/AecBqwEZAf8B5wGrARkB/wHqAdsBsAP/AfQB/wNAAW4DHAEnGAADQAFv
Az8BbQL/AfEB/wHnAdcBqwH/AdcBlgEIAf8B1wGWAQgB/wHXAZYBCAH/AegB2AGuA/8B9QH/Az8BbQMc AvQB5gH/AukB2gH/Au8B4AH/AvQB5gH/Au8B4AH/AukB2gH/AukB2gH/AukB2gH/AukB2gH/Au8B4AH/
AScUAANAAW4C9gHoAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHe AvQB5gH/Au8B4AH/AukB2gH/AvQB5gH/A0ABbwMmATgBsQGHAVAB/QL+AfoC/wH5AekC/wHvAdgC/wHn
Af8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C9gHoAf8DQAFuAVIBUAFOAZYB4gHOAboB/wH3Ad4BxgL/ Ac0C/wHhAcIB/wH8AdwBuwH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/
AekB0QL/AfYB4gL/AfIB3QL/AfAB3QH/AfgB6gHZAf8B+AHmAdQB/wH7Ad8BxwH/AfUBzwGrAf8CAAHi AgAB4gH/BAABHgImAf8BJgI2Af8DPwH/Az8B/wFoAXABeAH/AWgBcAF4Af8BJgI2Af8BHgImAf8DDQH/
Af8CAAHiAf8B+AHdAcMB/wHiAc4BugH/AVIBUAFOAZZEAAMbASYDPwFsAv8B8gH/AeUB1AGpAf8BzQGJ AwAB/wMAAf8DAAH/AwAB/wEeAiYB/wQAAxwBJwM/AW0C/wHxAf8B5wHXAasB/wHXAZYBBAH/AdcBlgEE
AQAB/wHNAYkBAAH/Ac0BiQEAAf8B6AHXAa8D/wH3Af8DPwFsAxsBJhAAAz8BbQL3AewB/wLuAeMB/wLu Af8B1wGWAQQB/wHoAdgBrgP/AfUB/wM/AW0DHAEnFAADQAFuAvYB6AH/AusB3gH/AusB3gH/AusB3gH/
AeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLu AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AvYB6AH/
AeMB/wL3AewB/wM/AW0BeAFqAVsB0AHvAeAB0AH/AecBvgGWAf8B5wG8AZQB/wHwAcwBqQH/Af4B7AHa A0ABbgNOAZYB4gHOAboB/wH3Ad4BxgL/AekB0QL/AfYB4gL/AfIB3QL/AfAB3QH/AfgB6gHZAf8B+AHm
Af8B3QHEAawB/wGRAXcBXAHnAZEBdwFcAecB3QHDAaoB/wH4Ad0BxAH/AgAB4gH/AgAB4gH/AfUB1gG4 AdQB/wH7Ad8BxwH/AfUBzwGrAf8CAAHiAf8CAAHiAf8B+AHdAcMB/wHiAc4BugH/A04BlgQAAw0B/wEe
Af8B8QHfAc8B/wF4AWoBWwHQSAADGwEmAz4BawL/AfQB/wHnAdYBrAH/AdEBjgEAAf8B0QGOAQAB/wHR AiYB/wEeAiYB/wEmAjYB/wEmAjYB/wMNAf8BFQFgAWgB/wEVAWABaAH/AwUB/wMFAf8DAAH/AwAB/wMA
AY4BAAH/AewB2wGzA/8B+AH/Az4BawMbASYMAAM+AWsC+QHvAf8C8QHoAf8C8QHoAf8C8QHoAf8C8QHo Af8DAAH/CAADGwEmAz8BbAL/AfIB/wHlAdQBqQH/Ac0BiQEAAf8BzQGJAQAB/wHNAYkBAAH/AegB1wGv
Af8C8QHoAf8DAAH/AUsBhQGTAf8BuALLAf8C8QHoAf8C8QHoAf8C8QHoAf8C8QHoAf8C+QHvAf8DPgFr A/8B9wH/Az8BbAMbASYQAAM/AW0C9wHsAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHj
AZgBegFZAewB9QHkAdUB/wHpAb4BlwH/AegBvAGWAf8B5wG8AZQB/wHzAd4BygH/AZIBdwFZAeYDFAEb Af8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C9wHsAf8DPwFtAWIBXgFbAdAB7wHg
AxQBGwGSAXcBWQHmAfYB4wHTAf8CAAHiAf8CAAHiAf8B7QHJAaQB/wH2AeQB0gH/AZgBegFZAexMAAMb AdAB/wHnAb4BlgH/AecBvAGUAf8B8AHMAakB/wH+AewB2gH/Ad0BxAGsAf8BdwFrAVwB5wF3AWsBXAHn
ASYDPgFrAv8B9QH/AesB3AGzAf8B3wGhARMB/wHfAaEBEwH/Ad8BoQETAf8B8QHiAbsD/wH6Af8DPgFr Ad0BwwGqAf8B+AHdAcQB/wIAAeIB/wIAAeIB/wH1AdYBuAH/AfEB3wHPAf8BYgFeAVsB0AFoAXABeAH/
AxsBJggAAz4BagL6AfMB/wL1Ae4B/wL1Ae4B/wL1Ae4B/wL1Ae4B/wL1Ae4B/wF2AbEBwAH/AdkB9AL/ AwAB/wMNAf8DDQH/Aw0B/wMNAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wMFAf8DAAH/
ATkBnAGrAf8BtQHTAdQB/wL1Ae4B/wL1Ae4B/wL1Ae4B/wL6AfMB/wM+AWoBmAF6AVkB7AH1AeQB1QH/ AwAB/wMAAf8DAAH/AWgBcAF4Af8IAAMbASYDPgFrAv8B9AH/AecB1gGsAf8B0QGOAQAB/wHRAY4BAAH/
AekBvwGZAf8B6QHAAZkB/wHpAcEBmgH/AfMB3QHJAf8BkgF3AVkB5gMUARsDFAEbAZIBdwFZAeYB+AHo AdEBjgEAAf8B7AHbAbMD/wH4Af8DPgFrAxsBJgwAAz4BawL5Ae8B/wLxAegB/wLxAegB/wLxAegB/wLx
AdkB/wHyAdIBsgH/AfABzAGrAf8B8AHMAasB/wH2AeQB0wH/AZgBegFZAexQAAMbASYDPgFqAv8B9wH/ AegB/wLxAegB/wMAAf8BRwGFAZMB/wG4AssB/wLxAegB/wLxAegB/wLxAegB/wLxAegB/wL5Ae8B/wM+
AfIB5AG7Af8B8AG4ASoB/wHwAbgBKgH/AfABuAEqAf8C+AH0A/8B+wH/Az4BagMaASUEAAM9AWkC/AH3 AWsBgAFuAVkB7AH1AeQB1QH/AekBvgGXAf8B6AG8AZYB/wHnAbwBlAH/AfMB3gHKAf8BeAFqAVkB5gMU
Af8C+AHzAf8C+AHzAf8C+AHzAf8C+AHzAf8C+AHzAf8B1AHmAecB/wFDAbQBwwH/AXMB5gH3Af8BOgGd ARsDFAEbAXgBagFZAeYB9gHjAdMB/wIAAeIB/wIAAeIB/wHtAckBpAH/AfYB5AHSAf8BgAFuAVkB7AFo
Aa0B/wG2AdUB1wH/AvgB8wH/AvgB8wH/AvwB9wH/Az0BaQF4AWoBWwHQAfAB4QHRAf8B6gHEAaEB/wHp AXABeAH/AwAB/wMAAf8DAAH/AQACBQH/ARUBYAFoAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHWAf8BAAHG
AcEBmwH/AekBwAGXAf8B8QHOAbIB/wHcAcMBqgH/AZEBdwFcAecBkQF3AVwB5wHdAcQBrAL/AfwB8wL/ AdYB/wEVAWABaAH/AwAB/wMAAf8DAAH/AwAB/wFoAXABeAH/DAADGwEmAz4BawL/AfUB/wHrAdwBswH/
AfQB5QL/Ae4B2gH/AfwB5QHRAf8B8QHhAdEB/wF4AWoBWwHQVAADGgElAz0BaQL/AfgB/wH3AeoBwwH/ Ad8BoQEPAf8B3wGhAQ8B/wHfAaEBDwH/AfEB4gG7A/8B+gH/Az4BawMbASYIAAM+AWoC+gHzAf8C9QHu
Af0ByQE7Af8B+QHsAccB/wL7AfcB/wL8AfkD/wH8Af8DPQFpAxoBJQM9AWgC/QH6Af8C+wH3Af8C+wH3 Af8C9QHuAf8C9QHuAf8C9QHuAf8C9QHuAf8BcgGxAcAB/wHZAfQC/wE1AZwBqwH/AbUB0wHUAf8C9QHu
Af8C+wH3Af8C+wH3Af8C+wH3Af8C+wH3Af8BvgHlAegB/wFEAbUBxQH/AXMB5gH3Af8BOwGeAa4B/wG5 Af8C9QHuAf8C9QHuAf8C+gHzAf8DPgFqAYABbgFZAewB9QHkAdUB/wHpAb8BmQH/AekBwAGZAf8B6QHB
AdgB2wH/AvsB9wH/Av0B+gH/Az0BaAFSAVABTgGWAeIBzgG6Af8B8QHSAbYB/wHrAcEBmwH/AesBvwGZ AZoB/wHzAd0ByQH/AXgBagFZAeYDFAEbAxQBGwF4AWoBWQHmAfgB6AHZAf8B8gHSAbIB/wHwAcwBqwH/
Av8B5AHTAv8B6AHbAf8B8wHaAccB/wH4AfEB5AL/AfgB7QL/AfcB6QL/Af4B8QL/AfwB7wL/AfwB8gH/ AfABzAGrAf8B9gHkAdMB/wGAAW4BWQHsAWgBcAF4Af8DAAH/AwAB/wMAAf8DAAH/ARUBYAFoAf8BAAHG
AeIBzgG6Af8BUgFQAU4BllgAAxoBJQM9AWgC/wH6Af8C+AH0Af8C+wH3Af8C6AHeAf8C2AHJAf8C6AHe AdYB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wEVAWABaAH/Aw0B/wMNAf8DDQH/Aw0B/wFoAXABeAH/
A/8B/gH/Az0BaAM9AWgC/gH9Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7 EAADGwEmAz4BagL/AfcB/wHyAeQBuwH/AfABuAEmAf8B8AG4ASYB/wHwAbgBJgH/AvgB9AP/AfsB/wM+
Af8BwAHmAesB/wFFAbUBxgH/AXMB5gH3Af8BOwGeAa8B/wG+AdgB3AH/Av4B/QH/Az0BaAMmATgBtQGH AWoDGgElBAADPQFpAvwB9wH/AvgB8wH/AvgB8wH/AvgB8wH/AvgB8wH/AvgB8wH/AdQB5gHnAf8BPwG0
AVQB/QH6Ae0B4QH/AewBxwGjAv8B7AHaBf8B9wHNAbYB/wHsAb0BlwL/AfQB3AP/AfcC/wH3AegD/wHz AcMB/wFvAeYB9wH/ATYBnQGtAf8BtgHVAdcB/wL4AfMB/wL4AfMB/wL8AfcB/wM9AWkBYgFeAVsB0AHw
A/8B+QH/Av4B+QH/AbUBhwFUAf0DJgE4XAADGgElAz0BaAL/AfsB/wL8AfkB/wLLAbsB/wQAAssBvAP/ AeEB0QH/AeoBxAGhAf8B6QHBAZsB/wHpAcABlwH/AfEBzgGyAf8B3AHDAaoB/wF3AWsBXAHnAXcBawFc
Af4B/wM9AWgDPQFnJP8BwQHoAe4B/wFFAbYBxwH/AXMB5gH3Af8DkwH/A9UB/wM9AWcEAAFSAVABTgGW AecB3QHEAawC/wH8AfMC/wH0AeUC/wHuAdoB/wH8AeUB0QH/AfEB4QHRAf8BYgFeAVsB0AFoAXABeAH/
AdkBvwGlAv8B+gHwBv8B/QHzAf8B8AHBAaMB/wHuAcYBoAH/Af0B8AHRA/8B/gL/Af0B8AL/Af0B8QX/ AwAB/wMAAf8DAAH/AwAB/wMNAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wMNAf8BHgIm
AdkBvwGlAf8BUgFQAU4BlmQAAxoBJQM9AWcC/wH8Af8C1AHKAf8CrwGfAf8C1AHLA/8B/gH/Az0BZwMx Af8BHgImAf8DDQH/Aw0B/wFoAXABeAH/FAADGgElAz0BaQL/AfgB/wH3AeoBwwH/Af0ByQE3Af8B+QHs
AccB/wL7AfcB/wL8AfkD/wH8Af8DPQFpAxoBJQM9AWgC/QH6Af8C+wH3Af8C+wH3Af8C+wH3Af8C+wH3
Af8C+wH3Af8C+wH3Af8BvgHlAegB/wFAAbUBxQH/AW8B5gH3Af8BNwGeAa4B/wG5AdgB2wH/AvsB9wH/
Av0B+gH/Az0BaANOAZYB4gHOAboB/wHxAdIBtgH/AesBwQGbAf8B6wG/AZkC/wHkAdMC/wHoAdsB/wHz
AdoBxwH/AfgB8QHkAv8B+AHtAv8B9wHpAv8B/gHxAv8B/AHvAv8B/AHyAf8B4gHOAboB/wNOAZYEAAMN
Af8DAAH/AwAB/wMAAf8DAAH/Aw0B/wEVAWABaAH/ARUBYAFoAf8DDQH/Az8B/wM/Af8BHgImAf8BHgIm
Af8BHgImAf8cAAMaASUDPQFoAv8B+gH/AvgB9AH/AvsB9wH/AugB3gH/AtgByQH/AugB3gP/Af4B/wM9
AWgDPQFoAv4B/QH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/AcAB5gHr
Af8BQQG1AcYB/wFvAeYB9wH/ATcBngGvAf8BvgHYAdwB/wL+Af0B/wM9AWgDJgE4AbEBhwFQAf0B+gHt
AeEB/wHsAccBowL/AewB2gX/AfcBzQG2Af8B7AG9AZcC/wH0AdwD/wH3Av8B9wHoA/8B8wP/AfkB/wL+
AfkB/wGxAYcBUAH9AyYBOAQAAz8B/wMAAf8DAAH/AwAB/wMNAf8DDQH/AR4CJgH/Az8B/wFoAXABeAH/
AWgCrQH/Az8B/wM/Af8BHgImAf8DPwH/IAADGgElAz0BaAL/AfsB/wL8AfkB/wLLAbsB/wQAAssBvAP/
Af4B/wM9AWgDPQFnJP8BwQHoAe4B/wFBAbYBxwH/AW8B5gH3Af8DkwH/A9UB/wM9AWcEAANOAZYB2QG/
AaUC/wH6AfAG/wH9AfMB/wHwAcEBowH/Ae4BxgGgAf8B/QHwAdED/wH+Av8B/QHwAv8B/QHxBf8B2QG/
AaUB/wNOAZYMAAEeAiYB/wMAAf8DAAH/Aw0B/wMNAf8BHgImAf8BJgI2Af8BaAFwAXgB/wG9AsYB/wFo
AXABeAH/ASYCNgH/Az8B/ygAAxoBJQM9AWcC/wH8Af8C1AHKAf8CrwGfAf8C1AHLA/8B/gH/Az0BZwMx
AU0DPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDPAFmA0oBjANSAacD9wH/AlYBWAG7 AU0DPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDPAFmA0oBjANSAacD9wH/AlYBWAG7
A0QBegQAAwoBDQFmAV8BVwG4AdkBvwGlAf8B/gH9AfwC/wHxAeQB/wHyAcoBrgH/AfIB0gGtAf8B+QHt A0QBegQAAwoBDQNXAbgB2QG/AaUB/wH+Af0B/AL/AfEB5AH/AfIBygGuAf8B8gHSAa0B/wH5Ae0ByAP/
AcgD/wH3A/8B/QH/Af4B/QH8Af8B2QG/AaUB/wFmAV8BVwG4AwoBDWgAAxoBJAM9AWcC/wH+A/8B/gP/ AfcD/wH9Af8B/gH9AfwB/wHZAb8BpQH/A1cBuAMKAQ0QAAM/Af8DAAH/Aw0B/wMNAf8BHgImAf8BJgI2
Af4F/wM9AWcwAAMaASQCRAFFAXwCgAL/AlUBWwHBCAADCgENAVIBUAFOAZYBrAF/AVMB+gHhAc0BuQH/ Af8DPwH/AWgBcAF4Af8BaAFwAXgB/wFoAXABeAH/MAADGgEkAz0BZwL/Af4D/wH+A/8B/gX/Az0BZzAA
AfEB4gHUAf8B+QHsAd8B/wH7AfMB5QH/AfQB7QHkAf8B4gHOAbsB/wGsAX8BUwH6AVIBUAFOAZYDCgEN AxoBJAJEAUUBfAKAAv8CVgFYAcEIAAMKAQ0DTgGWAaIBewFPAfoB4QHNAbkB/wHxAeIB1AH/AfkB7AHf
cAADGgEkAzwBZgM8AWYDPAFmAzwBZgMxAU00AAMmATkCUwFWAa8DKgFAEAADJwE7AVIBUAFOAZQBdwFq Af8B+wHzAeUB/wH0Ae0B5AH/AeIBzgG7Af8BogF7AU8B+gNOAZYDCgENGAABJgI2Af8BJgI2Af8DDQH/
AVwBzgGYAXoBWQHrAZsBewFYAe8BgAFvAVsB2QFTAVABTwGXAycBO1wAAwIBAwMUARwDMAFMA0QBeQNQ Aw0B/wMNAf8BHgImAf8DPwH/Az8B/zgAAxoBJAM8AWYDPAFmAzwBZgM8AWYDMQFNNAADJgE5A1QBrwMq
AZoDUAGkA1ABmgNEAXkDMAFMAxQBHAMDAQQIAAOWAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIA AUAQAAMnATsDTgGUAWIBXgFcAc4BgAFuAVkB6wGDAW4BWAHvAWUBYAFbAdkDTwGXAycBOygAAWgBcAF4
Af8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIA Af8BaAFwAXgB/wFoAXABeAH/AWgBcAF4Af8kAAMCAQMDFAEcAzABTANEAXkDUAGaA1ABpANQAZoDRAF5
Af8EAAFMAcwC/wEZApkB/wEZApkB/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFM AzABTAMUARwDAwEECAADlgH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/
AcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/xAAAwIBAwMUARwDMAFMA0QBeQNQAZoDUAGkA1ABmgNE ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/BAABSAHMAv8BFQKZ
AXkDMAFMAxQBHAMDAQQQAAMEAQYDJAE2A1MBsAFjAl4B5QFqAl8B+wGzAqkB/wFqAl8B+wNgAesDWgHT Af8BFQKZAf8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHM
A1MBrANHAYIDKAE8AwcBCQQAAcwCmQH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/A+oB/wPqAf8D6gH/ Av8BSAHMAv8BSAHMAv8QAAMCAQMDFAEcAzABTANEAXkDUAGaA1ABpANQAZoDRAF5AzABTAMUARwDAwEE
AYACAAH/A+oB/wPqAf8D6gH/AYACAAH/AYACAAH/AUwCAAH/ARkCAAH/ARkCmQH/AwAB/wMPAf8DMwH/ EAADBAEGAyQBNgNTAbABYwJeAeUBYAJfAfsBswKpAf8BYAJfAfsDYAHrA1oB0wNTAawDRwGCAygBPAMH
AwAB/wMCAf8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHM AQkEAAHMApkB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wPqAf8D6gH/A+oB/wGAAgAB/wPqAf8D6gH/
Av8BTAHMAv8IAAMEAQYDJAE2A1MBsAFjAl4B5QFqAl8B+wGzAqkB/wFqAl8B+wNgAesDWgHTA1MBrANH A+oB/wGAAgAB/wGAAgAB/wFIAgAB/wEVAgAB/wEVApkB/wMAAf8DCwH/Ay8B/wMAAf8DAAH/AUgBzAL/
AYIDKAE8AwcBCQgAAwIBAwMxAU8DXAHqAc8CtAL/At0C/wLiAv8C6AL/Au4C/wLzAf8DzwH/A18B8wNY AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/CAADBAEG
AcYDTAGSAygBPAMDAQQBzAKZAf8BgAIAAf8BgAIAAf8BgAIAAf8D8QH/AYACAAH/AYACAAH/A/EB/wGA AyQBNgNTAbABYwJeAeUBYAJfAfsBswKpAf8BYAJfAfsDYAHrA1oB0wNTAawDRwGCAygBPAMHAQkIAAMC
AgAB/wPxAf8BgAIAAf8BgAIAAf8D8QH/AYACAAH/AYACAAH/ARkCAAH/AwAB/wPMDf8DMwH/AwIB/wFM AQMDMQFPA1wB6gHPArQC/wLdAv8C4gL/AugC/wLuAv8C8wH/A88B/wNfAfMDWAHGA0wBkgMoATwDAwEE
AcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wQAAwIBAwMx AcwCmQH/AYACAAH/AYACAAH/AYACAAH/A/EB/wGAAgAB/wGAAgAB/wPxAf8BgAIAAf8D8QH/AYACAAH/
AU8DXAHqAc8CtAL/At0C/wLiAv8C6AL/Au4C/wLzAf8DzwH/A18B8wNYAcYDTAGSAygBPAMDAQQEAAMm AYACAAH/A/EB/wGAAgAB/wGAAgAB/wEVAgAB/wMAAf8DzA3/Ay8B/wMAAf8BSAHMAv8BSAHMAv8BSAHM
ATgDbQH3AfUCxwL/AtIC/wLYAv8C3QL/AuIC/wLoAv8C9AX/A/UB/wN/AfsDWAHGA0cBggMUARwBzAKZ Av8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8EAAMCAQMDMQFPA1wB6gHPArQC/wLd
Af8BmQEAARkB/wGAAgAB/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAB/wGA Av8C4gL/AugC/wLuAv8C8wH/A88B/wNfAfMDWAHGA0wBkgMoATwDAwEEBAADJgE4A20B9wH1AscC/wLS
AgAB/wEZAgAB/wMAAf8DzBH/AwAB/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFM Av8C2AL/At0C/wLiAv8C6AL/AvQF/wP1Af8DcwH7A1gBxgNHAYIDFAEcAcwCmQH/AZkBAAEVAf8BgAIA
AcwC/wFMAcwC/wFMAcwC/wQAAyYBOANtAfcB9QLHAv8C0gL/AtgC/wLdAv8C4gL/AugC/wL0Bf8D9QH/ Af8BgAIABf8BgAIAAf8BgAIABf8BgAIABf8BgAIAAf8BgAIABf8BgAIAAf8BgAIAAf8BFQIAAf8DAAH/
A38B+wNYAcYDRwGCAxQBHAMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLdAv8C4gL/AvoJ/wP1 A8wR/wMAAf8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHM
Af8DXwHzA1MBrAMwAUwBzAKZAf8BmQEAARkB/wGAAgAB/wGAAgAB/wGAAgAN/wGAAgAN/wGAAgAB/wGA Av8EAAMmATgDbQH3AfUCxwL/AtIC/wLYAv8C3QL/AuIC/wLoAv8C9AX/A/UB/wNzAfsDWAHGA0cBggMU
AgAB/wGAAgAB/wEZAgAB/wEZApkB/wMCAf8DXQH/A8AB/wPAAf8DzAH/AwAB/wMPAf8DAAH/AwAB/wMA ARwDBwEJA14B3QH1As0C/wLPAv8CzQL/AtIC/wLYAv8C3QL/AuIC/wL6Cf8D9QH/A18B8wNTAawDMAFM
Af8DAAH/Aw8B/wFMAcwC/wFMAcwC/wFMAcwC/wMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLd AcwCmQH/AZkBAAEVAf8BgAIAAf8BgAIAAf8BgAIADf8BgAIADf8BgAIAAf8BgAIAAf8BgAIAAf8BFQIA
Av8C4gL/AvoJ/wP1Af8DXwHzA1MBrAMwAUwDPgFqAcYCsQL/AtkC/wLUAv8CzwL/As0C/wHUAdsC/wHX Af8BFQKZAf8DAAH/A1kB/wPAAf8DwAH/A8wB/wMAAf8DCwH/AwAB/wMAAf8DAAH/AwAB/wMLAf8BSAHM
AeIC/wHkAeoR/wHSAswB/wNaAdMDQwF3AcwCmQH/AZkBAAEZAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA Av8BSAHMAv8BSAHMAv8DBwEJA14B3QH1As0C/wLPAv8CzQL/AtIC/wLYAv8C3QL/AuIC/wL6Cf8D9QH/
Af8BgAIABf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BGQIAAf8BTAHMAv8BGQKZ A18B8wNTAawDMAFMAz4BagHGArEC/wLZAv8C1AL/As8C/wLNAv8B1AHbAv8B1wHiAv8B5AHqEf8B0gLM
Af8DAgH/AwAB/wMABf8DAAH/AwIB/wGkAqAJ/wOZAf8DDwH/Aw8B/wFMAcwC/wFMAcwC/wM+AWoBxgKx Af8DWgHTA0MBdwHMApkB/wGZAQABFQH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAX/AYACAAX/
Av8C2QL/AtQC/wLPAv8CzQL/AdQB2wL/AdcB4gL/AeQB6hH/AdICzAH/A1oB0wNDAXcDVgG2Af8C4wH/ AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/ARUCAAH/AUgBzAL/ARUCmQH/AwAB/wMAAf8DAAX/
AQABFAEVAf8BAAEUARUB/wEAARQBFQL/Ad4B5wH/AQABFAEVAv8B0QHzAf8BAAEUARUC/wH4Av8BVAJa AwAB/wMAAf8BpAKgCf8DmQH/AwsB/wMLAf8BSAHMAv8BSAHMAv8DPgFqAcYCsQL/AtkC/wLUAv8CzwL/
Af8BAAEUARUB/wFUAloB/wHMApkB/wFcAlUB6gNOAZQBzAKZAf8BmQEAARkB/wGAAgAB/wGAAgAB/wGA As0C/wHUAdsC/wHXAeIC/wHkAeoR/wHSAswB/wNaAdMDQwF3A1YBtgH/AuMB/wEAARABEQH/AQABEAER
AgAB/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEZAgAB/wFM Af8BAAEQAREC/wHeAecB/wEAARABEQL/AdEB8wH/AQABEAERAv8B+AL/AVACVgH/AQABEAERAf8BUAJW
AcwC/wFMAcwC/wFMAcwC/wFMAcwC/wMABf8DAAH/Aw8R/wPMAf8DAAH/AUwBzAL/AUwBzAL/A1YBtgH/ Af8BzAKZAf8BXAJVAeoDTgGUAcwCmQH/AZkBAAEVAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
AuMB/wFUAloB/wEAARQBFQH/AVQCWgL/Ad4B5wH/AVQCWgH/AQABFAEVAf8BVAJaAv8B+AL/AQABFAEV Bf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BFQIAAf8BSAHMAv8BSAHMAv8BSAHM
Af8BAAEUARUB/wEAARQBFQH/AcwCmQH/AVwCVQHqA04BlANhAeIB/wLnAf8BAAEUARUC/wLeAv8C4AL/ Av8BSAHMAv8DAAX/AwAB/wMLEf8DzAH/AwAB/wFIAcwC/wFIAcwC/wNWAbYB/wLjAf8BUAJWAf8BAAEQ
Ae8B/AH/AQABFAEVAv8B4gH8Af8BAAEUARUB/wH8AfAB+QH/AQABFAEVAf8BzAKZAf8BAAEUARUB/wHM AREB/wFQAlYC/wHeAecB/wFQAlYB/wEAARABEQH/AVACVgL/AfgC/wEAARABEQH/AQABEAERAf8BAAEQ
ApkB/wFtAmwB9wNRAaEBzAKZAf8BmQEAARkB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGA AREB/wHMApkB/wFcAlUB6gNOAZQDYQHiAf8C5wH/AQABEAERAv8C3gL/AuAC/wHvAfwB/wEAARABEQL/
AgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEZAgAB/wGZAkwB/wGZ AeIB/AH/AQABEAERAf8B/AHwAfkB/wEAARABEQH/AcwCmQH/AQABEAERAf8BzAKZAf8BbQJsAfcDUQGh
AkwB/wGZAkwB/wGZAkwB/wMABf8DAAH/AwAB/wMzAf8DzA3/AwAB/wGZAkwB/wGZAkwB/wNhAeIB/wLn AcwCmQH/AZkBAAEVAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
Af8BAAEUARUC/wLeAf8BAAEUARUC/wHvAfwB/wEAARQBFQL/AeIB/AH/AQABFAEVAf8B/AHwAfkB/wEA Af8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BFQIAAf8BmQJIAf8BmQJIAf8BmQJIAf8BmQJI
ARQBFQH/AcwCmQH/AcwCmQH/AcwCmQH/AW0CbAH3A1EBoQGeAowB/wHpAr4B/wEAARQBFQH/AQABFAEV Af8DAAX/AwAB/wMAAf8DLwH/A8wN/wMAAf8BmQJIAf8BmQJIAf8DYQHiAf8C5wH/AQABEAERAv8C3gH/
Af8B+QLWAv8B6QHzAf8BAAEUARUB/wEAARQBFQH/AQABFAEVAf8B+QHoAewB/wEAARQBFQH/AeYCugH/ AQABEAERAv8B7wH8Af8BAAEQAREC/wHiAfwB/wEAARABEQH/AfwB8AH5Af8BAAEQAREB/wHMApkB/wHM
AeYCvQH/AeYCwAH/AaYClAH/A04BlDT/A/EB/wPqAf8DgAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/ ApkB/wHMApkB/wFtAmwB9wNRAaEBngKMAf8B6QK+Af8BAAEQAREB/wEAARABEQH/AfkC1gL/AekB8wH/
AwAF/wMAAf8DOwH/AwIB/wMAAf8DAAH/AwAF/wMAAf8BmQJMAf8BmQJMAf8BngKMAf8B6QK+Af8BAAEU AQABEAERAf8BAAEQAREB/wEAARABEQH/AfkB6AHsAf8BAAEQAREB/wHmAroB/wHmAr0B/wHmAsAB/wGm
ARUB/wHzAsUB/wH5AtYC/wHpAfMB/wEAARQBFQL/AekB8wH/AQABFAEVAf8B+QHoAewB/wEAARQBFQH/ ApQB/wNOAZQ0/wPxAf8D6gH/A4AB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMABf8DAAH/AzcB/wMA
AQABFAEVAf8B5gK9Af8B5gLAAf8BpgKUAf8DTgGUA10B0gHbAqgB/wEAARQBFQH/AeoCtwH/AfMCzQL/ Af8DAAH/AwAB/wMABf8DAAH/AZkCSAH/AZkCSAH/AZ4CjAH/AekCvgH/AQABEAERAf8B8wLFAf8B+QLW
Ae4B/AH/AQABFAEVAv8B0gH1Af8BAAEUARUC/wH0AfwB/wEAARQBFQL/AtgB/wEAARQBFQL/AuIB/wNi Av8B6QHzAf8BAAEQAREC/wHpAfMB/wEAARABEQH/AfkB6AHsAf8BAAEQAREB/wEAARABEQH/AeYCvQH/
AfYDQwF3BP8BmQEAARkJ/wGAAgAN/wGAAgAB/wGAAgAN/wGAAgAB/wGAAgAB/wOAAf8BmQJMAf8BmQJM AeYCwAH/AaYClAH/A04BlANdAdIB2wKoAf8BAAEQAREB/wHqArcB/wHzAs0C/wHuAfwB/wEAARABEQL/
Af8BmQJMAf8BmQJMAf8DAAX/AwIB/wMAAf8DDwH/AzsB/wM7Af8DAAX/AwAB/wGZAkwB/wGZAkwB/wNd AdIB9QH/AQABEAERAv8B9AH8Af8BAAEQAREC/wLYAf8BAAEQAREC/wLiAf8DYgH2A0MBdwT/AZkBAAEV
AdIB2wKoAf8BAAEUARUB/wHqArcB/wEAARQBFQL/Ae4B/AH/AQABFAEVAv8B0gH1Af8BAAEUARUC/wH0 Cf8BgAIADf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DgAH/AZkCSAH/AZkCSAH/AZkCSAH/AZkCSAH/
AfwB/wEAARQBFQL/AtgC/wLdAv8C4gH/A2IB9gNDAXcDVgGxAdUCogH/AQABFAEVAf8BAAEUARUB/wEA AwAF/wMAAf8DAAH/AwsB/wM3Af8DNwH/AwAF/wMAAf8BmQJIAf8BmQJIAf8DXQHSAdsCqAH/AQABEAER
ARQBFQL/AfYC/wFUAloB/wEAARQBFQH/AVQCWgL/AeAB5wH/AVQCWgH/AQABFAEVAf8BVAJaAv8C3QH/ Af8B6gK3Af8BAAEQAREC/wHuAfwB/wEAARABEQL/AdIB9QH/AQABEAERAv8B9AH8Af8BAAEQAREC/wLY
A1oB5AMwAUwE/wGZAQABGQn/AYACAAn/AYACABH/AYACAAH/A/EB/wPqAf8DgAH/AZkCTAH/AZkCTAH/ Av8C3QL/AuIB/wNiAfYDQwF3A1YBsQHVAqIB/wEAARABEQH/AQABEAERAf8BAAEQAREC/wH2Av8BUAJW
AZkCTAH/AZkCTAH/AwAJ/wOZAf8DDwH/AwAB/wMCAf8DAAX/AwAB/wGZAkwB/wGZAkwB/wNWAbEB1QKi Af8BAAEQAREB/wFQAlYC/wHgAecB/wFQAlYB/wEAARABEQH/AVACVgL/At0B/wNaAeQDMAFMBP8BmQEA
Af8BVAJaAf8BAAEUARUB/wFUAloC/wH2Av8BAAEUARUC/wHSAfUB/wEAARQBFQL/AeAB5wH/AQABFAEV ARUJ/wGAAgAJ/wGAAgAR/wGAAgAB/wPxAf8D6gH/A4AB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMA
Af8BAAEUARUB/wEAARQBFQL/At0B/wNaAeQDMAFMAzIBUAHDAr8S/wHsAfEC/wHbAecC/wHZAd4C/wLU Cf8DmQH/AwsB/wMAAf8DAAH/AwAF/wMAAf8BmQJIAf8BmQJIAf8DVgGxAdUCogH/AVACVgH/AQABEAER
Av8CzwL/As0C/wLSAf8BxgKtAf8DUwGsAxQBGwT/AZkBAAEZCf8BgAIACf8BgAIAAf8BgAIAAf8BgAIA Af8BUAJWAv8B9gL/AQABEAERAv8B0gH1Af8BAAEQAREC/wHgAecB/wEAARABEQH/AQABEAERAf8BAAEQ
Af8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BGQIAAf8BmQJMAf8BmQJMAf8BmQJMAf8BmQJMAf8DAAH/ AREC/wLdAf8DWgHkAzABTAMyAVABwwK/Ev8B7AHxAv8B2wHnAv8B2QHeAv8C1AL/As8C/wLNAv8C0gH/
A8AN/wPMAf8DRQH/AwAF/wMAAf8BmQJMAf8BmQJMAf8DMgFQAcMCvxL/AewB8QL/AdsB5wL/AdkB3gL/ AcYCrQH/A1MBrAMUARsE/wGZAQABFQn/AYACAAn/AYACAAH/AYACAAH/AYACAAH/AYACAAX/AYACAAH/
AtQC/wLPAv8CzQL/AtIB/wHGAq0B/wNTAawDFAEbBAADWgHAA/UK/wL+Av8C5wL/AuMC/wLeAv8C2QL/ AYACAAH/AYACAAH/ARUCAAH/AZkCSAH/AZkCSAH/AZkCSAH/AZkCSAH/AwAB/wPADf8DzAH/A0EB/wMA
AtQC/wLPAf8B9QLHAf8DXwHjAyMBNAMCAQME/wGZAQABGQH/AYACAAX/AYACAAn/AYACAAn/AYACAAX/ Bf8DAAH/AZkCSAH/AZkCSAH/AzIBUAHDAr8S/wHsAfEC/wHbAecC/wHZAd4C/wLUAv8CzwL/As0C/wLS
AYACAAH/A/EB/wPqAf8BGQIAAf8BmQJMAf8BmQJMAf8BmQJMAf8BmQJMAf8DDwH/AzMB/wPAGf8DAAH/ Af8BxgKtAf8DUwGsAxQBGwQAA1oBwAP1Cv8C/gL/AucC/wLjAv8C3gL/AtkC/wLUAv8CzwH/AfUCxwH/
AZkCTAH/AZkCTAH/BAADWgHAA/UK/wL+Av8C5wL/AuMC/wLeAv8C2QL/AtQC/wLPAf8B9QLHAf8DXwHj A18B4wMjATQDAgEDBP8BmQEAARUB/wGAAgAF/wGAAgAJ/wGAAgAJ/wGAAgAF/wGAAgAB/wPxAf8D6gH/
AyMBNAMCAQMEAAMXASADYgHvA/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFN ARUCAAH/AZkCSAH/AZkCSAH/AZkCSAH/AZkCSAH/AwsB/wMvAf8DwBn/AwAB/wGZAkgB/wGZAkgB/wQA
AwQBBgQABP8BmQIZCf8BgAIAAf8BgAIACf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DhgH/AZkCTAH/ A1oBwAP1Cv8C/gL/AucC/wLjAv8C3gL/AtkC/wLUAv8CzwH/AfUCxwH/A18B4wMjATQDAgEDBAADFwEg
AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/Aw8B/wMAAf8DDwH/A5kR/wMAAf8BmQJMAf8BmQJMAf8EAAMX A2IB7wP1Bv8C+AL/AuwC/wLnAv8C4wL/At4C/wLZAf8B9QLNAf8DbQH3AzABTQMEAQYEAAT/AZkCFQn/
ASADYgHvA/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFNAwQBBgwAAxcBIANa AYACAAH/AYACAAn/AYACAAH/AYACAA3/AYACAAH/AYACAAH/A4YB/wGZAkgB/wGZAkgB/wGZAkgB/wGZ
AcADxgL/AvcC/wLyAv8C7AL/AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMCAQMIAAT/AZkCGS3/A/EB/wPq AkgB/wGZAkgB/wMLAf8DAAH/AwsB/wOZEf8DAAH/AZkCSAH/AZkCSAH/BAADFwEgA2IB7wP1Bv8C+AL/
Af8DhgH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/Aw8B/wMAAf8DAgH/ AuwC/wLnAv8C4wL/At4C/wLZAf8B9QLNAf8DbQH3AzABTQMEAQYMAAMXASADWgHAA8YC/wL3Av8C8gL/
A10B/wPMBf8DAAH/AZkCTAH/AZkCTAH/CAADFwEgA1oBwAPGAv8C9wL/AvIC/wLsAv8C5wL/AuMB/wHG AuwC/wLnAv8C4wH/AcYCsQH/A14B0AMkATYDAgEDCAAE/wGZAhUt/wPxAf8D6gH/A4YB/wGZAkgB/wGZ
ArEB/wNeAdADJAE2AwIBAxgAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFaAwUBBxAACP8BzAKZ AkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMLAf8DAAH/AwAB/wNZAf8DzAX/AwAB/wGZ
Lf8D8QH/A8AB/wQAAZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/ AkgB/wGZAkgB/wgAAxcBIANaAcADxgL/AvcC/wLyAv8C7AL/AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMC
AZkCTAH/AwIB/wMAAf8DMwH/Aw8B/wGZAkwB/xQAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFa AQMYAAMyAVADUQGiA10B0gGMAokB/wNgAdQDVAGmAzcBWgMFAQcQAAj/AcwCmS3/A/EB/wPAAf8EAAGZ
AwUBBxAAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAHjA/8B8AEHAgABwQP/ AkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMAAf8DAAH/
AcABAwIAAYAB/wEIARABgAEBAwABfwIAAYAEAAE/BwABHwYAAYABDwYAAcABBwYAAeABAwYAAfABAQYA Ay8B/wMLAf8BmQJIAf8UAAMyAVADUQGiA10B0gGMAokB/wNgAdQDVAGmAzcBWgMFAQcQAAFCAU0BPgcA
AfgHAAH8BwAB/gEIAgABgAEBAgAB/wMAAYABAQIAAf8BgAH/AfABwAEDAgAB/wHAAf8B+AHwAQ8CAAHg AT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/+BAAHjA/8B8AEHAfwBPwHBA/8BwAEDAfABDwGA
AQMCAAGAAQEB4AEDAcABAQQAAcABAQGABQABgAEAAYAFAAGAQQABgAUAAYABAAGAAQEEAAGAAQEBwAED Af8BCAEQAYABAQHgAQcBAAF/AgABgAEAAcABAwEAAT8EAAGAAQEBAAEfBAABgAEBAYABDwYAAcABBwYA
BAABwAEDAfABDwIAAYABAQHwAQ8L AeABAwYAAfABAQYAAfgFAAGAAQEB/AUAAYABAQH+AQgCAAGAAQEBwAEDAf8DAAGAAQEB4AEHAf8BgAH/
AfABwAEDAfABDwH/AcAB/wH4AfABDwH8AT8B4AEDAgABgAEBAeABAwHAAQEEAAHAAQEBgAUAAYABAAGA
BQABgEEAAYAFAAGAAQABgAEBBAABgAEBAcABAwQAAcABAwHwAQ8CAAGAAQEB8AEPCw==
</value> </value>
</data> </data>
<data name="listChoices.TabIndex" type="System.Int32, mscorlib"> <data name="listChoices.TabIndex" type="System.Int32, mscorlib">
@@ -326,7 +349,10 @@
<value>Courier New, 8pt</value> <value>Courier New, 8pt</value>
</data> </data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing"> <data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 153</value> <value>4, 189</value>
</data>
<data name="textBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib"> <data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@@ -335,7 +361,7 @@
<value>Vertical</value> <value>Vertical</value>
</data> </data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing"> <data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 7</value> <value>1051, 8</value>
</data> </data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib"> <data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -362,13 +388,16 @@
<value>Fill</value> <value>Fill</value>
</data> </data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing"> <data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 422</value> <value>4, 519</value>
</data>
<data name="tableLayoutPanel2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib"> <data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
</data> </data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing"> <data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 35</value> <value>1051, 43</value>
</data> </data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib"> <data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>30</value> <value>30</value>
@@ -386,16 +415,19 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms"> <data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="buttonOk" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,37,59399,Percent,22,93233,Percent,19,17293,Percent,20,11278" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value> <value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="buttonOk" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,37.59399,Percent,22.93233,Percent,19.17293,Percent,20.11278" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data> </data>
<data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
</data> </data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing"> <data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 166</value> <value>4, 205</value>
</data>
<data name="pictureBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing"> <data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 7</value> <value>1051, 8</value>
</data> </data>
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms"> <data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>Zoom</value> <value>Zoom</value>
@@ -418,95 +450,116 @@
<data name="tableLayoutPanelMeta.ColumnCount" type="System.Int32, mscorlib"> <data name="tableLayoutPanelMeta.ColumnCount" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
</data> </data>
<data name="listMetadata.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <metadata name="dataGridViewTextBoxColumnTrackNo.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Fill</value> <value>True</value>
</data> </metadata>
<data name="listMetadata.Location" type="System.Drawing.Point, System.Drawing"> <data name="dataGridViewTextBoxColumnTrackNo.HeaderText" xml:space="preserve">
<value>3, 3</value>
</data>
<data name="listMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>388, 231</value>
</data>
<data name="listMetadata.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;listMetadata.Name" xml:space="preserve">
<value>listMetadata</value>
</data>
<data name="&gt;&gt;listMetadata.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listMetadata.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value>
</data>
<data name="&gt;&gt;listMetadata.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="Title.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="Title.Text" xml:space="preserve">
<value>Title</value>
</data>
<data name="Title.Width" type="System.Int32, mscorlib">
<value>210</value>
</data>
<data name="TrackNo.DisplayIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="TrackNo.Text" xml:space="preserve">
<value>#</value> <value>#</value>
</data> </data>
<data name="TrackNo.Width" type="System.Int32, mscorlib"> <data name="dataGridViewTextBoxColumnTrackNo.MinimumWidth" type="System.Int32, mscorlib">
<value>30</value> <value>30</value>
</data> </data>
<data name="Start.Text" xml:space="preserve"> <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">
<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">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackStart.HeaderText" xml:space="preserve">
<value>Start</value> <value>Start</value>
</data> </data>
<data name="Start.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms"> <data name="dataGridViewTextBoxColumnTrackStart.MinimumWidth" type="System.Int32, mscorlib">
<value>Right</value> <value>50</value>
</data> </data>
<data name="Length.Text" xml:space="preserve"> <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">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackLength.HeaderText" xml:space="preserve">
<value>Length</value> <value>Length</value>
</data> </data>
<data name="Length.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms"> <data name="dataGridViewTextBoxColumnTrackLength.MinimumWidth" type="System.Int32, mscorlib">
<value>Right</value> <value>50</value>
</data> </data>
<data name="listTracks.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="dataGridViewTextBoxColumnTrackLength.Width" type="System.Int32, mscorlib">
<value>58</value>
</data>
<data name="dataGridViewTracks.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
</data> </data>
<data name="listTracks.Location" type="System.Drawing.Point, System.Drawing"> <data name="dataGridViewTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>397, 3</value> <value>528, 3</value>
</data> </data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing"> <data name="dataGridViewTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>388, 231</value> <value>520, 284</value>
</data> </data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib"> <data name="dataGridViewTracks.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>6</value>
</data> </data>
<data name="&gt;&gt;listTracks.Name" xml:space="preserve"> <data name="&gt;&gt;dataGridViewTracks.Name" xml:space="preserve">
<value>listTracks</value> <value>dataGridViewTracks</value>
</data> </data>
<data name="&gt;&gt;listTracks.Type" xml:space="preserve"> <data name="&gt;&gt;dataGridViewTracks.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.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;listTracks.Parent" xml:space="preserve"> <data name="&gt;&gt;dataGridViewTracks.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value> <value>tableLayoutPanelMeta</value>
</data> </data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve"> <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">
<value>True</value>
</metadata>
<metadata name="Value.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewMetadata.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="dataGridViewMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="dataGridViewMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>519, 284</value>
</data>
<data name="dataGridViewMetadata.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.Name" xml:space="preserve">
<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>
</data>
<data name="&gt;&gt;dataGridViewMetadata.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.ZOrder" xml:space="preserve">
<value>1</value> <value>1</value>
</data> </data>
<data name="tableLayoutPanelMeta.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="tableLayoutPanelMeta.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
</data> </data>
<data name="tableLayoutPanelMeta.Location" type="System.Drawing.Point, System.Drawing"> <data name="tableLayoutPanelMeta.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 179</value> <value>4, 221</value>
</data>
<data name="tableLayoutPanelMeta.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="tableLayoutPanelMeta.RowCount" type="System.Int32, mscorlib"> <data name="tableLayoutPanelMeta.RowCount" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
</data> </data>
<data name="tableLayoutPanelMeta.Size" type="System.Drawing.Size, System.Drawing"> <data name="tableLayoutPanelMeta.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 237</value> <value>1051, 290</value>
</data> </data>
<data name="tableLayoutPanelMeta.TabIndex" type="System.Int32, mscorlib"> <data name="tableLayoutPanelMeta.TabIndex" type="System.Int32, mscorlib">
<value>32</value> <value>32</value>
@@ -524,7 +577,7 @@
<value>4</value> <value>4</value>
</data> </data>
<data name="tableLayoutPanelMeta.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms"> <data name="tableLayoutPanelMeta.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="listMetadata" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="listTracks" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,50,Percent,50" /&gt;&lt;Rows Styles="Percent,50" /&gt;&lt;/TableLayoutSettings&gt;</value> <value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="dataGridViewTracks" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="dataGridViewMetadata" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,50,Percent,50" /&gt;&lt;Rows Styles="Percent,50" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data> </data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value> <value>Fill</value>
@@ -532,11 +585,14 @@
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing"> <data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib"> <data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>5</value> <value>5</value>
</data> </data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing"> <data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>794, 460</value> <value>1059, 566</value>
</data> </data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib"> <data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>29</value> <value>29</value>
@@ -554,29 +610,29 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms"> <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,185,Percent,5,Percent,5,Percent,90,Absolute,49" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="columnHeaderMetadataValue.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="columnHeaderMetadataValue.Text" xml:space="preserve">
<value>Value</value>
</data>
<data name="columnHeaderMetadataValue.Width" type="System.Int32, mscorlib">
<value>240</value>
</data>
<data name="columnHeaderMetadataName.DisplayIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="columnHeaderMetadataName.Text" xml:space="preserve">
<value>Field</value>
</data>
<data name="columnHeaderMetadataName.Width" type="System.Int32, mscorlib">
<value>120</value>
</data> </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=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>127, 17</value> <value>127, 17</value>
</metadata> </metadata>
<metadata name="Item.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="Item.HeaderText" xml:space="preserve">
<value>Column1</value>
</data>
<data name="Item.MinimumWidth" type="System.Int32, mscorlib">
<value>50</value>
</data>
<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">
<value>True</value>
</metadata>
<data name="Value.HeaderText" xml:space="preserve">
<value>Column1</value>
</data>
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
@@ -584,13 +640,16 @@
<value>51</value> <value>51</value>
</metadata> </metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value> <value>8, 16</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>794, 460</value> <value>1059, 566</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>591, 496</value> <value>782, 600</value>
</data> </data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms"> <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value> <value>CenterParent</value>
@@ -610,48 +669,48 @@
<data name="&gt;&gt;imageList1.Type" xml:space="preserve"> <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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;columnHeaderMetadataValue.Name" xml:space="preserve">
<value>columnHeaderMetadataValue</value>
</data>
<data name="&gt;&gt;columnHeaderMetadataValue.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;columnHeaderMetadataName.Name" xml:space="preserve">
<value>columnHeaderMetadataName</value>
</data>
<data name="&gt;&gt;columnHeaderMetadataName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Title.Name" xml:space="preserve">
<value>Title</value>
</data>
<data name="&gt;&gt;Title.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;TrackNo.Name" xml:space="preserve">
<value>TrackNo</value>
</data>
<data name="&gt;&gt;TrackNo.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Start.Name" xml:space="preserve">
<value>Start</value>
</data>
<data name="&gt;&gt;Start.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Length.Name" xml:space="preserve">
<value>Length</value>
</data>
<data name="&gt;&gt;Length.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;backgroundWorker1.Name" xml:space="preserve"> <data name="&gt;&gt;backgroundWorker1.Name" xml:space="preserve">
<value>backgroundWorker1</value> <value>backgroundWorker1</value>
</data> </data>
<data name="&gt;&gt;backgroundWorker1.Type" xml:space="preserve"> <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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </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>
</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>
</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>
</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>
</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>
</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>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmChoice</value> <value>frmChoice</value>
</data> </data>

View File

@@ -1144,7 +1144,7 @@ namespace JDP {
// //
resources.ApplyResources(this.labelEncoderExtension, "labelEncoderExtension"); resources.ApplyResources(this.labelEncoderExtension, "labelEncoderExtension");
this.labelEncoderExtension.DataBindings.Add(new System.Windows.Forms.Binding("ImageKey", this.encodersBindingSource, "DotExtension", true, System.Windows.Forms.DataSourceUpdateMode.Never)); this.labelEncoderExtension.DataBindings.Add(new System.Windows.Forms.Binding("ImageKey", this.encodersBindingSource, "DotExtension", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.labelEncoderExtension.MinimumSize = new System.Drawing.Size(100, 16); this.labelEncoderExtension.MinimumSize = new System.Drawing.Size(133, 21);
this.labelEncoderExtension.Name = "labelEncoderExtension"; this.labelEncoderExtension.Name = "labelEncoderExtension";
// //
// tabPage11 // tabPage11
@@ -1222,7 +1222,7 @@ namespace JDP {
// labelDecoderExtension // labelDecoderExtension
// //
resources.ApplyResources(this.labelDecoderExtension, "labelDecoderExtension"); resources.ApplyResources(this.labelDecoderExtension, "labelDecoderExtension");
this.labelDecoderExtension.MinimumSize = new System.Drawing.Size(100, 16); this.labelDecoderExtension.MinimumSize = new System.Drawing.Size(133, 21);
this.labelDecoderExtension.Name = "labelDecoderExtension"; this.labelDecoderExtension.Name = "labelDecoderExtension";
// //
// tabPage4 // tabPage4
@@ -1393,7 +1393,6 @@ namespace JDP {
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = btnCancel; this.CancelButton = btnCancel;
this.ControlBox = false;
this.Controls.Add(this.tabControl1); this.Controls.Add(this.tabControl1);
this.Controls.Add(btnCancel); this.Controls.Add(btnCancel);
this.Controls.Add(this.btnOK); this.Controls.Add(this.btnOK);

File diff suppressed because it is too large Load Diff