From 6c94e62eca2e893ae8eaaa33a52f565acbc22865 Mon Sep 17 00:00:00 2001 From: Horst Beham Date: Sat, 24 Jul 2021 18:59:03 +0200 Subject: [PATCH] - restructured source and added build configuration to build all non-UI projects without the need for a DevExpress license --- readme.md | 6 +- source/ChanSort.Api/View/View.cs | 60 +- .../ChanSort.Loader.LG.UI.csproj | 142 +++ .../LgUserInterfaceFactory.cs | 20 + .../PresetProgramNrDialog.Designer.cs | 0 .../PresetProgramNrDialog.cs | 0 .../PresetProgramNrDialog.cs.resx | 0 .../PresetProgramNrDialog.de.resx | 0 .../PresetProgramNrDialog.es.resx | 0 .../PresetProgramNrDialog.hu.resx | 0 .../PresetProgramNrDialog.pl.resx | 0 .../PresetProgramNrDialog.pt.resx | 0 .../PresetProgramNrDialog.resx | 0 .../PresetProgramNrDialog.ro.resx | 0 .../PresetProgramNrDialog.ru.resx | 0 .../PresetProgramNrDialog.tr.resx | 0 .../Properties/AssemblyInfo.cs | 36 + .../TvSettingsForm.Designer.cs | 0 .../TvSettingsForm.cs | 4 +- .../TvSettingsForm.cs.resx | 0 .../TvSettingsForm.de.resx | 0 .../TvSettingsForm.es.resx | 0 .../TvSettingsForm.hu.resx | 0 .../TvSettingsForm.pl.resx | 0 .../TvSettingsForm.pt.resx | 0 .../TvSettingsForm.resx | 0 .../TvSettingsForm.ro.resx | 0 .../TvSettingsForm.ru.resx | 0 .../TvSettingsForm.tr.resx | 0 .../Binary/TllFileSerializer.cs | 52 +- .../ChanSort.Loader.LG.csproj | 82 +- .../GlobalClone/GcXmlSerializer.cs | 7 +- .../ILgUserInterfaceFactory.cs | 31 + source/ChanSort.Loader.LG/LgPlugin.cs | 4 +- .../Properties/licenses.licx | 2 + source/ChanSort.sln | 964 +++++++++++------- source/ChanSort/ActionBox.Designer.cs | 3 + source/ChanSort/ActionBox.resx | 4 +- source/ChanSort/ChanSort.csproj | 4 + source/ChanSort/MainForm.cs | 46 +- source/Test.Loader.LG/Binary/LM/TestLM.cs | 4 +- source/Test.Loader/LgTest.cs | 3 +- source/build.md | 47 + 43 files changed, 1039 insertions(+), 482 deletions(-) create mode 100644 source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj create mode 100644 source/ChanSort.Loader.LG.UI/LgUserInterfaceFactory.cs rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.Designer.cs (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.cs (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.cs.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.de.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.es.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.hu.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.pl.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.pt.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.ro.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.ru.resx (100%) rename source/{ChanSort.Loader.LG => ChanSort.Loader.LG.UI}/PresetProgramNrDialog.tr.resx (100%) create mode 100644 source/ChanSort.Loader.LG.UI/Properties/AssemblyInfo.cs rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.Designer.cs (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.cs (95%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.cs.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.de.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.es.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.hu.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.pl.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.pt.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.ro.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.ru.resx (100%) rename source/{ChanSort.Loader.LG/Binary => ChanSort.Loader.LG.UI}/TvSettingsForm.tr.resx (100%) create mode 100644 source/ChanSort.Loader.LG/ILgUserInterfaceFactory.cs create mode 100644 source/build.md diff --git a/readme.md b/readme.md index 2dfbeb2..ae18d6a 100644 --- a/readme.md +++ b/readme.md @@ -13,7 +13,7 @@ ChanSort is a Windows application that allows you to reorder your TV's channel l Most modern TVs can transfer channel lists via USB stick, which you can plug into your PC. ChanSort supports various file formats from Samsung, LG, Panasonic, Sony, Philips, Hisense, Toshiba, Grundig, Sharp, Dyon, Blaupunkt, SatcoDX (used by ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken), -Linux VDR, SAT>IP .m3u and Enimgma2 based Linux boxes. +Linux VDR, SAT>IP .m3u and Enigma2 based Linux boxes. ![screenshot](http://beham.biz/chansort/ChanSort-en.png) @@ -150,6 +150,10 @@ Supports SAT>IP .m3u files with extended information holding channel names and p Requires a local copy of the files "lamedb", "bouquets.\*" and "userbouquet.\*" from /etc/Enigma2/. +Build from source +----------------- +See [build.md](build.md) + License (GPLv3) --------------- GNU General Public Licence, Version 3: http://www.gnu.org/licenses/gpl.html diff --git a/source/ChanSort.Api/View/View.cs b/source/ChanSort.Api/View/View.cs index c4deffe..b949809 100644 --- a/source/ChanSort.Api/View/View.cs +++ b/source/ChanSort.Api/View/View.cs @@ -13,15 +13,71 @@ namespace ChanSort.Api public class View { + #region enums MessageBoxButtons, MessageBoxIcon, DialogResult + + /// + /// copy of System.Windows.Forms.MessageBoxButtons so that no reference to a UI assembly is required for dependent projects + /// + public enum MessageBoxButtons + { + OK, + OKCancel, + AbortRetryIgnore, + YesNoCancel, + YesNo, + RetryCancel, + } + + /// + /// copy of System.Windows.Forms.MessageBoxIcon so that no reference to a UI assembly is required for dependent projects + /// + public enum MessageBoxIcon + { + None = 0, + Error = 16, // 0x00000010 + Hand = 16, // 0x00000010 + Stop = 16, // 0x00000010 + Question = 32, // 0x00000020 + Exclamation = 48, // 0x00000030 + Warning = 48, // 0x00000030 + Asterisk = 64, // 0x00000040 + Information = 64, // 0x00000040 + } + + /// + /// copy of System.Windows.Forms.DialogResult so that no reference to a UI assembly is required for dependent projects + /// + public enum DialogResult + { + None, + OK, + Cancel, + Abort, + Retry, + Ignore, + Yes, + No, + } + #endregion + public static View Default { get; set; } public Func CreateActionBox { get; set; } - public Func MessageBoxImpl { get; set; } + public Func MessageBoxImpl { get; set; } - public int MessageBox(string msg, string caption = "", int buttons = 0, int icon = 0) + public Action> ShowHtmlBoxImpl { get; set; } + + + + public DialogResult MessageBox(string msg, string caption = "", MessageBoxButtons buttons = 0, MessageBoxIcon icon = 0) { return MessageBoxImpl(msg, caption, buttons, icon); } + + public void ShowHtmlBox(string html, string title = null, int width = 450, int height = 250, Action onUrlClick = null) + { + ShowHtmlBoxImpl.Invoke(html, title, width, height, onUrlClick); + } } } diff --git a/source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj b/source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj new file mode 100644 index 0000000..f7a2d86 --- /dev/null +++ b/source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj @@ -0,0 +1,142 @@ + + + + + Debug + AnyCPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019} + Library + Properties + ChanSort.Loader.LG.UI + ChanSort.Loader.LG.UI + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + latest + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + latest + + + + + + + + + + + + + + + + + + + + Form + + + TvSettingsForm.cs + + + Form + + + PresetProgramNrDialog.cs + + + + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + Designer + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + + + PresetProgramNrDialog.cs + + + TvSettingsForm.cs + + + TvSettingsForm.cs + Designer + + + TvSettingsForm.cs + + + TvSettingsForm.cs + + + TvSettingsForm.cs + + + TvSettingsForm.cs + + + TvSettingsForm.cs + Designer + + + TvSettingsForm.cs + + + TvSettingsForm.cs + + + TvSettingsForm.cs + + + + + {dccffa08-472b-4d17-bb90-8f513fc01392} + ChanSort.Api + + + {e972d8a1-2f5f-421c-ac91-cff45e5191be} + ChanSort.Loader.LG + + + + \ No newline at end of file diff --git a/source/ChanSort.Loader.LG.UI/LgUserInterfaceFactory.cs b/source/ChanSort.Loader.LG.UI/LgUserInterfaceFactory.cs new file mode 100644 index 0000000..c8d0e80 --- /dev/null +++ b/source/ChanSort.Loader.LG.UI/LgUserInterfaceFactory.cs @@ -0,0 +1,20 @@ +using System.Windows.Forms; +using ChanSort.Loader.LG.Binary; + +namespace ChanSort.Loader.LG.UI +{ + public class LgUserInterfaceFactory : ILgUserInterfaceFactory + { + public void ShowTvSettingsForm(ITllFileSerializer serializer, object parentWindow) + { + using var dlg = new TvSettingsForm(serializer); + dlg.ShowDialog(parentWindow as IWin32Window); + } + + public bool ShowPresetProgramNrDialog() + { + using var dlg = new PresetProgramNrDialog(); + return dlg.ShowDialog() == DialogResult.Yes; + } + } +} diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.Designer.cs b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.Designer.cs similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.Designer.cs rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.Designer.cs diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.cs b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.cs similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.cs rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.cs diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.cs.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.cs.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.cs.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.cs.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.de.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.de.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.de.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.de.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.es.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.es.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.es.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.es.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.hu.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.hu.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.hu.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.hu.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.pl.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.pl.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.pl.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.pl.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.pt.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.pt.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.pt.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.pt.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.ro.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.ro.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.ro.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.ro.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.ru.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.ru.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.ru.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.ru.resx diff --git a/source/ChanSort.Loader.LG/PresetProgramNrDialog.tr.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.tr.resx similarity index 100% rename from source/ChanSort.Loader.LG/PresetProgramNrDialog.tr.resx rename to source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.tr.resx diff --git a/source/ChanSort.Loader.LG.UI/Properties/AssemblyInfo.cs b/source/ChanSort.Loader.LG.UI/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6c05e20 --- /dev/null +++ b/source/ChanSort.Loader.LG.UI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ChanSort.Loader.LG.UI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ChanSort.Loader.LG.UI")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("321deb9d-9f28-47b3-8b90-ee036b5f0019")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.Designer.cs b/source/ChanSort.Loader.LG.UI/TvSettingsForm.Designer.cs similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.Designer.cs rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.Designer.cs diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.cs b/source/ChanSort.Loader.LG.UI/TvSettingsForm.cs similarity index 95% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.cs rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.cs index 53d5593..88751bd 100644 --- a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.cs +++ b/source/ChanSort.Loader.LG.UI/TvSettingsForm.cs @@ -6,9 +6,9 @@ namespace ChanSort.Loader.LG.Binary { public partial class TvSettingsForm : XtraForm { - private readonly TllFileSerializer tvSerializer; + private readonly ITllFileSerializer tvSerializer; - public TvSettingsForm(TllFileSerializer tvSerializer) + public TvSettingsForm(ITllFileSerializer tvSerializer) { this.tvSerializer = tvSerializer; InitializeComponent(); diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.cs.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.cs.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.cs.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.cs.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.de.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.de.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.de.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.de.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.es.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.es.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.es.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.es.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.hu.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.hu.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.hu.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.hu.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.pl.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.pl.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.pl.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.pl.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.pt.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.pt.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.pt.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.pt.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.ro.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.ro.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.ro.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.ro.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.ru.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.ru.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.ru.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.ru.resx diff --git a/source/ChanSort.Loader.LG/Binary/TvSettingsForm.tr.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.tr.resx similarity index 100% rename from source/ChanSort.Loader.LG/Binary/TvSettingsForm.tr.resx rename to source/ChanSort.Loader.LG.UI/TvSettingsForm.tr.resx diff --git a/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs b/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs index 16fbb7d..f238c4d 100644 --- a/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs +++ b/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs @@ -2,15 +2,17 @@ //#define LM640T_EXPERIMENT using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; +using System.Reflection; using System.Text; -using System.Windows.Forms; using ChanSort.Api; +using View = ChanSort.Api.View; namespace ChanSort.Loader.LG.Binary { - public partial class TllFileSerializer : SerializerBase + public partial class TllFileSerializer : SerializerBase, ITllFileSerializer { enum SpecialHandlingModels { Standard, LH3000, LH250, PN, LP, LT, LY }; @@ -72,6 +74,8 @@ namespace ChanSort.Loader.LG.Binary private bool mustReorganizeDvbs; private decimal dvbsSymbolRateFactor; + private ILgUserInterfaceFactory uiFactory; + #region ctor() public TllFileSerializer(string inputFile) : base(inputFile) { @@ -136,6 +140,8 @@ namespace ChanSort.Loader.LG.Binary public override void Load() { + this.InitUiFactory(); + string basename = (Path.GetFileNameWithoutExtension(this.FileName) ?? "").ToUpper(); if (basename.StartsWith("XXLH250")) this.specialModel = SpecialHandlingModels.LH250; @@ -176,7 +182,7 @@ namespace ChanSort.Loader.LG.Binary channel.NewProgramNr = channel.OldProgramNr; foreach (var channel in this.satRadioChannels.Channels) channel.NewProgramNr = channel.OldProgramNr; - if (IsTesting || new PresetProgramNrDialog().ShowDialog() != DialogResult.Yes) + if (IsTesting || !PromptForEditingPresetList()) { this.satTvChannels.ReadOnly = true; this.satRadioChannels.ReadOnly = true; @@ -191,6 +197,41 @@ namespace ChanSort.Loader.LG.Binary list.MaxChannelNameLength = 40; } + private void InitUiFactory() + { + if (this.uiFactory != null || this.IsTesting) + return; + + // run-time-binding to the UI factory so that the loader module can be edited + compiled without DevExpress dependencies + var ass = Assembly.Load(new AssemblyName("ChanSort.Loader.LG.UI")); + var type = ass.GetType("ChanSort.Loader.LG.UI.LgUserInterfaceFactory"); + this.uiFactory = (ILgUserInterfaceFactory)Activator.CreateInstance(type); + } + + private bool PromptForEditingPresetList() + { +#if false + return uiFactory.ShowPresetProgramNrDialog(); +#else + View.Default.ShowHtmlBox( +@"Editing of the satellite channel list is disabled! + +This file contains preset program numbers for satellite channels. +Due to issues with most recent LG firmwares such lists can no longer be modified reliably. + +To enable editing you must first run a clean full channel search: +- Keep a copy of the current TLL file if you want to use it as a reference list later +- Execute a Factory Reset on your TV +- Execute an automatic channel search with options 'Full', 'None' and 'Blind search' +- Save the new list to USB and open it with ChanSort + + +See the ChanSort Wiki for details", +"!!! Attention !!!", 450, 220, url => Process.Start(url)); + return false; // TODO +#endif + } + #endregion #region ReadFileHeader() @@ -1102,10 +1143,7 @@ namespace ChanSort.Loader.LG.Binary #region ShowDeviceSettingsForm() public override void ShowDeviceSettingsForm(object parentWindow) { - using (var dlg = new TvSettingsForm(this)) - { - dlg.ShowDialog((Form)parentWindow); - } + uiFactory.ShowTvSettingsForm(this, parentWindow); } #endregion diff --git a/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj b/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj index f4e8d2f..36344cd 100644 --- a/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj +++ b/source/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj @@ -64,17 +64,11 @@ latest - - - - ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - @@ -90,12 +84,6 @@ - - Form - - - PresetProgramNrDialog.cs - True @@ -108,12 +96,7 @@ - - Form - - - TvSettingsForm.cs - + @@ -127,37 +110,6 @@ - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - Designer - - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - - - PresetProgramNrDialog.cs - @@ -177,38 +129,6 @@ - - TvSettingsForm.cs - - - TvSettingsForm.cs - Designer - - - TvSettingsForm.cs - - - TvSettingsForm.cs - - - TvSettingsForm.cs - - - TvSettingsForm.cs - - - TvSettingsForm.cs - Designer - - - TvSettingsForm.cs - - - TvSettingsForm.cs - - - TvSettingsForm.cs - diff --git a/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs b/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs index 2b9716d..5a1d597 100644 --- a/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs +++ b/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs @@ -4,7 +4,6 @@ using System.IO; using System.Text; using System.Xml; using ChanSort.Api; -using System.Windows.Forms; using ChanSort.Loader.LG; namespace ChanSort.Loader.GlobalClone @@ -107,7 +106,7 @@ namespace ChanSort.Loader.GlobalClone { series = match.Groups[1].Value; if ((series == "LB" || series == "UB") && StringComparer.InvariantCulture.Compare(match.Groups[2].Value, "60") >= 0) - Api.View.Default.MessageBox(Resource.GcSerializer_webOsFirmwareWarning, "LG GlobalClone", (int)MessageBoxButtons.OK, (int)MessageBoxIcon.Information); + Api.View.Default.MessageBox(Resource.GcSerializer_webOsFirmwareWarning, "LG GlobalClone", View.MessageBoxButtons.OK, View.MessageBoxIcon.Information); } break; } @@ -119,7 +118,7 @@ namespace ChanSort.Loader.GlobalClone if (binTlls.Length > 0 && !(binTlls.Length == 1 && Path.GetFileName(binTlls[0]).ToLower() == Path.GetFileName(this.FileName).ToLower())) { var txt = Resource.GcSerializer_ReadModelInfo_ModelWarning; - if (Api.View.Default != null && Api.View.Default.MessageBox(txt, "LG GlobalClone", (int)MessageBoxButtons.YesNo, (int)MessageBoxIcon.Information) == (int)DialogResult.Yes) + if (Api.View.Default != null && Api.View.Default.MessageBox(txt, "LG GlobalClone", View.MessageBoxButtons.YesNo, View.MessageBoxIcon.Information) == View.DialogResult.Yes) { foreach (var file in binTlls) File.Move(file, file + "_bak"); @@ -205,7 +204,7 @@ namespace ChanSort.Loader.GlobalClone if (total == 0) { Api.View.Default.MessageBox(Resource.GcSerializer_ReadChannelLists_NoChannelsMsg, Resource.GcSerializer_ReadChannelLists_NoChannelsCap, - (int)MessageBoxButtons.OK, (int)MessageBoxIcon.Exclamation); + View.MessageBoxButtons.OK, View.MessageBoxIcon.Exclamation); } } #endregion diff --git a/source/ChanSort.Loader.LG/ILgUserInterfaceFactory.cs b/source/ChanSort.Loader.LG/ILgUserInterfaceFactory.cs new file mode 100644 index 0000000..8c8ac8e --- /dev/null +++ b/source/ChanSort.Loader.LG/ILgUserInterfaceFactory.cs @@ -0,0 +1,31 @@ +using System.Collections.Generic; +using ChanSort.Loader.LG.Binary; + +namespace ChanSort.Loader.LG +{ + /* + * The WinForms/DevExpress user interface classes are located in a separate project (ChanSort.Loader.LG.UI) + * so that this project here with the loader code can be recompiled without a DevExpress license. + * + * The class ChanSort.Loader.LG.UI.LgUserInterfaceFactory implements this interface and is dynamically loaded + * via reflection at run-time to avoid any compile-time dependencies. + * + * Parameters passed to UI methods should be interfaces to maintain binary so that adding new member variables + * to the loader code won't break binary compatibility between the precompiled UI dll and a recompiled Loader dll + * + */ + public interface ILgUserInterfaceFactory + { + public void ShowTvSettingsForm(ITllFileSerializer serializer, object parentWindow); + bool ShowPresetProgramNrDialog(); + } + + + public interface ITllFileSerializer + { + IList SupportedTvCountryCodes { get; } + string TvCountryCode { get; set; } + FirmwareData GetFirmwareMapping(); + int GetHotelMenuOffset(); + } +} diff --git a/source/ChanSort.Loader.LG/LgPlugin.cs b/source/ChanSort.Loader.LG/LgPlugin.cs index f8898dc..818ee52 100644 --- a/source/ChanSort.Loader.LG/LgPlugin.cs +++ b/source/ChanSort.Loader.LG/LgPlugin.cs @@ -21,7 +21,9 @@ namespace ChanSort.Loader.LG if (content.Contains("")) return new GlobalClone.GcXmlSerializer(inputFile); - return new Binary.TllFileSerializer(inputFile); + return new Binary.TllFileSerializer(inputFile) { IsTesting = this.IsTesting }; } + + internal bool IsTesting { get; set; } } } diff --git a/source/ChanSort.Loader.LG/Properties/licenses.licx b/source/ChanSort.Loader.LG/Properties/licenses.licx index e69de29..badda12 100644 --- a/source/ChanSort.Loader.LG/Properties/licenses.licx +++ b/source/ChanSort.Loader.LG/Properties/licenses.licx @@ -0,0 +1,2 @@ +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/source/ChanSort.sln b/source/ChanSort.sln index b4da302..32a6032 100644 --- a/source/ChanSort.sln +++ b/source/ChanSort.sln @@ -21,6 +21,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.LG", "ChanS EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{67AED502-8AEB-45F2-9B95-AC42B6A5D2C4}" ProjectSection(SolutionItems) = preProject + build.md = build.md changelog.md = changelog.md ..\readme.md = ..\readme.md ..\readme_de.md = ..\readme_de.md @@ -82,388 +83,595 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.Sharp", "Ch EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Sharp", "Test.Loader.Sharp\Test.Loader.Sharp.csproj", "{DF1A8F81-CE9B-499E-9258-27F346B32A8B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.LG.UI", "ChanSort.Loader.LG.UI\ChanSort.Loader.LG.UI.csproj", "{321DEB9D-9F28-47B3-8B90-EE036B5F0019}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 + All_Debug|Any CPU = All_Debug|Any CPU + All_Debug|Mixed Platforms = All_Debug|Mixed Platforms + All_Debug|x86 = All_Debug|x86 + All_Release|Any CPU = All_Release|Any CPU + All_Release|Mixed Platforms = All_Release|Mixed Platforms + All_Release|x86 = All_Release|x86 + NoDevExpress_Debug|Any CPU = NoDevExpress_Debug|Any CPU + NoDevExpress_Debug|Mixed Platforms = NoDevExpress_Debug|Mixed Platforms + NoDevExpress_Debug|x86 = NoDevExpress_Debug|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|x86.ActiveCfg = Debug|x86 - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|x86.Build.0 = Debug|x86 - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Any CPU.Build.0 = Release|Any CPU - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Mixed Platforms.Build.0 = Release|x86 - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|x86.ActiveCfg = Release|x86 - {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|x86.Build.0 = Release|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|x86.ActiveCfg = Debug|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|x86.Build.0 = Debug|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Any CPU.Build.0 = Release|Any CPU - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Mixed Platforms.Build.0 = Release|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|x86.ActiveCfg = Release|x86 - {DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|x86.Build.0 = Release|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|x86.ActiveCfg = Debug|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|x86.Build.0 = Debug|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Any CPU.Build.0 = Release|Any CPU - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Mixed Platforms.Build.0 = Release|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|x86.ActiveCfg = Release|x86 - {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|x86.Build.0 = Release|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|x86.ActiveCfg = Debug|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|x86.Build.0 = Debug|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Any CPU.Build.0 = Release|Any CPU - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Mixed Platforms.Build.0 = Release|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|x86.ActiveCfg = Release|x86 - {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|x86.Build.0 = Release|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|x86.ActiveCfg = Debug|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|x86.Build.0 = Debug|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Any CPU.Build.0 = Release|Any CPU - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Mixed Platforms.Build.0 = Release|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|x86.ActiveCfg = Release|x86 - {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|x86.Build.0 = Release|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|x86.ActiveCfg = Debug|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|x86.Build.0 = Debug|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Any CPU.Build.0 = Release|Any CPU - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Mixed Platforms.Build.0 = Release|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|x86.ActiveCfg = Release|x86 - {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|x86.Build.0 = Release|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|x86.ActiveCfg = Debug|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|x86.Build.0 = Debug|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68DA8072-3A29-4076-9F64-D66F38349585}.Release|Any CPU.Build.0 = Release|Any CPU - {68DA8072-3A29-4076-9F64-D66F38349585}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Release|Mixed Platforms.Build.0 = Release|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Release|x86.ActiveCfg = Release|x86 - {68DA8072-3A29-4076-9F64-D66F38349585}.Release|x86.Build.0 = Release|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|x86.ActiveCfg = Debug|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|x86.Build.0 = Debug|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Any CPU.Build.0 = Release|Any CPU - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Mixed Platforms.Build.0 = Release|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|x86.ActiveCfg = Release|x86 - {F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|x86.Build.0 = Release|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|x86.ActiveCfg = Debug|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|x86.Build.0 = Debug|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Any CPU.Build.0 = Release|Any CPU - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Mixed Platforms.Build.0 = Release|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|x86.ActiveCfg = Release|x86 - {74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|x86.Build.0 = Release|x86 - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Debug|x86.ActiveCfg = Debug|x86 - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Debug|x86.Build.0 = Debug|x86 - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Release|Any CPU.Build.0 = Release|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Release|x86.ActiveCfg = Release|x86 - {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.Release|x86.Build.0 = Release|x86 - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Debug|x86.ActiveCfg = Debug|x86 - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Debug|x86.Build.0 = Debug|x86 - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Release|Any CPU.Build.0 = Release|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Release|x86.ActiveCfg = Release|x86 - {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.Release|x86.Build.0 = Release|x86 - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Debug|x86.ActiveCfg = Debug|x86 - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Debug|x86.Build.0 = Debug|x86 - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|Any CPU.Build.0 = Release|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|x86.ActiveCfg = Release|x86 - {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.Release|x86.Build.0 = Release|x86 - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|x86.ActiveCfg = Debug|x86 - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Debug|x86.Build.0 = Debug|x86 - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Any CPU.Build.0 = Release|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|x86.ActiveCfg = Release|x86 - {70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|x86.Build.0 = Release|x86 - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|x86.ActiveCfg = Debug|x86 - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|x86.Build.0 = Debug|x86 - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|Any CPU.Build.0 = Release|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|x86.ActiveCfg = Release|x86 - {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|x86.Build.0 = Release|x86 - {2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|x86.ActiveCfg = Debug|x86 - {2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|x86.Build.0 = Debug|x86 - {2717DB4C-7E94-4277-A880-FC2571096E74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Release|Any CPU.Build.0 = Release|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {2717DB4C-7E94-4277-A880-FC2571096E74}.Release|x86.ActiveCfg = Release|x86 - {2717DB4C-7E94-4277-A880-FC2571096E74}.Release|x86.Build.0 = Release|x86 - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|x86.ActiveCfg = Debug|x86 - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|x86.Build.0 = Debug|x86 - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|Any CPU.Build.0 = Release|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|x86.ActiveCfg = Release|x86 - {0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|x86.Build.0 = Release|x86 - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|x86.ActiveCfg = Debug|x86 - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|x86.Build.0 = Debug|x86 - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|Any CPU.Build.0 = Release|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|x86.ActiveCfg = Release|x86 - {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|x86.Build.0 = Release|x86 - {F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|x86.ActiveCfg = Debug|x86 - {F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|x86.Build.0 = Debug|x86 - {F732435A-0188-456C-8F06-7FBA1842FB35}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Release|Any CPU.Build.0 = Release|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {F732435A-0188-456C-8F06-7FBA1842FB35}.Release|x86.ActiveCfg = Release|x86 - {F732435A-0188-456C-8F06-7FBA1842FB35}.Release|x86.Build.0 = Release|x86 - {D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|x86.ActiveCfg = Debug|x86 - {D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|x86.Build.0 = Debug|x86 - {D7B71F40-C941-4364-A25F-8D41B384507A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Release|Any CPU.Build.0 = Release|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D7B71F40-C941-4364-A25F-8D41B384507A}.Release|x86.ActiveCfg = Release|x86 - {D7B71F40-C941-4364-A25F-8D41B384507A}.Release|x86.Build.0 = Release|x86 - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|x86.ActiveCfg = Debug|x86 - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|x86.Build.0 = Debug|x86 - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|Any CPU.Build.0 = Release|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|x86.ActiveCfg = Release|x86 - {AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|x86.Build.0 = Release|x86 - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Debug|x86.ActiveCfg = Debug|x86 - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Debug|x86.Build.0 = Debug|x86 - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Release|Any CPU.Build.0 = Release|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Release|x86.ActiveCfg = Release|x86 - {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.Release|x86.Build.0 = Release|x86 - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Debug|x86.ActiveCfg = Debug|x86 - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Debug|x86.Build.0 = Debug|x86 - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|Any CPU.Build.0 = Release|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|x86.ActiveCfg = Release|x86 - {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|x86.Build.0 = Release|x86 - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Any CPU.Build.0 = Debug|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|x86.ActiveCfg = Debug|x86 - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|x86.Build.0 = Debug|x86 - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Any CPU.ActiveCfg = Release|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Any CPU.Build.0 = Release|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|x86.ActiveCfg = Release|Any CPU - {32EFB306-DEF8-4488-B1AE-46D5B183C373}.Release|x86.Build.0 = Release|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Debug|x86.ActiveCfg = Debug|x86 - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Debug|x86.Build.0 = Debug|x86 - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Release|Any CPU.Build.0 = Release|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Release|x86.ActiveCfg = Release|Any CPU - {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.Release|x86.Build.0 = Release|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Debug|Any CPU.Build.0 = Debug|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Debug|x86.ActiveCfg = Debug|x86 - {052692BF-D782-4888-B34D-89D6B1379340}.Debug|x86.Build.0 = Debug|x86 - {052692BF-D782-4888-B34D-89D6B1379340}.Release|Any CPU.ActiveCfg = Release|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Release|Any CPU.Build.0 = Release|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Release|x86.ActiveCfg = Release|Any CPU - {052692BF-D782-4888-B34D-89D6B1379340}.Release|x86.Build.0 = Release|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Debug|x86.ActiveCfg = Debug|x86 - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Debug|x86.Build.0 = Debug|x86 - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Release|Any CPU.Build.0 = Release|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Release|x86.ActiveCfg = Release|Any CPU - {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.Release|x86.Build.0 = Release|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Debug|x86.ActiveCfg = Debug|x86 - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Debug|x86.Build.0 = Debug|x86 - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Release|Any CPU.Build.0 = Release|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Release|x86.ActiveCfg = Release|Any CPU - {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.Release|x86.Build.0 = Release|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Debug|x86.ActiveCfg = Debug|x86 - {8C342A81-387E-403D-9140-17C4A4C4292E}.Debug|x86.Build.0 = Debug|x86 - {8C342A81-387E-403D-9140-17C4A4C4292E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Release|Any CPU.Build.0 = Release|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Release|x86.ActiveCfg = Release|Any CPU - {8C342A81-387E-403D-9140-17C4A4C4292E}.Release|x86.Build.0 = Release|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Debug|x86.ActiveCfg = Debug|x86 - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Debug|x86.Build.0 = Debug|x86 - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|Any CPU.Build.0 = Release|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|x86.ActiveCfg = Release|Any CPU - {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|x86.Build.0 = Release|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|x86.ActiveCfg = Debug|x86 - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|x86.Build.0 = Debug|x86 - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Any CPU.Build.0 = Release|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|x86.ActiveCfg = Release|Any CPU - {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|x86.Build.0 = Release|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|x86.ActiveCfg = Debug|x86 - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|x86.Build.0 = Debug|x86 - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Any CPU.Build.0 = Release|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|x86.ActiveCfg = Release|Any CPU - {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|x86.Build.0 = Release|Any CPU + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Debug|x86.ActiveCfg = Debug|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Debug|x86.Build.0 = Debug|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Release|Any CPU.Build.0 = Release|Any CPU + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Release|x86.ActiveCfg = Release|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.All_Release|x86.Build.0 = Release|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Debug|x86.ActiveCfg = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Debug|x86.Build.0 = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Release|Any CPU.Build.0 = Release|Any CPU + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Release|x86.ActiveCfg = Release|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.All_Release|x86.Build.0 = Release|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {DCCFFA08-472B-4D17-BB90-8F513FC01392}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Debug|x86.ActiveCfg = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Debug|x86.Build.0 = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Release|Any CPU.Build.0 = Release|Any CPU + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Release|x86.ActiveCfg = Release|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.All_Release|x86.Build.0 = Release|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Debug|x86.ActiveCfg = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Debug|x86.Build.0 = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Release|Any CPU.Build.0 = Release|Any CPU + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Release|x86.ActiveCfg = Release|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.All_Release|x86.Build.0 = Release|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Debug|x86.ActiveCfg = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Debug|x86.Build.0 = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Release|Any CPU.Build.0 = Release|Any CPU + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Release|x86.ActiveCfg = Release|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.All_Release|x86.Build.0 = Release|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Debug|x86.ActiveCfg = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Debug|x86.Build.0 = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Release|Any CPU.Build.0 = Release|Any CPU + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Release|x86.ActiveCfg = Release|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.All_Release|x86.Build.0 = Release|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {F6F02792-07F1-48D5-9AF3-F945CA5E3931}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Debug|x86.ActiveCfg = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Debug|x86.Build.0 = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Release|Any CPU.Build.0 = Release|Any CPU + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Release|x86.ActiveCfg = Release|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.All_Release|x86.Build.0 = Release|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68DA8072-3A29-4076-9F64-D66F38349585}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {68DA8072-3A29-4076-9F64-D66F38349585}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {68DA8072-3A29-4076-9F64-D66F38349585}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Debug|x86.ActiveCfg = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Debug|x86.Build.0 = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Release|Any CPU.Build.0 = Release|Any CPU + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Release|x86.ActiveCfg = Release|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.All_Release|x86.Build.0 = Release|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F943DBFE-D3C3-4885-A38B-375148012FEC}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {F943DBFE-D3C3-4885-A38B-375148012FEC}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {F943DBFE-D3C3-4885-A38B-375148012FEC}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Debug|Mixed Platforms.Build.0 = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Debug|x86.ActiveCfg = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Debug|x86.Build.0 = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Release|Any CPU.Build.0 = Release|Any CPU + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Release|Mixed Platforms.ActiveCfg = Release|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Release|Mixed Platforms.Build.0 = Release|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Release|x86.ActiveCfg = Release|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.All_Release|x86.Build.0 = Release|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74A18C6F-09FF-413E-90D9-827066FA5B36}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {74A18C6F-09FF-413E-90D9-827066FA5B36}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {74A18C6F-09FF-413E-90D9-827066FA5B36}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Debug|x86.ActiveCfg = Debug|x86 + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Debug|x86.Build.0 = Debug|x86 + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Release|Any CPU.Build.0 = Release|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Release|x86.ActiveCfg = Release|x86 + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.All_Release|x86.Build.0 = Release|x86 + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {D093E7EE-D3AD-4E7B-AF82-C6918CA017FB}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Debug|x86.ActiveCfg = Debug|x86 + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Debug|x86.Build.0 = Debug|x86 + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Release|Any CPU.Build.0 = Release|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Release|x86.ActiveCfg = Release|x86 + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.All_Release|x86.Build.0 = Release|x86 + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {1ED68A9B-6698-4609-B9E6-8E08B6055F2E}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Debug|x86.ActiveCfg = Debug|x86 + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Debug|x86.Build.0 = Debug|x86 + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Release|Any CPU.Build.0 = Release|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Release|x86.ActiveCfg = Release|x86 + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.All_Release|x86.Build.0 = Release|x86 + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {E6279FF8-362A-41E6-AC0D-D0861D43F01C}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Debug|x86.ActiveCfg = Debug|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Debug|x86.Build.0 = Debug|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Release|Any CPU.Build.0 = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Release|x86.ActiveCfg = Release|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.All_Release|x86.Build.0 = Release|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {70E29C6B-B926-4859-9548-23375BF1E1B5}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {70E29C6B-B926-4859-9548-23375BF1E1B5}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Debug|x86.ActiveCfg = Debug|x86 + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Debug|x86.Build.0 = Debug|x86 + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Release|Any CPU.Build.0 = Release|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Release|x86.ActiveCfg = Release|x86 + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.All_Release|x86.Build.0 = Release|x86 + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {D1E4454F-DB09-402D-AD87-1E3BD17266A9}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Debug|x86.ActiveCfg = Debug|x86 + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Debug|x86.Build.0 = Debug|x86 + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Release|Any CPU.Build.0 = Release|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Release|x86.ActiveCfg = Release|x86 + {2717DB4C-7E94-4277-A880-FC2571096E74}.All_Release|x86.Build.0 = Release|x86 + {2717DB4C-7E94-4277-A880-FC2571096E74}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2717DB4C-7E94-4277-A880-FC2571096E74}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {2717DB4C-7E94-4277-A880-FC2571096E74}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Debug|x86.ActiveCfg = Debug|x86 + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Debug|x86.Build.0 = Debug|x86 + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Release|Any CPU.Build.0 = Release|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Release|x86.ActiveCfg = Release|x86 + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.All_Release|x86.Build.0 = Release|x86 + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {0A162099-DA92-426A-AB70-36F88F9E5DC1}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Debug|x86.ActiveCfg = Debug|x86 + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Debug|x86.Build.0 = Debug|x86 + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Release|Any CPU.Build.0 = Release|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Release|x86.ActiveCfg = Release|x86 + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.All_Release|x86.Build.0 = Release|x86 + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {C0528858-F32D-4C0C-8EC8-CEDB53C01402}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Debug|x86.ActiveCfg = Debug|x86 + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Debug|x86.Build.0 = Debug|x86 + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Release|Any CPU.Build.0 = Release|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Release|x86.ActiveCfg = Release|x86 + {F732435A-0188-456C-8F06-7FBA1842FB35}.All_Release|x86.Build.0 = Release|x86 + {F732435A-0188-456C-8F06-7FBA1842FB35}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {F732435A-0188-456C-8F06-7FBA1842FB35}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {F732435A-0188-456C-8F06-7FBA1842FB35}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Debug|x86.ActiveCfg = Debug|x86 + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Debug|x86.Build.0 = Debug|x86 + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Release|Any CPU.Build.0 = Release|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Release|x86.ActiveCfg = Release|x86 + {D7B71F40-C941-4364-A25F-8D41B384507A}.All_Release|x86.Build.0 = Release|x86 + {D7B71F40-C941-4364-A25F-8D41B384507A}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D7B71F40-C941-4364-A25F-8D41B384507A}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {D7B71F40-C941-4364-A25F-8D41B384507A}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Debug|x86.ActiveCfg = Debug|x86 + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Debug|x86.Build.0 = Debug|x86 + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Release|Any CPU.Build.0 = Release|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Release|x86.ActiveCfg = Release|x86 + {AED060F0-495C-494C-89C2-7A96A0FA3762}.All_Release|x86.Build.0 = Release|x86 + {AED060F0-495C-494C-89C2-7A96A0FA3762}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {AED060F0-495C-494C-89C2-7A96A0FA3762}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {AED060F0-495C-494C-89C2-7A96A0FA3762}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Debug|x86.ActiveCfg = Debug|x86 + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Debug|x86.Build.0 = Debug|x86 + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Release|Any CPU.Build.0 = Release|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Release|x86.ActiveCfg = Release|x86 + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.All_Release|x86.Build.0 = Release|x86 + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {484028B6-3AAE-4F7E-A88A-76BEEB70203B}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Debug|x86.ActiveCfg = Debug|x86 + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Debug|x86.Build.0 = Debug|x86 + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Release|Any CPU.Build.0 = Release|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Release|x86.ActiveCfg = Release|x86 + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.All_Release|x86.Build.0 = Release|x86 + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Debug|x86.ActiveCfg = Debug|x86 + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Debug|x86.Build.0 = Debug|x86 + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Release|Any CPU.Build.0 = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Release|x86.ActiveCfg = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.All_Release|x86.Build.0 = Release|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {32EFB306-DEF8-4488-B1AE-46D5B183C373}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Debug|x86.ActiveCfg = Debug|x86 + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Debug|x86.Build.0 = Debug|x86 + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Release|Any CPU.Build.0 = Release|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Release|x86.ActiveCfg = Release|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.All_Release|x86.Build.0 = Release|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {4D5AF0A3-1B96-42C8-910D-0C4852EA22F4}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {052692BF-D782-4888-B34D-89D6B1379340}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Debug|x86.ActiveCfg = Debug|x86 + {052692BF-D782-4888-B34D-89D6B1379340}.All_Debug|x86.Build.0 = Debug|x86 + {052692BF-D782-4888-B34D-89D6B1379340}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Release|Any CPU.Build.0 = Release|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Release|x86.ActiveCfg = Release|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.All_Release|x86.Build.0 = Release|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {052692BF-D782-4888-B34D-89D6B1379340}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {052692BF-D782-4888-B34D-89D6B1379340}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Debug|x86.ActiveCfg = Debug|x86 + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Debug|x86.Build.0 = Debug|x86 + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Release|Any CPU.Build.0 = Release|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Release|x86.ActiveCfg = Release|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.All_Release|x86.Build.0 = Release|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {4AD7F77E-617C-4741-82AE-E7A41C85EE4D}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Debug|x86.ActiveCfg = Debug|x86 + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Debug|x86.Build.0 = Debug|x86 + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Release|Any CPU.Build.0 = Release|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Release|x86.ActiveCfg = Release|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.All_Release|x86.Build.0 = Release|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {6733CFE6-C86A-4BD6-817C-292E0638CE4F}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Debug|x86.ActiveCfg = Debug|x86 + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Debug|x86.Build.0 = Debug|x86 + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Release|Any CPU.Build.0 = Release|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Release|x86.ActiveCfg = Release|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.All_Release|x86.Build.0 = Release|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8C342A81-387E-403D-9140-17C4A4C4292E}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {8C342A81-387E-403D-9140-17C4A4C4292E}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Debug|x86.ActiveCfg = Debug|x86 + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Debug|x86.Build.0 = Debug|x86 + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Release|Any CPU.Build.0 = Release|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Release|x86.ActiveCfg = Release|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.All_Release|x86.Build.0 = Release|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Debug|x86.ActiveCfg = Debug|x86 + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Debug|x86.Build.0 = Debug|x86 + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Release|Any CPU.Build.0 = Release|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Release|x86.ActiveCfg = Release|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.All_Release|x86.Build.0 = Release|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Debug|x86.ActiveCfg = Debug|x86 + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Debug|x86.Build.0 = Debug|x86 + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Release|Any CPU.Build.0 = Release|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Release|x86.ActiveCfg = Release|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.All_Release|x86.Build.0 = Release|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.NoDevExpress_Debug|Any CPU.Build.0 = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.NoDevExpress_Debug|x86.ActiveCfg = Debug|x86 + {DF1A8F81-CE9B-499E-9258-27F346B32A8B}.NoDevExpress_Debug|x86.Build.0 = Debug|x86 + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Debug|Any CPU.Build.0 = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Debug|x86.ActiveCfg = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Debug|x86.Build.0 = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Release|Any CPU.ActiveCfg = Release|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Release|Any CPU.Build.0 = Release|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Release|Mixed Platforms.Build.0 = Release|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Release|x86.ActiveCfg = Release|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.All_Release|x86.Build.0 = Release|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.NoDevExpress_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.NoDevExpress_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.NoDevExpress_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.NoDevExpress_Debug|x86.ActiveCfg = Debug|Any CPU + {321DEB9D-9F28-47B3-8B90-EE036B5F0019}.NoDevExpress_Debug|x86.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/source/ChanSort/ActionBox.Designer.cs b/source/ChanSort/ActionBox.Designer.cs index 6a0e0a0..19f3819 100644 --- a/source/ChanSort/ActionBox.Designer.cs +++ b/source/ChanSort/ActionBox.Designer.cs @@ -41,9 +41,12 @@ namespace ChanSort.Ui // // lblMessage // + this.lblMessage.AllowHtmlString = true; 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.Appearance.Options.UseTextOptions = true; + this.lblMessage.Appearance.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap; this.lblMessage.Name = "lblMessage"; // // imageCollection1 diff --git a/source/ChanSort/ActionBox.resx b/source/ChanSort/ActionBox.resx index def735f..c89d45f 100644 --- a/source/ChanSort/ActionBox.resx +++ b/source/ChanSort/ActionBox.resx @@ -163,8 +163,8 @@ - AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMC4xLCBWZXJzaW9uPTIwLjEu - OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMS4xLCBWZXJzaW9uPTIxLjEu + NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0 cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// diff --git a/source/ChanSort/ChanSort.csproj b/source/ChanSort/ChanSort.csproj index b707f82..6b80dff 100644 --- a/source/ChanSort/ChanSort.csproj +++ b/source/ChanSort/ChanSort.csproj @@ -494,6 +494,10 @@ {d093e7ee-d3ad-4e7b-af82-c6918ca017fb} ChanSort.Loader.Hisense + + {321deb9d-9f28-47b3-8b90-ee036b5f0019} + ChanSort.Loader.LG.UI + {e972d8a1-2f5f-421c-ac91-cff45e5191be} ChanSort.Loader.LG diff --git a/source/ChanSort/MainForm.cs b/source/ChanSort/MainForm.cs index dcbc95f..459dde0 100644 --- a/source/ChanSort/MainForm.cs +++ b/source/ChanSort/MainForm.cs @@ -104,7 +104,8 @@ namespace ChanSort.Ui // The Api.View.Default object gives loaders access to UI functions Api.View.Default = new Api.View(); Api.View.Default.CreateActionBox = msg => new ActionBoxDialog(msg); - Api.View.Default.MessageBoxImpl = (msg, caption, buttons, icon) => (int)XtraMessageBox.Show(this, msg, caption, (MessageBoxButtons) buttons, (MessageBoxIcon) icon); + Api.View.Default.MessageBoxImpl = (msg, caption, buttons, icon) => (Api.View.DialogResult)(int)XtraMessageBox.Show(this, msg, caption, (MessageBoxButtons)buttons, (MessageBoxIcon)icon); + Api.View.Default.ShowHtmlBoxImpl = ShowHtmlBoxImpl; var defaultColumns = new List(); foreach (GridColumn col in this.gviewRight.Columns.OrderBy(c => c.VisibleIndex)) @@ -117,6 +118,46 @@ namespace ChanSort.Ui } #endregion + #region CreateHtmlBoxImpl + private void ShowHtmlBoxImpl(string html, string title, int width, int height, Action onUrlClick) + { + var dlg = new XtraForm(); + dlg.SuspendLayout(); + + dlg.ClientSize = new Size(width, height); + dlg.MinimizeBox = false; + dlg.MaximizeBox = false; + dlg.StartPosition = FormStartPosition.CenterParent; + dlg.Text = title ?? ""; + + var lbl = new LabelControl(); + lbl.Location = new Point(10, 10); + lbl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; + lbl.AutoSizeMode = LabelAutoSizeMode.None; + lbl.Appearance.TextOptions.VAlignment = VertAlignment.Top; + lbl.Size = new Size(width - 10 - 10, height - 10 - 32); + lbl.AllowHtmlString = true; + lbl.Appearance.TextOptions.WordWrap = WordWrap.Wrap; + lbl.Text = html; + if (onUrlClick != null) + lbl.HyperlinkClick += (sender, args) => onUrlClick(args.Link); + dlg.Controls.Add(lbl); + + var btn = new SimpleButton(); + btn.Size = new Size(60, 24); + btn.Location = new Point(width - 70, height - 30); + btn.Anchor = AnchorStyles.Right | AnchorStyles.Bottom; + btn.Text = "Ok"; + btn.DialogResult = DialogResult.OK; + dlg.Controls.Add(btn); + + dlg.ResumeLayout(); + + dlg.ShowDialog(this); + } + + #endregion + internal IList Plugins { get; } internal DataRoot DataRoot { get; private set; } @@ -619,6 +660,9 @@ namespace ChanSort.Ui private void InitInitialChannelOrder() { + if (this.DataRoot.ChannelLists.All(l => l.Count == 0 || l.ReadOnly)) + return; + DialogResult res; var msg = Resources.MainForm_InitInitialChannelOrder_Question; using (var dlg = new ActionBoxDialog(msg)) diff --git a/source/Test.Loader.LG/Binary/LM/TestLM.cs b/source/Test.Loader.LG/Binary/LM/TestLM.cs index 8c42572..1327a93 100644 --- a/source/Test.Loader.LG/Binary/LM/TestLM.cs +++ b/source/Test.Loader.LG/Binary/LM/TestLM.cs @@ -47,7 +47,7 @@ namespace Test.Loader.LG.Binary public void TestDeletingChannel() { var tempFile = TestUtils.DeploymentItem("Test.Loader.LG\\Binary\\LM\\xxLM620s-ZE00001.TLL.in"); - var plugin = new LgPlugin(); + var plugin = new LgPlugin() { IsTesting = true }; var ser = plugin.CreateSerializer(tempFile); ser.Load(); var data = ser.DataRoot; @@ -93,7 +93,7 @@ namespace Test.Loader.LG.Binary var tllFile = inFile.Replace(".in", ".tll"); File.Delete(tllFile); File.Move(inFile, tllFile); - RoundtripTest.TestChannelAndFavListEditing(tllFile, new LgPlugin()); + RoundtripTest.TestChannelAndFavListEditing(tllFile, new LgPlugin() {IsTesting = true}); } #endregion diff --git a/source/Test.Loader/LgTest.cs b/source/Test.Loader/LgTest.cs index 5797fbe..d6b8cf5 100644 --- a/source/Test.Loader/LgTest.cs +++ b/source/Test.Loader/LgTest.cs @@ -27,7 +27,8 @@ namespace Test.Loader var firmwareSize = new Dictionary(); foreach(var file in list) { - if (file.Contains("GlobalClone")) + var lfile = file.ToLowerInvariant(); + if (lfile.Contains("globalclone") || lfile.Contains("atsc") || lfile.Contains("broken") || lfile.Contains("bad") || lfile.Contains("incomplete")) continue; //Debug.Print("Testing " + file); try diff --git a/source/build.md b/source/build.md new file mode 100644 index 0000000..c167fa1 --- /dev/null +++ b/source/build.md @@ -0,0 +1,47 @@ +*Build environment* +ChanSort is a Microsoft .NET Framework 4.8 application and can be built with Visual Studio 2019. + +The user interface is based on Windows Forms and the commercial "DevExpress WinForms" user interface library from Developer Express. +To change and compile the user interface, you need a DevExpress license. +To add/change any of the file loading modules, you don't need a license. + +The Visual Studio plug-in "ResX Manager" is used to export and import language specific strings to/from the translation.xls file, +which can be edited by volunteers. Converting the .xls back to .resx and satellite assemblies requires recompilation of all projects. + +*Build configurations* (selectable in the Visual Studio Toolbar): +- NoDevExpress_Debug: builds all source projects, except ChanSort and ChanSort.Loader.LG.UI (no license needed) +- All_Debug: builds all source projects (requires a license) +- All_Release: not used (requires a license) + +*Run your own build* +The application is designed so that you can add, modify and compile non-UI projects using the "NoDevExpress_Debug" build configuration +and copy precompiled ChanSort.exe and \*.UI.dll files to the ..\Debug folder (e.g. from a release .zip on github.com/ChanSort/releases/). + +ChanSort.exe will dynamically load all ChanSort.Loader.*.dll assemblies that it finds in its folder and iterates though classes implementing +ChanSort.Api.ISerializerPlugin until one successfully loads a channel list file. + +*Write your own Loader project* +You can add a new project to the solution, open Build / Configuration manager and select your project to be included in the build. + +ChanSort will use your ISerializerPlugin implementation to get an instance of your loader class, which must be derived from SerializerBase. +The SerializerBase.DataRoot object is where your loader adds the lists and channels so that the UI can display them. + +SerializerBase.DefaultEncoding is the text encoding selected by the user through the UI. If the channel list file contains 8-bit characters +without explicit encoding or a code page, use this encoding. Overide the setter to dynamically re-parse any strings if needed. + +SerializerBase.Features controls what kind of operations the UI will offer for the channel list. + +Override SerializerBase.GetFileInformation() if you want to display some information to the user through File / Information (or use it for debug info). + +The ChanSort.Api.View class can be used by your non-UI project to access some very basic UI functions (message box, action selection). + + +*Sample code* +If you want to write a loader for a new file format, it's best to look at an existing loader that uses a similar data format: +- Binary files: Samsung.Scm, LG.Binary, Philips.BinarySerializer +- SQLite: Hisense, Panasonic, Samsung.Zip, Toshiba +- XML: Sony, Grundig, LG.GlobalClone.GcXmlSerializer, Philips.XmlSerializer +- JSON: LG.GlobalClone.GcJsonSerializer +- CSV: Sharp, Api.Controller.CsvRefListSerializer +- TXT: M3u, Enigma2, VDR, Api.Controller.TxtRefListSerializer +- Text/Binary: Loader.SatcoDX \ No newline at end of file