diff --git a/source/ChanSort.Loader.Philips/ChanLstBin.cs b/source/ChanSort.Loader.Philips/ChanLstBin.cs
index c28f270..cd6e7c4 100644
--- a/source/ChanSort.Loader.Philips/ChanLstBin.cs
+++ b/source/ChanSort.Loader.Philips/ChanLstBin.cs
@@ -123,7 +123,29 @@ namespace ChanSort.Loader.Philips
}
if (errors != "")
+ {
this.log?.Invoke(errors);
+
+ if (View.Default != null) // can't show dialog while unit-testing
+ {
+
+ var dlg = View.Default.CreateActionBox(Resources.WarningChecksumErrorMsg);
+ dlg.AddAction(Resources.WarningChechsumErrorIgnore, 1);
+ dlg.AddAction(Resources.Cancel, 0);
+ dlg.ShowDialog();
+ switch (dlg.SelectedAction)
+ {
+ case 0:
+ throw new FileLoadException("Aborted due to checksum errors");
+ }
+ }
+ }
+
+ var info = Resources.InfoRestartAfterImport;
+ if (this.VersionMajor >= 25 && this.VersionMajor <= 45)
+ info += "\n" + Resources.InfoIgnoreImportError;
+
+ View.Default?.MessageBox(info, "Philips");
}
public void Save(string chanLstBinPath)
diff --git a/source/ChanSort.Loader.Philips/ChanSort.Loader.Philips.csproj b/source/ChanSort.Loader.Philips/ChanSort.Loader.Philips.csproj
index b306e2e..d7c7333 100644
--- a/source/ChanSort.Loader.Philips/ChanSort.Loader.Philips.csproj
+++ b/source/ChanSort.Loader.Philips/ChanSort.Loader.Philips.csproj
@@ -72,6 +72,11 @@
+
+ True
+ True
+ Resources.resx
+
@@ -85,5 +90,18 @@
Always
+
+
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.Designer.cs b/source/ChanSort.Loader.Philips/Resources.Designer.cs
new file mode 100644
index 0000000..e097325
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.Designer.cs
@@ -0,0 +1,118 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace ChanSort.Loader.Philips {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ChanSort.Loader.Philips.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cancel.
+ ///
+ internal static string Cancel {
+ get {
+ return ResourceManager.GetString("Cancel", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The TV may incorrectly show that the import failed, but that can be ignored..
+ ///
+ internal static string InfoIgnoreImportError {
+ get {
+ return ResourceManager.GetString("InfoIgnoreImportError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to INFO: After importing the list back in your TV, unplug it and plug it back in after a few seconds..
+ ///
+ internal static string InfoRestartAfterImport {
+ get {
+ return ResourceManager.GetString("InfoRestartAfterImport", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ignore the error and edit the list anyway.
+ ///
+ internal static string WarningChechsumErrorIgnore {
+ get {
+ return ResourceManager.GetString("WarningChechsumErrorIgnore", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to WARNING: There were checksum errors in the loaded list!
+ ///
+ ///There are 2 situations how this can happen:
+ ///
+ ///- TV's internal channel list is corrupted (e.g. after a firmware update)
+ /// This can be solved by running a new channel scan or resetting the TV.
+ /// After that export the list again and open it with ChanSort.
+ /// Trying to edit and import the currently broken file can lead to unexpected behavior of the TV.
+ ///
+ ///- Bad USB-Stick (bad memory cells or incompatible file format)
+ /// Try using a Stick <= 16GB [rest of string was truncated]";.
+ ///
+ internal static string WarningChecksumErrorMsg {
+ get {
+ return ResourceManager.GetString("WarningChecksumErrorMsg", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/source/ChanSort.Loader.Philips/Resources.cs.resx b/source/ChanSort.Loader.Philips/Resources.cs.resx
new file mode 100644
index 0000000..cbd1aae
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.cs.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Storno
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.de.resx b/source/ChanSort.Loader.Philips/Resources.de.resx
new file mode 100644
index 0000000..de6b540
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.de.resx
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ INFO: Bitte schalten Sie Ihren Fernseher nach dem Import aus, ziehen den Netzstecker und stecken ihn nach einigen Sekunden wieder an.
+
+
+ Ihr Fernseher zeigt eventuell eine Falschmeldung, dass der Import fehlschlug. Dies kann ignoriert werden.
+
+
+ WARNUNG: Beim Laden der Liste wurden Prüfsummenfehler festgestellt!
+
+Es gibt 2 typische Ursachen für dieses Problem:
+
+- Die interne Senderliste des Fernsehers ist beschädigt (z.B. nach einem Firmware-Update)
+ Dies kann durch einen neuen Suchlauf oder einen Reset behoben werden.
+ Exportieren Sie danach die Liste erneut und öffnen Sie sie in ChanSort.
+ Wenn Sie die Liste trotz Fehler bearbeiten und importieren, wird sie vermutlich nicht funktionieren.
+
+- Defekter USB-Stick (Speicherfehler oder inkomptibles Dateisystem)
+ Verwenden Sie nach Möglichkeit einen Stick <= 16GB formatiert mit FAT32 (nicht NTFS oder exFAT)
+
+
+ Fehler ignorieren und Datei trotzdem bearbeiten
+
+
+ Abbrechen
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.es.resx b/source/ChanSort.Loader.Philips/Resources.es.resx
new file mode 100644
index 0000000..81ae9bd
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.es.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Cancelar
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.hu.resx b/source/ChanSort.Loader.Philips/Resources.hu.resx
new file mode 100644
index 0000000..3e618b8
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.hu.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Mégse
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.pl.resx b/source/ChanSort.Loader.Philips/Resources.pl.resx
new file mode 100644
index 0000000..41ee716
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.pl.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Anuluj
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.resx b/source/ChanSort.Loader.Philips/Resources.resx
new file mode 100644
index 0000000..e211d74
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.resx
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ The TV may incorrectly show that the import failed, but that can be ignored.
+
+
+ INFO: After importing the list back in your TV, unplug it and plug it back in after a few seconds.
+
+
+ WARNING: There were checksum errors in the loaded list!
+
+There are 2 situations how this can happen:
+
+- TV's internal channel list is corrupted (e.g. after a firmware update)
+ This can be solved by running a new channel scan or resetting the TV.
+ After that export the list again and open it with ChanSort.
+ Trying to edit and import the currently broken file can lead to unexpected behavior of the TV.
+
+- Bad USB-Stick (bad memory cells or incompatible file format)
+ Try using a Stick <= 16GB formatted with FAT32 (not NTFS nor exFAT)
+
+
+ Ignore the error and edit the list anyway
+
+
+ Cancel
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.ro.resx b/source/ChanSort.Loader.Philips/Resources.ro.resx
new file mode 100644
index 0000000..6608474
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.ro.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Anulare
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Philips/Resources.tr.resx b/source/ChanSort.Loader.Philips/Resources.tr.resx
new file mode 100644
index 0000000..f2f4486
--- /dev/null
+++ b/source/ChanSort.Loader.Philips/Resources.tr.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Vazgeç
+
+
\ No newline at end of file
diff --git a/source/ChanSort.Loader.Sony/Serializer.cs b/source/ChanSort.Loader.Sony/Serializer.cs
index dd00ce5..f46d1e6 100644
--- a/source/ChanSort.Loader.Sony/Serializer.cs
+++ b/source/ChanSort.Loader.Sony/Serializer.cs
@@ -526,23 +526,20 @@ namespace ChanSort.Loader.Sony
int start;
int end;
- if (this.isEFormat)
+ // files with CRLF as line separator will calculate the checksum as if the line separator was just LF
+ // files in the e-format include a trailing LF after in the checksum
+
+ if (this.newline == "\n")
{
- // files with the typo-element "1.1.0" differ from the other formats:
- // - "\n" after the closing Tag is included in the checksum,
- // - the file's bytes are used as-is for the calculation, without CRLF conversion
start = FindMarker(data, "");
- end = FindMarker(data, "") + 10; // including the \n at the end
+ end = FindMarker(data, "") + 9 + (isEFormat ? 1 : 0); // e-Format includes the \n at the end
}
else
{
start = dataAsText.IndexOf("", StringComparison.Ordinal);
- end = dataAsText.IndexOf("", StringComparison.Ordinal) + 9;
- // the TV calculates the checksum with just LF as newline character, so we need to replace CRLF first
+ end = dataAsText.IndexOf("", StringComparison.Ordinal) + 9 + (isEFormat ? 2 : 0); // e-Format with CRLF separator includes the newline in the checksum
var text = dataAsText.Substring(start, end - start);
- if (this.newline == "\r\n")
- text = text.Replace("\r\n", "\n");
-
+ text = text.Replace("\r\n", "\n");
data = Encoding.UTF8.GetBytes(text);
start = 0;
end = data.Length;
diff --git a/source/ChanSort/ActionBox.Designer.cs b/source/ChanSort/ActionBox.Designer.cs
index 0b78b08..6a0e0a0 100644
--- a/source/ChanSort/ActionBox.Designer.cs
+++ b/source/ChanSort/ActionBox.Designer.cs
@@ -43,6 +43,7 @@ namespace ChanSort.Ui
//
resources.ApplyResources(this.lblMessage, "lblMessage");
this.lblMessage.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("lblMessage.Appearance.Font")));
+ this.lblMessage.Appearance.Options.UseFont = true;
this.lblMessage.Name = "lblMessage";
//
// imageCollection1
diff --git a/source/ChanSort/ActionBox.resx b/source/ChanSort/ActionBox.resx
index 52cbf26..b20e3fb 100644
--- a/source/ChanSort/ActionBox.resx
+++ b/source/ChanSort/ActionBox.resx
@@ -112,16 +112,16 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
Top, Left, Right
-
+
Tahoma, 9pt
@@ -133,9 +133,9 @@
15, 11
- 527, 14
+ 668, 14
-
+
1
@@ -154,7 +154,7 @@
0
-
+
17, 17
@@ -163,13 +163,13 @@
- AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMi4yLCBWZXJzaW9uPTEyLjIu
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMC4xLCBWZXJzaW9uPTIwLjEu
OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv
a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAACAAAAAgAAAACQUAAAAP
- BQAAANo+AAACtgQAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAAAARnQU1BAADX+28z
+ BQAAAAs+AAACtgQAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAAAARnQU1BAADX+28z
GAEAAAAgY0hSTQAAbJsAAHJvAAD2rgAAhYMAAG73AADoQQAAMXQAABdsobYtmwAAAAlwSFlzAAALEAAA
CxABrSO9dQAABCxJREFUWEfFlclLW1EUxl0UQSp0IRQKpd0Vuikthf4J3Rah4uymXblxJSIixgFnJSoO
iCgOqAtBpURUnFBRiVIHVERRcWhVNInGxFQUT893yw1vSF4cIr3wZbj3cc/vfuec+0KI6L9KN1FbW2vt
@@ -284,170 +284,166 @@
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
- gHxfDrGKEHzhv9Wvm5APvz6I/QuZzBFpeiSaDwAAAABJRU5ErkJggn0KAACJUE5HDQoaCgAAAA1JSERS
- AAAAIAAAACAIBgAAAHN6evQAAAABc1JHQgCuzhzpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAABJ0QAA
- SdEBBfyrlQAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuN6eEncwAAAntSURBVFhHnZcJVNT1
- FsevgGyiqBiEmqmkT5+5ZAj4emVohhxEEBQQDQSUNRwVlEWNdQQVFBWxMHu5lTyzl2K2aZkppLYIirLM
- DDPDpj4BCZSZAfl2/38GyaOVdc+5Z+Z/zpzf53u33/8O/Y6ZmxK9Zk0UM5QonX3j33Tp00QJFkSefOaQ
- 7qP/2IxtiCSLiNTbiLo+IsLJv+CfCd6H8LkB4QtDwpdGhBN9CXvZo4yoaYwBZTNjcDfqUbOcRlS4h8Ff
- W1vj8sKFKI+NRWViIirj41ERF4eKNWtQHhOD8lWrcF0iwbXoaFyLjERZaCiuhgTj6tJAXH1jMa74LUCp
- lztK5rqgxMUZPzpMRtFTFig0J3j0pSvGRGP0zAdmNJXoaAFH8MOcOaj/8EM0HD6M+oMHUff++6h5912o
- 334bqtxcKHNyUJ2VBUVmJuTp6ZAlJ0G2YR1kiXGQrY1BVYwEVSujUBUdhqqIEFSGBqAyxB8VAQtweepY
- fDeA4GVMZcy06kazDSIKzCW6f/HVV3Hz2DHcOHoUDQUFqD90CHX79qF2717UvPMOVLt2PSRAIU2HIjUZ
- iqT1UKyPhyIhBoq1EihWR0EuCYP8zRDIIwIhX+4PWbAPZAFeKJ0yEqcHE543op16PBnOJSo91b8/6vbv
- F+E3jhx5KAO1+gzI9BlQZmdBuTkTyo3pUKYlQZm8DsoNcVAmxkAeJ0FlbBSUq8KgXBECZVQAqsP8Ub3M
- B9VBXpAvckXJUCOsG0AtzOY+JZqQRKT9ycNDhIrOJXgQ/XvvQZ2fj+/5+fsThajK2QZV9haoNmdAlZEG
- VXoSVCnroE6KQ/W6GHyWvQknd+ZAtjoU6pXBUEcHQB3hD3WoD1QhXlAtnYcK++E4aUOwMqAl1J9HJJ9r
- L0tNFTNQd+BA96cQuQDfswcXPjiE5qYm6HQ6FBceRxVD1JulqMlIQY10A2pSE6BKWosvcraIv7vb1oZP
- t2dBvioItSveQG3UItSGL0Tt8vmoDXZHtcskXBtBGN2XMoWZCDhgYoIaBgm17nHhWc11v8CRC4f2mCDi
- /P8+hmxTGmozklArXQ91ajy+2pH90O/aWEThVi6TZAkaov3QELkADWGeaFg2F7Xe0yEfTZhiSnmCgMAC
- W1uod+8W6yw6f1fl5aGYs9Hc1Kg/std0Wi3OflQA+UaOPj0Bp3K3obm5F95jba2tOLYlncvgi5tR3rgZ
- 7oGby91wY/ErUI0lTDWl3aKA/44YAeX27VDt2CG6kv08l6Cp8VF4j2lZxJnDh0T4ncfAe6yVRXySmcxl
- mI/bke64HeaK/wfOQN0/CS+a6QUUDBsmjlZ1drbocvazLOCXlhb9MY83QUTLnTv6p8dbe3s7jm3nnony
- QFOUG5rDXdAU9DJuTibY99MLOGRuDkVGxkMuy8zAmXf3/Cngj0yAH9+5BbWS+WhZ6Y6WFa5oeXM2Wpb9
- C42OhGkWegH7eQoq+LoVJkFwObsiLYVvumR8/XYe7txp1h/55CbAC3OzUB/jhdY189Aa64a21S5oWzkL
- bWEOaJnBAgb8RkBpQACqNmwQXf7WBvF2Ey6Y6pRErnMO1/nJRWgYfmJXFhrivNGW4IG78XNxL24O2te+
- hvZYZ7RHTsVdF4LDwN8I+NHNTXzhVMbznc73uiJhDWTRoagK9kO5jyv2BfqiRqXSI37fhM7PlwSh3m8c
- 2pZNxr0oB2hiZ0CbOJt9FnQJztBKpkLjaQzHwX16BZybMAEXpjuhaPwYnLe1wrn+BijmF8fFQYQLQwip
- jpOgfkIBW4O9oHyFxCjb3fpA49EXmgUW0AQOgzZyArRvToJmsTUch/TtFfA5+1f8Hv/amHDWjHDegsED
- CcVWTw7vMUFEzjIv1LkyeCGDF1lBE2ALTdAIaJaNhjZ0DLRhY+FoY9Yr4AteJE7xAnHGhLPRj8EcfRFH
- n+Lw1+A9JooI90GdL4MFaPg4MXIh/dpV06Bd7QBHW4teAV8K0fPm0hP9OY7+78J7TBQRtRj1yydCG+MI
- bdzL3AczoV3P/fCWCxyHD+wVcIpXqG84+u94aznL0SfbT/xTuACoq63RPz3ehJswZ8VSHkdn6FLdoZPO
- hy5zIXSbfOE4wqpbwAFO/2lO/7em3dEXWRLSJoxCeVmZ/phHTWy2IG9kvz7pD6ejsfE2ciIXoTGFwVlL
- oMsJgm7ncuhyw+A0yqZbwMHfNF9Rf+58Tv8l7vyNEx8vQoBnL/WGnG+zRmfCdrfHi2jkd4lQgkapD3Q7
- QqDbHYWOPavQ8d4adLwfBye7YaKAgIOc/jPmRmL6hea7xCvTz08RLtsSMieziGu9IkR4oDeq7Em8ze6+
- TvhlriF2eNo/JOIBfOMi6HaFd4P3JaDjg2R0fLQJHUcy4ThmRJ64kOxlAcV2w1E02ATfc/p/4NG7bE24
- OpRQ9gxhywujUMEiBHhWgDcqphCaXyK0ziTccyVovMzwi78Ndvr+WxTRDfdnuB/DI9CxNxYdh5JEaOdn
- 76Cz+BNoT+Rh3DNPZ4orWaohac8Ps0KpsxN+GN4fP7KAEl6ZyobxO+JZQiUvD9n2o5Dp545rEwi3HQh3
- Xia0zeaLxt0AGt+BPOPPojXieex8YzZyIvzQlLaA6xzK8BiGc9RHt6Dz2w9xv/ISOi99ivIPtsF6kOUS
- QYChhyGVnjXvg9KZTrjuMQtljmNx5RljXBvOcBYgtyNU8wJxfRzhJkff6KRPP990wpWqWfwUtMufg3al
- PVrjndGUNI+bbSk68iXoOLABHZ/m4X7JaXRVl6BLeUUUkBsf9WAppUF9KHCvKa/lwwei3HMWZL5zUO3v
- CoXLFCjsbaAYawD1Pwj1HP2tqYSm6Vx3bj4x/d5m4i2njRgPbex06JLm8Ihx6vNXovP4DtxnWFfFxW54
- bTnuXy/CrXOFmDZx/IO1XDCjaYZ09CSP4E+jB6Nq/kwoA+aiJsQD9eFeuBnphVtBs3Db1x5NC8ajxXsk
- 2nyHQ7OEwXyliuB0z+5mO5yOzlP/QefFQty/fFoEdsl/QpfqKn8vRnvJGYQt8n74j4neLKcbUeERS+q6
- bGuI6xOGQPbSaKhdJ6N+oRNuLZ2JpvA5aFk9D22JXmhP4Rpn8nhtDejt8v3r0FEgRccn29D5eT46vzmI
- zqKPcf/iCXReOI4bZz7Gcl/PK6Ymxo/8NesxY1sDkizrR+qDQ6jrAjdh+SjugecIKq5/3fPcAy9yD/AE
- tMziHnAzwD0fS9zjBmyPnoL2+BnQpHlAszUQWi6BhpuvuWAzft6TjixJcNML48dkMYMn/8/N3KwPvTbU
- iGKe7Uvp7NKRxiQdJbgJSUebspuT1K4fu4WB1G6AkdTO0kRqN8hMamfVT2o3ZIDUznqg1M5msHSkjVXC
- IAvz3/l7TvQr893zMDR/cVoAAAAASUVORK5CYIIqBwAAiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYA
- AABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgA
- AHUwAADqYAAAOpgAABdwnLpRPAAABqhJREFUWEftl3tQlFUYxrdpuljN1DjT1IhNTZk1JdY0NV0sU8QL
- CYooaAQoKCyS3BdQrnGxkKtFiOEFAUUCZaF0YdlluQSCUIaxu18LEqmIAQKCLLcFn97zsQbFWk5bM/3R
- O/Pb/Xb3nOd9vnf3nPes4D8VCx3iH3zqnfjFD5nu3nDvC1H/GPcviLK7Z8Fuu0dfjbWZbxa3UCDAXfqU
- 08LW9u4FFmlxSzfna/3iKiZCPq36xxFGyMdft8vseOG9z1fps07Fgwt2PfaGbZZSXNmFfyu0o0DkFyrM
- M9+XqE87Ffc9GfTUcpfcC+3dY+i/wRjFxMRNjI/fhM4Ixkmjf3AM3X0jpAdIqq/iabPUdH3aaTEvcK65
- Sy6nbB1Ea/sArnRpodPdxMjYxN9knGdMN4GOriG0XOpHV+8wTsgu4Rnz1P36rFMxiwwsc87las734RzX
- g5aL/RgloaGRcaNgGi2XBtCg6obm534c+eqn2xsw25LLlZzphKK+A42aHgyPjmNwSGcUTON8cy/kdVdQ
- r7yGfXnNmL/idgYcj3P58naIFRdxprET2uFxXKffgzEwjdrzXSiQt0FGJpKyOTy/ar8BA88FzFnilKM6
- VNiGjMJmfvANrQ69/aNGwTTK6jpwWNyM/NKfEXOgCc9bGDAw+6VgkyVOx9TJORokH1WisPzib79eY2Aa
- RaSVlK3EwYJmBKd8jxcNGZj7RrDJux8cU0cdUCEi7RxyJK18CTt7ho2CaRwvbkXEvnOIz1TCJ74BpqvT
- DRt42/6oOiD5e/jE1eHgSQ16B0ZxtXvIKNjXcEis4TXDUs9BGF0HUyuDBmJMFpEB4e56OIdX4bMcFa5d
- H0F7p9YomEYKaTmHfwPP2Do4hlTjZauDMw08axZj8tamo2obURXWesuw5/B59A2M0YY0ZBR9VMU9GT/A
- xlcO+12VsPRS4BXr2xh4kwys2F6Gd7acQtDeBtoRb0B5oc8omAbTWuxyGiu3S7FMWIrXbA79uQEzVwlW
- upfwlVgzHa87ZNocpsG0zLZJYO5WAvM7MWDuVsxPeJdcL9k6ydKtEt4YY5lrMQ8bx7j1mn22lOYt1c9Z
- QvOZxmTyYiwX3oGBlR4KrCDHqzyksPRkdyHHOt8y2PiVYYO/ArYiBewCynk2Bk7Crtn77PP1NI6vHFXC
- ckcpLEiHVYAlZyxzu50BWgVsGa7zq+KF7ERlsPQohsX201j9oQRWOyRY61UMa2Kdd8kMrL0YxXAMLsfm
- 0Eo47KrA+0FkMIAZK4O1jxxWXnJYfCjH64YMsGVIzUjtFFaLbZE1WONRhM2ifIQkyhCeLEdokhzBCaWE
- zCAhhG/0KawR5sE3vh6en9Rie0wN3KKq4RJRRcuvkl8FG0QVeNPWgAG2Fa9yzVN7fNIA34QGrHYvQFlN
- C3+Suck//nUMakewxj2PT8aq4ETPjiEVVJUKuJMZ95gzcAqtxtsbMwwbsBLmqwM/bUR4WiPsfL6GtEpD
- y0gLv7hq5EkaeSPD1OOnc6vv07kD7b/08wYc6E5ZcidmgnChjU2UWA9RUj2ZqMNi+8yZBmY9G2yyfodY
- HZWuREKmCk5BEpwu56BuG8C2iHJknKjnj1gD1Fz+CGs4QyMTaLvch/U7TsB7z1l+672Ff8JZfET9JZz6
- gX/CtzBzzNynTzsVzMAmv0J1YrYGafkauIaVoEimRlNLL4SRZODkd3ySHtrbf8f1UdpuR8mEDpq2Hmzy
- Ock3M5aMNSB2HbmfGtGRH2hHbEJISiOWO2Wn6dNOCzLwgahInZbfiqzTrfCMlkEsVeFbdRecQxXUUNR0
- tzp00rmOZ1rH+4VgZpQt3XAUiamdq5CU1YRkasE81N5Tv+SQcpxDdHoTVjgfnfkVCOb6mjjv+lqTeeoi
- ChSX4B9bhhMlKlymhpKaq4K09goGh6kCA7op+sd4rhED2glwP/XAeWcRnfsu4DAdatjBJqOwBUeKJjkk
- bkFCFoeVzlkGTsUPez9i55V/Nru4AyW11xB74Du6m0JEpdYgbG8VdsYrEJpcOcXeadcEG+MVI4XHR6U0
- vwtFlVeJDp7Cig7kydpxvOQKdh9UYtHGA2H6rL+PRTb77R18T1Z5Rkt/9IqScg7+BZy9dx63JaCAc2EE
- irmtwWJOGDKJe2ghD7veFiTmXAj/j6VcSKKcC9gj50SxMs7n41KOaXlESjnXUEmTpVtO3kLrlPn6lIbC
- 8gHBHL8nBCaBc2ebRvzGLEPM06N/zcax/xeC2Z4zYZqPejxOCe6ezPN/sBAIfgUj9zzexZoZ2wAAAABJ
- RU5ErkJgggEHAACJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAABc1JHQgCuzhzpAAAA
- BGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwQAADsEBuJFr7QAAAAd0SU1FB9gCDwcbCcW/Em8AAAAadEVY
- dFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAABl1JREFUWEftlnlMVFcUxl3S1q6JdoliE6tp
- Gtu01TR1BVvbamVxAYbZZFELyDLMxr4O28CALDMMyCKIDPsiIlBEccAuakSLS9sYpSo1ad27YFHTGt7X
- 8968Yq0DDrF/+iW/vDdn3j3n3HvPefdNeKzHehTNe3/hzHkLFroTQlt4e8Gid/mhjyaxVPjROvd1O0Se
- nkN6owFB8mAEyAKtEhgSBOPWfOwwVSAmPp751MmxQygWmERSkQPvbnwSSTzeidfE/JmWqYUmOQml27dB
- rpKNSnhUKJqaG7G/uwvmni6Um8pQ21CF5NTE3yWSdU/xbm2Xp7e0bXtFCUOzaFhov2zfp87Oww7Ll8N+
- DFY6OcNx9Wos+3jFmTWua7KTUhKYqJiwP4VCtxd4t7ZJJBXa6zK1TERU2KBQ4v4Sbx6XvLylHTtMpYxI
- ItTzJtvls9Hry8rqHYxI7KHhTeMSbd+KzOx0JixC9RtN4EXebJvE64XOhvxcGqy+IpAInuPNNsvJyWnS
- Jt8NfeUVpbR9HpG82TYJhcJJvv6bTtQ11tDSeSh587hE47wKi/OZEGXwjxKJ6xTebJuo7aQVldsZdahy
- gJIZd+XSmCmBwZsHuNlLBD682bro4clU4RuIcqKS52pEZBho77/9l80a1SKpRyNdu4gSgut1kVgQUddQ
- w2wO9DvBbgUXyJoo+BOeXtI9+QV5TEtrMzh2205VjQnGAgOKtxWhoNAIlVo+TDOOoa75tax8GyOWeqzk
- Q1kXLXVSQ1M909TUiMoqk00072pCa3sLauurERUTDpk8kEOuDIY+LwcBQf7Y27WHoQ7q5MNYl4fY7eVc
- Q86t7u5u3L59G8PDw2PCMAwuXryI3t4jONt/BlXVJoQogkYSYAmSBUCXocXWwnxqXcHY54BkvVB59NhR
- nDp1CkNDQ7h5cxB//HGTu7916xYlxXIbd+7c4bh79y4OHz7M/X/jlxvI1WdxQdkkWNgV2OTrg68Ofgmp
- p3iY6mEWH8q6vDd4tvX19eHSpZ9x7lw/Llz4gWY4QL9/wtWrl3Ht2hVcv34VN25cxy8UcHBwEAcO9KC/
- /yyOn+hDaloSFPTuZ1GqQyCjJIqKC5GVnYnE5AS2gDfzoR7Ua84636XrM+64q0rhHVsFgaoEHuoSyFIq
- cfz4UZw+/R3Onj1NiZ3B+fP9GBg4Rwyg/fM27OnswKHDBxETFwlVqBzqMAU0ifHQG3JRV18Lv4DP6D4b
- tAKjv3opgRpTzwUU7OkfoWz/OYgTmmGqqUdHRys6O9vR1dUBs3kfvvjCTMt/iALUoKauCt/0HQVVOugV
- y6FNS+VOPYNBj/BINfKMuWwClXy4B0UJlOa2fA9Zce8I6rJjSKo4AsegYrgp78edVkigLsWGiAI6jsu4
- LYiOjUBkdBhtQQgSkzTY3bYLxcVF3Mrk5T8kgdkuGYkp1cfgbzwIP+PX8MuzEF7WC13DSWQ0nYKOpZHl
- JEcGocgzY1OEHmY661NSNVwS6nAl5Ao5qO8RFx+LuIRo5Bqyxt6C2S46V1nOPmZjzgH4ZPVweHN0W9hy
- Dy8OM7wyzUio6MVK32xU11ZyPc8GY1GFKaFQyhEbH00FGI90nRZ0FoxRhKsypjkqq+766w9AnLaP2GtB
- a0E0QqeF1E4Iic36HnwSXA7tli3YVlqEhMRYaJLiuKAs9OGBzKx0hIYrH96Gc92yWgJyzXBLbLegaYcr
- R9s9EtqwboRWzuaVSvbANBQWFdBnlmaEFG0i15oGKsC16/2HqM7UfCjrmr1a996KENOwu6YVztHN9xPV
- DCeOnfeI3AlHQkDPL/UtgTohE2m6VC6oNj2Z7lMoeA5thworA7dizuqM7XyoUTVxjku6YYWimnGJ3oVV
- 5HxVZPN/YO08US08u+Ea346FPlvhH2FJgq0HfV42vRcUcPbTYr7UeNluefjYW0B6evKU56e/+nFM4XzP
- or8W+1cw9kHVsA+qgQNdHbirBdZmoRYOwXVYJquHA/Gm0Ii31iZjqbsaDu5yLJGmM6+7pPZOneu8nPy/
- wsbgIlnRROJZYgbxxpPTZi2Zscg/buaHoUV2y9T5dvYhW2YsDU4bhXQ7e5nuH2aw1w9URjsHRc7zsxY7
- kb/5rE/e9zPEqGI/FNgMpxFstuyAR2U6wfqaSrCfYexEbRb78P/BGJow4W/6Fe13GcY+rQAAAABJRU5E
- rkJggg8LAACJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAAABc1JHQgCuzhzpAAAABGdB
- TUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAl2cEFnAAAAIAAAACAAh/qcnQAAAC56VFh0Y3Jl
- YXRlLWRhdGUAAHjaMzIwsNA1sNQ1sggxNLMysbQyNdI2sLAyMAAAQukFKFHT8DkAAAAuelRYdG1vZGlm
- eS1kYXRlAAB42jMyMLDQNbDQNTIIMTSzMja0MjDSNrCwMjAAAEHTBRHNZzlkAAAKHklEQVRYR6VWCVSU
- 5Rr+EbNMvd4Wy25aaqfSNDVzySU1xdulBDTTkhRc0CDjgKXI0RRxR0HAC7hgCGKouCJIgCKIDiLDMgzL
- MAOzDwyzwLDMBojPff9xKDLxds99znn4hv//z/s87/t97/d9TG8Y7eLHDB45pe84J/cXZy7xeWf+Nxtn
- Oq/a4rrQ6ydPt2+DvlvkE+y/yGfXRjfv4I2u3+70+3zddp9/rd660mllwOdzvvafNn2xz6j3nZYPfmHk
- xD5vTHG2R30KXnh3FnPkyn1msovX3z/1DJj7ld++QK/t0Wf9DiYWBkZdle2My2rc90ue6VByQUf45eIH
- R1J4Xf++xntoY0pJV+Rl7oOw8/kd+xNzjEEn0vWbIi6IvXfHcb4JiExw9d7lN3/FpmlTXdYMIKPMc6++
- Y1e1Y86yDczwCXMdPlu71XX9zuN522MzjQev8BGZpUD0bT2Oc1pw8n4b4otM+KXUjGS+BVcqrEgTtCNL
- 1I4ccQfuSDtRIO8EV0lUdOC+1ILb1c1IKVThWGopAqNSDO4BkWn/9AyY4Rt2kZm9xNuuTljgsZmZvXTD
- OP+QRPnRzBqE5RgQmtuKw8TIvFZEc1pxoqANp7hGnCkxIrnMRAbMZMCCLKEVObXtuCslUXkHilWdKKt/
- gAr1A1RpumysaOjCPYkZkVd5WLk1pniGm9dr89397eoE57XbmOlua+f+GHrGGJcjwZE8A8KeYCCeDPxS
- YrIZuEoGrpOBGyIrcsXt4Mg6KPNOlNZ1otwuLtR2oZpYru7EnRojTmQIsGHfKe3Uz1aOn7e8h4F55Gbc
- xy4Tl/nuUW8OTUTY2VzEZlUj/q4aCfcNSOC24XSxibI34RzPjIs0BSmVFqRXW383IG2nCrSDSyySW1Eo
- NSO/phXZ5TpcuSfD6cwynLicB+/tkbUjJs59a6rzN3Z1wvjZLszLoyYO8/kpnB8enwL/vbHYsOsYNh2M
- R/DRiwhLzMTxKxwKwsP52wJczhcj5b4caUVKpJfUIYNXjxtlDbhVrsHtKi041TrkCzS4W6FCTqkEmQVV
- uH6nDJmcMmzYEX6XGfjqS2++N8WuTnh52FvsMGjjriMZdZomCKX1SM0pQkxSBnbHnMeWQ/H4MSQOgWEJ
- CI4+h9BTKTiefANJ6flIzeMht0SEomoVqhV6yHVtqGsyQ0mjRG1ArUoPqboJumYTZHU6rNtyIIm0nu0/
- cDCr+QiOz/Rjh74r/YJjxQo1Ojq7YGizQq03QqZuhkCmRalQhYIKGThlYtzliZHPl6KwSonSGjUqpDoI
- VSSmboVUY4RCb0KzqQNGSydM1gcwt3ehvfMh+EIZviAHpOXAODiwmr8DAPO5h/82Ll+E9o4uNLVaUE8G
- 6igYSxVRyVJngoIo11JGRKnGBAmJilk2PKJCb0ar+ZF4N61kIKeA/3Dul+u9C0nrTwi5LmWmu3i6/3qb
- 22G1GbCSsBEqnZFEKajWSKJUERJis7SJklitnTVqliaqgpnMWtFm+V2cpaXjIS78mmecMG+p8+pdiXbV
- HljsG8KMnuny8enLWQaTtRNNNAWsgW5xGbE3YXGDBTKdGbV6LbiaMlQ2VcFgbYWRhFkjRpb0O+ZMSv0b
- Ez6ZwHbdnzDDdQ3z6pjp74bGJktbjFabAbbsvYmzwiJWnJ5lqzMQKdmC08oQBIlWIETsg+LmXDRZm2Bs
- b0crrYVGmtLgyHj+86+Nfv39WQvtqj0wavwMhhkwdEhgyPGChsY2MtBuM8CWvTfxGrUF+Q0FWMv/CK5F
- b2AdfyZS1QmIkW3FDf158Fvz0WKxosX8AEpNM3yDIjJIapC96/6IAYNfYof+tEiTa5Xa3wx0Z99TXEis
- rqf/ta0IrfWHG4kvKhqB/TU+EBnkuNYQh0xdEiQmAQyWNpuBCnEd3H2DjpFGX8e+z7Baf4TDo7bos2R9
- 4KGiSslvBrqz75m5kMRraLFJaH3kaNMRJPSwVeFOQx6ETVKUG3hQmMQooWngNKWTCTPyioVwXuG3he22
- XlFHL+ct8/4+i8N72Gg30F36nuKSxiZkqC8jQhxIc78ZPD0f9xqKUEkbT1WdCQ0tdC4YcnGuPgKX1DFQ
- mVS4epPbMX2h5/LtSSV2tSdg/cGLzKQFX7kkpd0261rbqe8pS3v23eJs6cXU++eVx7C4eCSV/k1ES4JQ
- Te/LlEZUqIyoN3SgsqUMCaoDuKCOgsqoQWxylmEMddkiX3Yf6gULPAKYkR86TTqSkNKgNlhsG0/P7Flx
- QR0ZaWjBPpGPbd5XlU3BacVhVOhkKFdaUEkVULXqoDUZkK27hEJDNtTNZuw9ek78yjtT3/5ooadd7QmY
- MMeNGTR87PAd4fEVcm2bbUfrNtC98KrIgECjQ6BgqW3xHZUGoaZRA662DBw1FyKdAVnaC7ilu2pbjHxD
- sW2L/mHvUQ7Tf8hLI8ZNs6s9AUNHjqG//f62YUfEzWq53magZ/kFdgPV9WZcU12wtV28cj82Vy2GJ+9D
- 7BatBbcxH6Hi77G31guxip2QNutQUqPBqk37kyn4c/ZuezL69nuWHZ5x9935M7dK8QcD3eWvJLLzXEkn
- 3MW6WOwQulMl3rRxl2i1LfNgkQcipT+Co8uFvLEdt0pq4ea15SDF7mPvtt7BtonzSv9tN+gMl+stvRho
- o/mmqdE1I0ERhmUl7+Lr0jE4LN4EQSPdExoSUaVX0D5BCWituHSrhD2EfGqe1oLdCLkuY2a4rFpxPuNe
- p7xHBQR1rGgrePIWlEibUSRpBlfSgiJFHVJlqciQ36QLqQwV9J2kSU8L1YyqehOEGgtOXMoxfeC07LM1
- e87YVZ6CJRvDmLGzF809ejajRULtVi5vxj2RHrmVGtzkq+nmo0YW3YAy7cziqZFdpsVNInsryqMbUYGo
- kQwawFe22UwcOHml4a3JCz5wWrHJrvIUzFq8jnl97MzRu6PPyu6Q6JUCOS5wpH+JFzkyuqopkMpVII2r
- tBm9J9Qh4FBc+eDhY4eNn+1qV3kK3v5wDvP8KyNf+S4o6n5ithAns4iZ1Y9IF9Wn8Wf6NiFbhNO3amw8
- k1OLS3dFWB1wMJ1CDxrypEPocTzbf4BtmOXisXvL4STLsTQejv8qQFRaJSKvVSA8pRzhV1nyH2M5Iugd
- +90x+j7uBhm/XkoX21Mtk52+9KWYjg4OfdjYfwkOjv2ee3vU+OkHFnr4VfjtOdG25+frXRHJHERdLUbU
- NR6iUvmITi23k37Ts2h6x36z52Ral29wTPOnX/sUDx89aRvTx3GYPe7/BEfiUAfHvvMHDxn2w6j3p8VO
- nrcow+lLryK3VT8Il/lsk9Hxqlz+fZByqfdWqaunv2DeF2sKJ811uT7ivckxA18c6uvQx/FjisHuPH89
- 9SeANTKQ+A/ie8TpxAVUI1e6Tn9ho0MfF3rmRGT32dHEocTnif+XcG9gtzI2cN/HyD77L9vc42CY/wBc
- QuHh/jKt5QAAAABJRU5ErkJgggs=
+ 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
-
+
True
6, 13
- 558, 126
+ 699, 126
CenterParent
diff --git a/source/Translation.xlsx b/source/Translation.xlsx
index 3731c35..92e2b66 100644
Binary files a/source/Translation.xlsx and b/source/Translation.xlsx differ
diff --git a/source/changelog.md b/source/changelog.md
index 8d33ec1..2a75dcc 100644
--- a/source/changelog.md
+++ b/source/changelog.md
@@ -1,6 +1,12 @@
ChanSort Change Log
===================
+2021-02-09
+- Sony: fixed incorrect checksum error for Android based TVs which use CR+LF as line separators (normally only LF is used)
+- Philips: show info that it may be necessary to unplug and reboot the TV after the import
+- Philips ChannelMap_45: show info when there are checksum errors, which indicate that TV's internal list is broken
+ and a rescan is required in order to properly export/import the list.
+
2021-02-08
- Philips: lists with a chanLst.bin file show information about file format version and TV model under File / Information
- Philips ChannelMap_45: fixed handling of favorite lists (allow up to 8 lists, empty ones get removed automatically)