From 4e48c569f1cae820ffade8a786354b2ba79b50b4 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 6 Mar 2018 18:28:51 +0200 Subject: Some improvements on hive. --- .../Tango.MachineStudio.ColorLab.csproj | 1 + .../ViewModels/MainViewVM.cs | 62 +++++++++- .../ViewModels/RgbVM.cs | 69 +++++++++++ .../Views/MainView.xaml | 33 ++--- .../Views/MainView.xaml.cs | 11 ++ .../ViewModels/MainViewVM.cs | 2 +- .../Views/EmbroideryImportView.xaml | 2 +- .../Views/JobView.xaml | 4 +- .../Views/JobView.xaml.cs | 2 +- .../Controls/HiveColorPickerControl.xaml | 35 +----- .../Controls/HiveColorPickerControl.xaml.cs | 118 +++++++++++------- .../Controls/HiveComboControl.xaml | 54 ++++++++ .../Controls/HiveComboControl.xaml.cs | 136 +++++++++++++++++++++ .../Tango.MachineStudio.Common.csproj | 11 ++ .../ExtensionMethods/DependencyObjectExtensions.cs | 2 +- .../Tango.Editors/StringExtensions.cs | 107 ---------------- .../Tango.Editors/Tango.Editors.csproj | 9 +- .../Tango.PMR/ColorLab/ConversionInput.cs | 65 +++++++++- .../Tango.SharedUI/Controls/HiveControl.xaml.cs | 35 +++++- 19 files changed, 535 insertions(+), 223 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/RgbVM.cs create mode 100644 Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml.cs delete mode 100644 Software/Visual_Studio/Tango.Editors/StringExtensions.cs (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj index 91bc51933..44e55a12e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj @@ -89,6 +89,7 @@ + MainView.xaml diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs index 8260f000a..c6cc95930 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs @@ -5,15 +5,19 @@ using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; +using System.Windows.Media; using Tango.BL; using Tango.BL.Entities; +using Tango.MachineStudio.Common.Controls; using Tango.SharedUI; +using Tango.SharedUI.Controls; namespace Tango.MachineStudio.ColorLab.ViewModels { public class MainViewVM : ViewModel { private ObservablesContext _dbContext; + private HiveComboControl _hiveCombo; #region Properties @@ -57,6 +61,7 @@ namespace Tango.MachineStudio.ColorLab.ViewModels set { _selectedMachine = value; RaisePropertyChangedAuto(); + OnSelectedMachineChanged(); } } @@ -86,7 +91,9 @@ namespace Tango.MachineStudio.ColorLab.ViewModels } private ObservableCollection _liquidVolumes; - + /// + /// Gets or sets the liquid volumes. + /// public ObservableCollection LiquidVolumes { get { return _liquidVolumes; } @@ -94,24 +101,74 @@ namespace Tango.MachineStudio.ColorLab.ViewModels } private ObservableCollection _liquidsCalibrationData; - + /// + /// Gets or sets the liquids calibration data. + /// public ObservableCollection LiquidsCalibrationData { get { return _liquidsCalibrationData; } set { _liquidsCalibrationData = value; RaisePropertyChangedAuto(); } } + private RgbVM _sourceColor; + /// + /// Gets or sets the color of the source. + /// + public RgbVM SourceColor + { + get { return _sourceColor; } + set { _sourceColor = value; RaisePropertyChangedAuto(); } + } + + private HexagonControl _selectedHexagon; + /// + /// Gets or sets the selected hexagon. + /// + public HexagonControl SelectedHexagon + { + get { return _selectedHexagon; } + set { _selectedHexagon = value; RaisePropertyChangedAuto(); } + } + #endregion public MainViewVM() : base() { _dbContext = ObservablesContext.CreateDefault(); + SourceColor = new RgbVM(); + SourceColor.ColorChanged += SourceColor_ColorChanged; Machines = _dbContext.Machines.ToObservableCollection(); ColorSpaces = _dbContext.ColorSpaces.ToObservableCollection(); Rmls = _dbContext.Rmls.ToObservableCollection(); } + private void SourceColor_ColorChanged(object sender, Color color) + { + if (_hiveCombo != null) + { + _hiveCombo.GenerateDemoModeHiveColors(color); + _hiveCombo.SelectHeagon(_hiveCombo.CenterHexagon); + } + } + + public void PutComboHiveControl(HiveComboControl hiveCombo) + { + _hiveCombo = hiveCombo; + } + + #region Liquid Volumes + + private void OnSelectedMachineChanged() + { + if (SelectedMachine != null) + { + LiquidVolumes = SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => new LiquidVolumeVM() { Color = x.LiquidType.Color, Name = x.LiquidType.Name }).ToObservableCollection(); + } + } + + #endregion + #region RML private void InvalidateLiquidFactorsAndProcessTables() @@ -120,7 +177,6 @@ namespace Tango.MachineStudio.ColorLab.ViewModels { LiquidTypesRmls = SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList(); //RmlProcessParametersTableGroup = SelectedRML.ProcessParametersTablesGroups.ToList().SingleOrDefault(x => x.Active); - LiquidVolumes = SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => new LiquidVolumeVM() { Color = x.LiquidType.Color, Name = x.LiquidType.Name }).ToObservableCollection(); LiquidsCalibrationData = new ObservableCollection(); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/RgbVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/RgbVM.cs new file mode 100644 index 000000000..badb238fb --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/RgbVM.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using Tango.SharedUI; + +namespace Tango.MachineStudio.ColorLab.ViewModels +{ + public class RgbVM : ViewModel + { + public event EventHandler ColorChanged; + + public RgbVM() + { + Color = Colors.DimGray; + } + + private double _red; + public double Red + { + get { return _red; } + set { _red = value; SynchronizeColor(); RaisePropertyChangedAuto(); } + } + + private double _green; + public double Green + { + get { return _green; } + set { _green = value; SynchronizeColor(); RaisePropertyChangedAuto(); } + } + + private double _blue; + public double Blue + { + get { return _blue; } + set { _blue = value; SynchronizeColor(); RaisePropertyChangedAuto(); } + } + + private Color _color; + public Color Color + { + get { return _color; } + set { _color = value; RaisePropertyChanged(nameof(Color)); SynchronizeComponents(); } + } + + private void SynchronizeColor() + { + _color = Color.FromRgb((byte)Red, (byte)Green, (byte)Blue); + RaisePropertyChanged(nameof(Color)); + ColorChanged?.Invoke(this, _color); + } + + private void SynchronizeComponents() + { + _red = Color.R; + _green = Color.G; + _blue = Color.B; + + RaisePropertyChanged(nameof(Red)); + RaisePropertyChanged(nameof(Green)); + RaisePropertyChanged(nameof(Blue)); + RaisePropertyChanged(nameof(Color)); + + ColorChanged?.Invoke(this, Color); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml index 92ef15231..72a1bdd4e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml @@ -8,6 +8,7 @@ xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:vm="clr-namespace:Tango.MachineStudio.ColorLab.ViewModels" xmlns:brushPicker="clr-namespace:Tango.BrushPicker;assembly=Tango.BrushPicker" @@ -164,9 +165,9 @@ - + + - @@ -179,41 +180,33 @@ - - - - - - - - - + - - + + - - + + - - + + SOURCE / INVERSE RGB - SUGGESTIONS + SUGGESTIONS LIQUID VOLUMES - + @@ -281,7 +274,7 @@ COMPOSITE - + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml.cs index 1a96386f6..d78750050 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml.cs @@ -12,6 +12,7 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.MachineStudio.ColorLab.ViewModels; namespace Tango.MachineStudio.ColorLab.Views { @@ -20,9 +21,19 @@ namespace Tango.MachineStudio.ColorLab.Views /// public partial class MainView : UserControl { + private MainViewVM _vm; + public MainView() { InitializeComponent(); + + this.Loaded += MainView_Loaded; + } + + private void MainView_Loaded(object sender, RoutedEventArgs e) + { + _vm = DataContext as MainViewVM; + _vm.PutComboHiveControl(hiveCombo); } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 566dc7a16..dfaeb7044 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -1710,7 +1710,7 @@ namespace Tango.MachineStudio.Developer.ViewModels Red = stop.Color.R, Green = stop.Color.G, Blue = stop.Color.B, - OffsetPercent = stop.Offset, + OffsetPercent = stop.Offset * 100d, ColorSpace = _machineDbContext.ColorSpaces.ToList().SingleOrDefault(x => x.Code == BL.Enumerations.ColorSpaces.RGB.ToInt32()), }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml index 42d0bb106..8d25719e8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/EmbroideryImportView.xaml @@ -46,7 +46,7 @@ Region Brush - + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml index 1dea01de7..4c0784d1d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml @@ -157,13 +157,13 @@ - + - + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs index 905caa96d..0c99dfe5f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs @@ -125,7 +125,7 @@ namespace Tango.MachineStudio.Developer.Views } - private void HiveColorPickerControl_SelectedColorChanged(object sender, Color e) + private void HiveColorPickerControl_SelectedColorChanged(object sender, Color color) { UpdateGradientBrushDisplay(); } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml index 2aa11c63c..d65bd5d8f 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml @@ -6,46 +6,19 @@ xmlns:colorPicker="clr-namespace:Tango;assembly=Tango.ColorPicker" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls" xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI" xmlns:local="clr-namespace:Tango.MachineStudio.Common.Controls" mc:Ignorable="d" - d:DesignHeight="250" d:DesignWidth="550" Background="White"> + Height="250" Width="650" Background="White"> - - + - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml.cs index 7d1a1dc81..41b362889 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveColorPickerControl.xaml.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -12,6 +13,7 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.SharedUI.Controls; namespace Tango.MachineStudio.Common.Controls { @@ -21,7 +23,12 @@ namespace Tango.MachineStudio.Common.Controls public partial class HiveColorPickerControl : UserControl { public event EventHandler SelectedColorChanged; - private bool _preventHiveSelectedColorChange; + public event EventHandler SelectedHiveColorChanged; + public event EventHandler SelectedHexagonChanged; + public event EventHandler LAxisValueChanged; + public event EventHandler ResolutionChanged; + + private bool _preventColorCanvasEvent; public bool DemoMode { @@ -39,93 +46,112 @@ namespace Tango.MachineStudio.Common.Controls public static readonly DependencyProperty ResolutionProperty = DependencyProperty.Register("Resolution", typeof(int), typeof(HiveColorPickerControl), new PropertyMetadata(1, (d, e) => (d as HiveColorPickerControl).OnResolutionChanged())); - public Color SelectedColor + public Color? SelectedColor { - get { return (Color)GetValue(SelectedColorProperty); } + get { return (Color?)GetValue(SelectedColorProperty); } set { SetValue(SelectedColorProperty, value); } } public static readonly DependencyProperty SelectedColorProperty = - DependencyProperty.Register("SelectedColor", typeof(Color), typeof(HiveColorPickerControl), new PropertyMetadata(Colors.Red, (d, e) => (d as HiveColorPickerControl).OnSelectedColorChanged())); + DependencyProperty.Register("SelectedColor", typeof(Color?), typeof(HiveColorPickerControl), new PropertyMetadata(null, (d, e) => (d as HiveColorPickerControl).OnSelectedColorChanged())); + + public HexagonControl SelectedHexagon + { + get { return (HexagonControl)GetValue(SelectedHexagonProperty); } + set { SetValue(SelectedHexagonProperty, value); } + } + public static readonly DependencyProperty SelectedHexagonProperty = + DependencyProperty.Register("SelectedHexagon", typeof(HexagonControl), typeof(HiveColorPickerControl), new PropertyMetadata(null, (d, e) => (d as HiveColorPickerControl).OnSelectedHexagonChanged())); - public Color SelectedHiveColor + public Color? SelectedHiveColor { - get { return (Color)GetValue(SelectedHiveColorProperty); } + get { return (Color?)GetValue(SelectedHiveColorProperty); } set { SetValue(SelectedHiveColorProperty, value); } } public static readonly DependencyProperty SelectedHiveColorProperty = - DependencyProperty.Register("SelectedHiveColor", typeof(Color), typeof(HiveColorPickerControl), new PropertyMetadata(Colors.Red)); + DependencyProperty.Register("SelectedHiveColor", typeof(Color?), typeof(HiveColorPickerControl), new PropertyMetadata(null, (d, e) => (d as HiveColorPickerControl).OnSelectedHiveColorChanged())); + + public int LAxisValue + { + get { return (int)GetValue(LAxisValueProperty); } + set { SetValue(LAxisValueProperty, value); } + } + public static readonly DependencyProperty LAxisValueProperty = + DependencyProperty.Register("LAxisValue", typeof(int), typeof(HiveColorPickerControl), new PropertyMetadata(0, (d, e) => (d as HiveColorPickerControl).OnLAxisValueChanged())); + public HiveColorPickerControl() { InitializeComponent(); - hive.Loaded += Hive_Loaded; + this.Bind(ResolutionProperty, hiveCombo, HiveComboControl.ResolutionProperty, BindingMode.TwoWay); + this.Bind(SelectedHexagonProperty, hiveCombo, HiveComboControl.SelectedHexagonProperty, BindingMode.OneWay); + this.Bind(LAxisValueProperty, hiveCombo, HiveComboControl.LAxisValueProperty, BindingMode.OneWay); + + + hiveCombo.HiveGenerated += HiveCombo_HiveGenerated; } - private void Hive_Loaded(object sender, RoutedEventArgs e) + private void HiveCombo_HiveGenerated(object sender, EventArgs e) { - OnSelectedColorChanged(); + hiveCombo.GenerateDemoModeHiveColors(SelectedColor.Value); + } + + private void OnSelectedHiveColorChanged() + { + //_preventColorCanvasEvent = true; + //colorCanvas.SelectedColor = SelectedHiveColor; + //_preventColorCanvasEvent = false; + + SelectedHiveColorChanged?.Invoke(this, SelectedHiveColor.Value); } private void OnSelectedColorChanged() { - if (DemoMode) + if (SelectedColor != null) { - if (!_preventHiveSelectedColorChange) + _preventColorCanvasEvent = true; + colorCanvas.SelectedColor = SelectedColor; + _preventColorCanvasEvent = false; + + if (DemoMode) { - GenerateDemoModeHiveColors(); + hiveCombo.GenerateDemoModeHiveColors(SelectedColor.Value); } - SelectedColorChanged?.Invoke(this, SelectedColor); + + SelectedColorChanged?.Invoke(this, SelectedColor.Value); } } - private void hive_HexagonSelected(object sender, SharedUI.Controls.HexagonControl hexagon) + private void OnSelectedHexagonChanged() { - SelectedHiveColor = (hexagon.Fill as SolidColorBrush).Color; - - _preventHiveSelectedColorChange = true; - SelectedColor = SelectedHiveColor; - _preventHiveSelectedColorChange = false; + SelectedHexagonChanged?.Invoke(this, SelectedHexagon); + SelectedHiveColor = (SelectedHexagon.Fill as SolidColorBrush).Color; } - private void OnResolutionChanged() + private void OnLAxisValueChanged() { - GenerateDemoModeHiveColors(); + LAxisValueChanged?.Invoke(this, LAxisValue); } - private void GenerateDemoModeHiveColors() + private void OnResolutionChanged() { - if (hive.CenterHexagon != null) - { - Random rnd = new Random(); - - (hive.CenterHexagon.Fill as SolidColorBrush).Color = SelectedColor; - - int counter = 0; - - foreach (var hexagon in hive.Hexagons.Where(x => x != hive.CenterHexagon).OrderBy(x => rnd.Next())) - { - (hexagon.Fill as SolidColorBrush).Color = Color.FromRgb((byte)Math.Min(SelectedColor.R + counter++, 255), (byte)Math.Min((SelectedColor.G + counter++), 255), (byte)Math.Min((SelectedColor.B + counter++), 255)); - - counter += (int)(4d * ((double)Resolution / 4d)); - } - } + hiveCombo.GenerateDemoModeHiveColors(SelectedColor.Value); } - private void OnResolutionUpClicked(object sender, RoutedEventArgs e) + private void ColorCanvas_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs e) { - if (Resolution < 10) + if (!_preventColorCanvasEvent) { - Resolution++; + SelectedColor = e.NewValue.Value; + hiveCombo.SelectHeagon(hiveCombo.CenterHexagon); } } - private void OnResolutionDownClicked(object sender, RoutedEventArgs e) + private void hiveCombo_SelectedHexagonChanged(object sender, HexagonControl e) { - if (Resolution > 1) - { - Resolution--; - } + SelectedHexagon = e; + SelectedHiveColor = (SelectedHexagon.Fill as SolidColorBrush).Color; + SelectedHexagonChanged?.Invoke(this, SelectedHexagon); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml new file mode 100644 index 000000000..692b3f818 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml.cs new file mode 100644 index 000000000..342a1f1c9 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/HiveComboControl.xaml.cs @@ -0,0 +1,136 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.Logging; +using Tango.SharedUI.Controls; + +namespace Tango.MachineStudio.Common.Controls +{ + /// + /// Interaction logic for HiveComboControl.xaml + /// + public partial class HiveComboControl : UserControl + { + public event EventHandler SelectedColorChanged; + public event EventHandler SelectedHexagonChanged; + public event EventHandler LAxisValueChanged; + public event EventHandler ResolutionChanged; + public event EventHandler HiveGenerated; + + public int Resolution + { + get { return (int)GetValue(ResolutionProperty); } + set { SetValue(ResolutionProperty, value); } + } + public static readonly DependencyProperty ResolutionProperty = + DependencyProperty.Register("Resolution", typeof(int), typeof(HiveComboControl), new PropertyMetadata(1, (d, e) => (d as HiveComboControl).OnResolutionChanged())); + + public HexagonControl SelectedHexagon + { + get { return (HexagonControl)GetValue(SelectedHexagonProperty); } + set { SetValue(SelectedHexagonProperty, value); } + } + public static readonly DependencyProperty SelectedHexagonProperty = + DependencyProperty.Register("SelectedHexagon", typeof(HexagonControl), typeof(HiveComboControl), new PropertyMetadata(null, (d, e) => (d as HiveComboControl).OnSelectedHexagonChanged())); + + public int LAxisValue + { + get { return (int)GetValue(LAxisValueProperty); } + set { SetValue(LAxisValueProperty, value); } + } + public static readonly DependencyProperty LAxisValueProperty = + DependencyProperty.Register("LAxisValue", typeof(int), typeof(HiveComboControl), new PropertyMetadata(0, (d, e) => (d as HiveComboControl).OnLAxisValueChanged())); + + public HexagonControl CenterHexagon + { + get { return hive.CenterHexagon; } + } + + + public HiveComboControl() + { + InitializeComponent(); + + hive.HiveGenerated += (x, e) => HiveGenerated?.Invoke(this, new EventArgs()); + } + + private void OnLAxisValueChanged() + { + LAxisValueChanged?.Invoke(this, LAxisValue); + } + + private void OnSelectedHexagonChanged() + { + SelectedHexagonChanged?.Invoke(this, SelectedHexagon); + } + + private void OnResolutionChanged() + { + ResolutionChanged?.Invoke(this, Resolution); + } + + public void GenerateDemoModeHiveColors(Color originalColor) + { + if (hive.CenterHexagon != null) + { + Random rnd = new Random(); + + (hive.CenterHexagon.Fill as SolidColorBrush).Color = originalColor; + + int counter = 0; + + foreach (var hexagon in hive.Hexagons.Where(x => x != hive.CenterHexagon).OrderBy(x => rnd.Next())) + { + (hexagon.Fill as SolidColorBrush).Color = Color.FromRgb((byte)Math.Min(originalColor.R + counter++, 255), (byte)Math.Min((originalColor.G + counter++), 255), (byte)Math.Min((originalColor.B + counter++), 255)); + + counter += (int)(4d * ((double)Resolution / 4d)); + } + } + } + + private void OnResolutionUpClicked(object sender, RoutedEventArgs e) + { + if (Resolution < 10) + { + Resolution++; + } + } + + private void OnResolutionDownClicked(object sender, RoutedEventArgs e) + { + if (Resolution > 1) + { + Resolution--; + } + } + + private void OnRowHiveHexagonSelected(object sender, HexagonControl hexagon) + { + int l = 2 - hexagon.Row; + LogManager.Default.Log("L ROW: " + l.ToString()); + } + + private void OnHexagonSelected(object sender, HexagonControl e) + { + SelectedHexagon = e; + } + + public void SelectHeagon(HexagonControl hexagon) + { + hive.SelectHexagon(hexagon); + SelectedHexagonChanged?.Invoke(this, hexagon); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj index 457646223..2347919d6 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj @@ -76,6 +76,9 @@ HiveColorPickerControl.xaml + + HiveComboControl.xaml + RealTimeGraphMultiControl.xaml @@ -114,6 +117,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -212,6 +219,10 @@ {4206ac58-3b57-4699-8835-90bf6db01a61} Tango.Integration + + {BC932DBD-7CDB-488C-99E4-F02CF441F55E} + Tango.Logging + {e4927038-348d-4295-aaf4-861c58cb3943} Tango.PMR diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/DependencyObjectExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/DependencyObjectExtensions.cs index 3e7da4cfb..e36fe607c 100644 --- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/DependencyObjectExtensions.cs +++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/DependencyObjectExtensions.cs @@ -55,7 +55,7 @@ public static class DependencyObjectExtensions /// Binding mode. /// Binding converter. /// - public static Binding Bind(this DependencyObject target, DependencyProperty targetDP, DependencyObject source, DependencyProperty sourceDP, BindingMode mode, IValueConverter converter = null) + public static Binding Bind(this DependencyObject target, DependencyProperty targetDP, DependencyObject source, DependencyProperty sourceDP, BindingMode mode, IValueConverter converter) { Binding binding = new Binding(); binding.Mode = mode; diff --git a/Software/Visual_Studio/Tango.Editors/StringExtensions.cs b/Software/Visual_Studio/Tango.Editors/StringExtensions.cs deleted file mode 100644 index 0f5923512..000000000 --- a/Software/Visual_Studio/Tango.Editors/StringExtensions.cs +++ /dev/null @@ -1,107 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -/// -/// -/// A collection of extension methods. -/// -internal static class StringExtensions -{ - private static Regex titleRegEx; - - /// - /// Initializes the class. - /// - static StringExtensions() - { - titleRegEx = new Regex(@" - (?<=[A-Z])(?=[A-Z][a-z]) | - (?<=[^A-Z])(?=[A-Z]) | - (?<=[A-Za-z])(?=[^A-Za-z])", RegexOptions.IgnorePatternWhitespace); - } - - /// - /// Returns true if the string is not null or contains white spaces. - /// - /// The string. - /// - internal static bool IsValid(this String str) - { - return !String.IsNullOrWhiteSpace(str); - } - - /// - /// Determines whether the string contains an existing file path. - /// - /// The path. - /// - internal static bool IsFileExists(this String path) - { - return System.IO.File.Exists(path); - } - - /// - /// Determines whether the string is valid as a file system path. - /// - /// The path. - /// - internal static bool IsPathValid(this String path) - { - return path.IsValid() && path.IndexOfAny(System.IO.Path.GetInvalidPathChars()) == -1; - } - - /// - /// Returns a friendly file size of the file path. - /// - /// The file path. - /// - internal static String GetFileSizeString(this String filePath) - { - FileInfo f = new FileInfo(filePath); - double length = f.Length; - - string[] sizes = { "B", "KB", "MB", "GB" }; - double len = length; - int order = 0; - while (len >= 1024 && order + 1 < sizes.Length) - { - order++; - len = len / 1024; - } - - // Adjust the format string to your preferences. For example "{0:0.#}{1}" would - // show a single decimal place, and no space. - return String.Format("{0:0.##} {1}", len, sizes[order]); - } - - /// - /// If string is a path, returns the file name. - /// - /// The file path. - /// - internal static String GetFileName(this String filePath) - { - return Path.GetFileName(filePath); - } - - /// - /// If string is a path, returns the file extension. - /// - /// The file path. - /// - internal static String GetFileExtension(this String filePath) - { - return Path.GetExtension(filePath); - } - - internal static String ToTitle(this String str) - { - return titleRegEx.Replace(str, " "); - } -} - diff --git a/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj b/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj index 217048e63..1eaeddb9c 100644 --- a/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj +++ b/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj @@ -76,7 +76,6 @@ - @@ -109,7 +108,7 @@ - + @@ -166,5 +165,11 @@ Settings.Designer.cs + + + {a34ee0f0-649d-41c8-8489-b6f1cc6924ee} + Tango.Core + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs b/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs index 20f133b7c..9678ca13e 100644 --- a/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs +++ b/Software/Visual_Studio/Tango.PMR/ColorLab/ConversionInput.cs @@ -23,18 +23,19 @@ namespace Tango.PMR.ColorLab { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChVDb252ZXJzaW9uSW5wdXQucHJvdG8SElRhbmdvLlBNUi5Db2xvckxhYhoW", - "SW5wdXRDb29yZGluYXRlcy5wcm90bxoQQ29sb3JTcGFjZS5wcm90byL5AQoP", + "SW5wdXRDb29yZGluYXRlcy5wcm90bxoQQ29sb3JTcGFjZS5wcm90byKeAgoP", "Q29udmVyc2lvbklucHV0Eg8KB1RocmVhZEwYASABKAESDwoHVGhyZWFkQRgC", "IAEoARIPCgdUaHJlYWRCGAMgASgBEjIKCkNvbG9yU3BhY2UYBCABKA4yHi5U", "YW5nby5QTVIuQ29sb3JMYWIuQ29sb3JTcGFjZRI+ChBJbnB1dENvb3JkaW5h", "dGVzGAUgASgLMiQuVGFuZ28uUE1SLkNvbG9yTGFiLklucHV0Q29vcmRpbmF0", "ZXMSEwoLRm9yd2FyZERhdGEYBiABKAwSEwoLSW52ZXJzZURhdGEYByABKAwS", - "FQoNU2VnbWVudExlbmd0aBgIIAEoAUIeChxjb20udHdpbmUudGFuZ28ucG1y", - "LmNvbG9ybGFiYgZwcm90bzM=")); + "FQoNU2VnbWVudExlbmd0aBgIIAEoARITCgtEZWx0YUNocm9tYRgJIAEoARIO", + "CgZEZWx0YUwYCiABKAFCHgocY29tLnR3aW5lLnRhbmdvLnBtci5jb2xvcmxh", + "YmIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tango.PMR.ColorLab.InputCoordinatesReflection.Descriptor, global::Tango.PMR.ColorLab.ColorSpaceReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ColorLab.ConversionInput), global::Tango.PMR.ColorLab.ConversionInput.Parser, new[]{ "ThreadL", "ThreadA", "ThreadB", "ColorSpace", "InputCoordinates", "ForwardData", "InverseData", "SegmentLength" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.ColorLab.ConversionInput), global::Tango.PMR.ColorLab.ConversionInput.Parser, new[]{ "ThreadL", "ThreadA", "ThreadB", "ColorSpace", "InputCoordinates", "ForwardData", "InverseData", "SegmentLength", "DeltaChroma", "DeltaL" }, null, null, null) })); } #endregion @@ -73,6 +74,8 @@ namespace Tango.PMR.ColorLab { forwardData_ = other.forwardData_; inverseData_ = other.inverseData_; segmentLength_ = other.segmentLength_; + deltaChroma_ = other.deltaChroma_; + deltaL_ = other.deltaL_; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -168,6 +171,28 @@ namespace Tango.PMR.ColorLab { } } + /// Field number for the "DeltaChroma" field. + public const int DeltaChromaFieldNumber = 9; + private double deltaChroma_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double DeltaChroma { + get { return deltaChroma_; } + set { + deltaChroma_ = value; + } + } + + /// Field number for the "DeltaL" field. + public const int DeltaLFieldNumber = 10; + private double deltaL_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double DeltaL { + get { return deltaL_; } + set { + deltaL_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as ConversionInput); @@ -189,6 +214,8 @@ namespace Tango.PMR.ColorLab { if (ForwardData != other.ForwardData) return false; if (InverseData != other.InverseData) return false; if (SegmentLength != other.SegmentLength) return false; + if (DeltaChroma != other.DeltaChroma) return false; + if (DeltaL != other.DeltaL) return false; return true; } @@ -203,6 +230,8 @@ namespace Tango.PMR.ColorLab { if (ForwardData.Length != 0) hash ^= ForwardData.GetHashCode(); if (InverseData.Length != 0) hash ^= InverseData.GetHashCode(); if (SegmentLength != 0D) hash ^= SegmentLength.GetHashCode(); + if (DeltaChroma != 0D) hash ^= DeltaChroma.GetHashCode(); + if (DeltaL != 0D) hash ^= DeltaL.GetHashCode(); return hash; } @@ -245,6 +274,14 @@ namespace Tango.PMR.ColorLab { output.WriteRawTag(65); output.WriteDouble(SegmentLength); } + if (DeltaChroma != 0D) { + output.WriteRawTag(73); + output.WriteDouble(DeltaChroma); + } + if (DeltaL != 0D) { + output.WriteRawTag(81); + output.WriteDouble(DeltaL); + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -274,6 +311,12 @@ namespace Tango.PMR.ColorLab { if (SegmentLength != 0D) { size += 1 + 8; } + if (DeltaChroma != 0D) { + size += 1 + 8; + } + if (DeltaL != 0D) { + size += 1 + 8; + } return size; } @@ -309,6 +352,12 @@ namespace Tango.PMR.ColorLab { if (other.SegmentLength != 0D) { SegmentLength = other.SegmentLength; } + if (other.DeltaChroma != 0D) { + DeltaChroma = other.DeltaChroma; + } + if (other.DeltaL != 0D) { + DeltaL = other.DeltaL; + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -354,6 +403,14 @@ namespace Tango.PMR.ColorLab { SegmentLength = input.ReadDouble(); break; } + case 73: { + DeltaChroma = input.ReadDouble(); + break; + } + case 81: { + DeltaL = input.ReadDouble(); + break; + } } } } diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/HiveControl.xaml.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/HiveControl.xaml.cs index 81fc1250d..5fba6eaa0 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Controls/HiveControl.xaml.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Controls/HiveControl.xaml.cs @@ -25,6 +25,8 @@ namespace Tango.SharedUI.Controls { public event EventHandler HexagonSelected; + public event EventHandler HiveGenerated; + public ObservableCollection Hexagons { get { return (ObservableCollection)GetValue(HexagonsProperty); } @@ -65,6 +67,21 @@ namespace Tango.SharedUI.Controls public static readonly DependencyProperty CenterHexagonProperty = DependencyProperty.Register("CenterHexagon", typeof(HexagonControl), typeof(HiveControl), new PropertyMetadata(null)); + public int HiveWidth + { + get { return (int)GetValue(HiveWidthProperty); } + set { SetValue(HiveWidthProperty, value); } + } + public static readonly DependencyProperty HiveWidthProperty = + DependencyProperty.Register("HiveWidth", typeof(int), typeof(HiveControl), new PropertyMetadata(5)); + + public int HiveHeight + { + get { return (int)GetValue(HiveHeightProperty); } + set { SetValue(HiveHeightProperty, value); } + } + public static readonly DependencyProperty HiveHeightProperty = + DependencyProperty.Register("HiveHeight", typeof(int), typeof(HiveControl), new PropertyMetadata(5)); public HiveControl() { @@ -78,13 +95,10 @@ namespace Tango.SharedUI.Controls this.Loaded += HiveControl_Loaded; } - public int HiveHeight { get; set; } - - public int HiveWidth { get; set; } - private void HiveControl_Loaded(object sender, RoutedEventArgs e) { GenerateHive(); + HiveGenerated?.Invoke(this,new EventArgs()); } private void GenerateHive() @@ -155,7 +169,20 @@ namespace Tango.SharedUI.Controls private void Hexagon_MouseUp(object sender, MouseButtonEventArgs e) { HexagonControl hexagon = sender as HexagonControl; + ToggleHexagonSelection(hexagon); + } + public void SelectHexagon(HexagonControl hexagon) + { + SelectedHexagons.Clear(); + SelectedHexagons.Add(hexagon); + Hexagons.ToList().ForEach(x => x.IsSelected = false); + hexagon.IsSelected = true; + HexagonSelected?.Invoke(this, hexagon); + } + + private void ToggleHexagonSelection(HexagonControl hexagon) + { bool selected = !hexagon.IsSelected; if (MaxSelections > Hexagons.Where(x => x.IsSelected).Count()) -- cgit v1.3.1 From c435be14ccb975b5666da84a7324ec55c3575842 Mon Sep 17 00:00:00 2001 From: Roy Date: Wed, 7 Mar 2018 09:03:11 +0200 Subject: Add auto generation for ColorLab color space & liquid type. Started implementing native color query in colorlab module. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1048576 -> 1048576 bytes Software/PMR/Messages/ColorLab/ColorSpace.proto | 22 +- Software/PMR/Messages/ColorLab/LiquidType.proto | 26 +- .../PMR/Messages/Hardware/HardwareDancerType.proto | 4 +- .../PMR/Messages/Hardware/HardwareMotorType.proto | 10 +- Software/Visual_Studio/4.sln | 2093 ++++++++++++++++++++ .../ViewModels/CalibrationDataVM.cs | 9 + .../ViewModels/LiquidVolumeVM.cs | 9 + .../ViewModels/MainViewVM.cs | 162 +- .../Views/MainView.xaml | 4 +- .../Controls/HiveComboControl.xaml.cs | 3 +- .../Visual_Studio/Tango.PMR/ColorLab/ColorSpace.cs | 4 +- .../Visual_Studio/Tango.PMR/ColorLab/LiquidType.cs | 9 +- .../Visual_Studio/Tango.PMR/ExtensionMethods.cs | 2 +- Software/Visual_Studio/Tango.sln | 2093 -------------------- .../Utilities/Tango.PMRGenerator.CLI/Program.cs | 47 + 17 files changed, 2362 insertions(+), 2135 deletions(-) create mode 100644 Software/Visual_Studio/4.sln delete mode 100644 Software/Visual_Studio/Tango.sln (limited to 'Software/Visual_Studio') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index 2167c8efc..aeccb05c6 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 2d60019a5..bab4ce367 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/PMR/Messages/ColorLab/ColorSpace.proto b/Software/PMR/Messages/ColorLab/ColorSpace.proto index 3d97f7516..e25e935f4 100644 --- a/Software/PMR/Messages/ColorLab/ColorSpace.proto +++ b/Software/PMR/Messages/ColorLab/ColorSpace.proto @@ -1,15 +1,21 @@ syntax = "proto3"; -package Tango.PMR.ColorLab; +//This file is auto-generated. Do not modify! +package Tango.PMR.ColorLab; option java_package = "com.twine.tango.pmr.colorlab"; - enum ColorSpace { - Volume = 0; - RGB = 1; - CMYK = 2; - LAB = 3; - Panton = 4; -} \ No newline at end of file + + Volume = 0; + + RGB = 1; + + CMYK = 2; + + LAB = 3; + + PANTON = 4; + +} diff --git a/Software/PMR/Messages/ColorLab/LiquidType.proto b/Software/PMR/Messages/ColorLab/LiquidType.proto index 4f36b859f..88ea24c82 100644 --- a/Software/PMR/Messages/ColorLab/LiquidType.proto +++ b/Software/PMR/Messages/ColorLab/LiquidType.proto @@ -1,15 +1,25 @@ syntax = "proto3"; -package Tango.PMR.ColorLab; +//This file is auto-generated. Do not modify! +package Tango.PMR.ColorLab; option java_package = "com.twine.tango.pmr.colorlab"; - enum LiquidType { - Cyan = 0; - Magenta = 1; - Yellow = 2; - Black = 3; - TransparentInk = 4; -} \ No newline at end of file + + Cyan = 0; + + Magenta = 1; + + Yellow = 2; + + Black = 3; + + TransparentInk = 4; + + Lubricant = 5; + + Red = 7; + +} diff --git a/Software/PMR/Messages/Hardware/HardwareDancerType.proto b/Software/PMR/Messages/Hardware/HardwareDancerType.proto index 658e219d8..f61b00ec3 100644 --- a/Software/PMR/Messages/Hardware/HardwareDancerType.proto +++ b/Software/PMR/Messages/Hardware/HardwareDancerType.proto @@ -8,10 +8,10 @@ option java_package = "com.twine.tango.pmr.hardware"; enum HardwareDancerType { - RightDancer = 0; + LeftDancer = 0; MiddleDancer = 1; - LeftDancer = 2; + RightDancer = 2; } diff --git a/Software/PMR/Messages/Hardware/HardwareMotorType.proto b/Software/PMR/Messages/Hardware/HardwareMotorType.proto index d9b8581fa..46c6911f9 100644 --- a/Software/PMR/Messages/Hardware/HardwareMotorType.proto +++ b/Software/PMR/Messages/Hardware/HardwareMotorType.proto @@ -7,11 +7,13 @@ option java_package = "com.twine.tango.pmr.hardware"; enum HardwareMotorType { - FeederMotor = 0; - DryerMotor = 1; + WinderMotor = 0; - PoolerMotor = 2; + FeederMotor = 1; + + DryerMotor = 2; + + PoolerMotor = 3; - WinderMotor = 3; } diff --git a/Software/Visual_Studio/4.sln b/Software/Visual_Studio/4.sln new file mode 100644 index 000000000..8973f3988 --- /dev/null +++ b/Software/Visual_Studio/4.sln @@ -0,0 +1,2093 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Protobuf", "Tango.Protobuf\Tango.Protobuf.csproj", "{40073806-914E-4E78-97AB-FA9639308EBE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Versioning", "Versioning", "{E53A5748-F312-4A70-AB93-53249749D359}" + ProjectSection(SolutionItems) = preProject + Versioning\GlobalVersionInfo.cs = Versioning\GlobalVersionInfo.cs + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Core", "Tango.Core\Tango.Core.csproj", "{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utilities", "Utilities", "{5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Protobuf.UI", "Utilities\Tango.Protobuf.UI\Tango.Protobuf.UI.csproj", "{37E45CE1-A0F6-4ED7-9791-A1BED947602F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Protobuf.CLI", "Utilities\Tango.Protobuf.CLI\Tango.Protobuf.CLI.csproj", "{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Logging", "Tango.Logging\Tango.Logging.csproj", "{BC932DBD-7CDB-488C-99E4-F02CF441F55E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.UnitTesting", "Tango.UnitTesting\Tango.UnitTesting.csproj", "{FB82AA6B-1652-452C-8235-4FB2E524FBC0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Resources", "Resources", "{727F6479-A4A7-4288-ADD2-005CE0C5DE49}" + ProjectSection(SolutionItems) = preProject + Resources\dummyFile.txt = Resources\dummyFile.txt + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PMR", "Tango.PMR\Tango.PMR.csproj", "{E4927038-348D-4295-AAF4-861C58CB3943}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Transport", "Tango.Transport\Tango.Transport.csproj", "{74E700B0-1156-4126-BE40-EE450D3C3026}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Emulations", "Tango.Emulations\Tango.Emulations.csproj", "{63561E19-FF5A-414B-A5EF-E30711543E1D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineEM.UI", "Utilities\Tango.MachineEM.UI\Tango.MachineEM.UI.csproj", "{1971345A-0627-4428-88AA-1CCC4BFAEF4B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Stubs", "Tango.Stubs\Tango.Stubs.csproj", "{1981B537-39E9-4E7D-8430-27466481AEEE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Native", "Native", "{4443B71C-216E-4D4C-8D19-868F50803813}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tango.ProtoTest", "Native\Tango.ProtoTest\Tango.ProtoTest.vcxproj", "{35397DDA-DDC7-46BE-A802-3B722B6858E9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.TransportRouter.UI", "Utilities\Tango.TransportRouter.UI\Tango.TransportRouter.UI.csproj", "{37EE62DF-A988-45AF-BB30-DD3245164188}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{59B2E8DA-2D5D-48FA-9A96-F53BDB7EF7A9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineService", "Web\Tango.MachineService\Tango.MachineService.csproj", "{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Synchronization", "Tango.Synchronization\Tango.Synchronization.csproj", "{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ShortcutGenerator.CLI", "Utilities\Tango.ShortcutGenerator.CLI\Tango.ShortcutGenerator.CLI.csproj", "{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DAL.Remote", "Tango.DAL.Remote\Tango.DAL.Remote.csproj", "{38197109-8610-4D3F-92B9-16D48DF94D7C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DAL.Local", "Tango.DAL.Local\Tango.DAL.Local.csproj", "{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Settings", "Tango.Settings\Tango.Settings.csproj", "{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Serialization", "Tango.Serialization\Tango.Serialization.csproj", "{22F87980-E990-4686-BE81-BE63D562C4D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.CodeGeneration", "Tango.CodeGeneration\Tango.CodeGeneration.csproj", "{CAEDAE94-11ED-473C-888A-268A6D38CD20}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Stubs.CLI", "Utilities\Tango.Stubs.CLI\Tango.Stubs.CLI.csproj", "{BCD0C108-FC90-4537-8B80-ABBD201FECA3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Stubs.UI", "Utilities\Tango.Stubs.UI\Tango.Stubs.UI.csproj", "{FC0FB4A1-360E-42B1-8372-9208A3098B2A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SideChains", "SideChains", "{EC62BC9C-F2FE-4333-B7E4-110E38D43958}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "SideChains\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Scripting", "Tango.Scripting\Tango.Scripting.csproj", "{401989E7-AE1E-4002-B0EE-9A9F63740B97}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.SharedUI", "Tango.SharedUI\Tango.SharedUI.csproj", "{8491D07B-C1F6-4B62-A412-41B9FD2D6538}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DBObservablesGenerator.CLI", "Utilities\Tango.DBObservablesGenerator.CLI\Tango.DBObservablesGenerator.CLI.csproj", "{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MachineStudio", "MachineStudio", "{57DF2A95-5DDD-4830-A4AF-B484B59C7C2B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.UI", "MachineStudio\Tango.MachineStudio.UI\Tango.MachineStudio.UI.csproj", "{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.DB", "MachineStudio\Modules\Tango.MachineStudio.DB\Tango.MachineStudio.DB.csproj", "{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Common", "MachineStudio\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj", "{CB0B0AA2-BB24-4BCA-A720-45E397684E12}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Developer", "MachineStudio\Modules\Tango.MachineStudio.Developer\Tango.MachineStudio.Developer.csproj", "{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ColorPicker", "Tango.ColorPicker\Tango.ColorPicker.csproj", "{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Synchronization", "MachineStudio\Modules\Tango.MachineStudio.Synchronization\Tango.MachineStudio.Synchronization.csproj", "{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tango.ColorLib", "Native\Tango.ColorLib\Tango.ColorLib.vcxproj", "{625B2A26-97A9-45C9-8BCF-6BD30F593E17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.AutoComplete", "SideChains\Tango.AutoComplete\Tango.AutoComplete.csproj", "{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Integration", "Tango.Integration\Tango.Integration.csproj", "{4206AC58-3B57-4699-8835-90BF6DB01A61}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Stubs", "MachineStudio\Modules\Tango.MachineStudio.Stubs\Tango.MachineStudio.Stubs.csproj", "{22C2AA72-9493-4D0D-B421-8EF9789FB192}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.MachineDesigner", "MachineStudio\Modules\Tango.MachineStudio.MachineDesigner\Tango.MachineStudio.MachineDesigner.csproj", "{D0CE8122-077D-42A2-9490-028AE4769B52}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DragAndDrop", "Tango.DragAndDrop\Tango.DragAndDrop.csproj", "{B112D89A-A106-41AE-A0C1-4ABC84C477F5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Technician", "MachineStudio\Modules\Tango.MachineStudio.Technician\Tango.MachineStudio.Technician.csproj", "{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RealTimeGraphEx", "SideChains\RealTimeGraphEx\RealTimeGraphEx.csproj", "{B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Tango.MachineStudio.Installer", "MachineStudio\Tango.MachineStudio.Installer\Tango.MachineStudio.Installer.vdproj", "{A19DEAB8-7356-4BCD-9FA8-B2FA09077165}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.SQLiteGenerator.CLI", "Utilities\Tango.SQLiteGenerator.CLI\Tango.SQLiteGenerator.CLI.csproj", "{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ColorMine", "SideChains\ColorMine\ColorMine.csproj", "{37E4CEAB-B54B-451F-B535-04CF7DA9C459}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Video", "Tango.Video\Tango.Video.csproj", "{9652F972-2BD1-4283-99CB-FC6240434C17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.UITests", "Utilities\Tango.UITests\Tango.UITests.csproj", "{5B954D98-4020-4AC6-939F-C52B5646E8E6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Editors", "Tango.Editors\Tango.Editors.csproj", "{DE2F2B86-025B-4F26-83A4-38BD48224ED5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Visuals", "Tango.Visuals\Tango.Visuals.csproj", "{CF7C0FF4-9440-42CF-83B8-C060772792D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.DataCapture", "MachineStudio\Modules\Tango.MachineStudio.DataCapture\Tango.MachineStudio.DataCapture.csproj", "{FC337A7F-1214-41D8-9992-78092A3B961E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.UpdateService", "MachineStudio\Tango.MachineStudio.UpdateService\Tango.MachineStudio.UpdateService.csproj", "{CC6D62E9-C300-42F3-B452-79966E902B10}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Updater", "MachineStudio\Tango.MachineStudio.Updater\Tango.MachineStudio.Updater.csproj", "{844787CE-F409-4F18-BCCC-F3809ECB86F3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Publisher", "MachineStudio\Tango.MachineStudio.Publisher\Tango.MachineStudio.Publisher.csproj", "{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ILMerge.UI", "Utilities\Tango.ILMerge.UI\Tango.ILMerge.UI.csproj", "{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Tango.Stubs.Installer", "Utilities\Tango.Stubs.Installer\Tango.Stubs.Installer.vdproj", "{6B399B28-83AE-4AD2-8438-25799B65086F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Embroidery", "Embroidery", "{34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEmbroidery", "Embroidery\project-files\visualstudio\libEmbroideryVS2008.vcxproj", "{BD30C7BD-9230-4ED7-B581-11F14041909D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEmbroideryTest", "Embroidery\libEmbroideryTest\libEmbroideryTest.vcxproj", "{0565AEEC-ED1B-4F0E-A277-D33F852207BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.HardwareDesigner", "MachineStudio\Modules\Tango.MachineStudio.HardwareDesigner\Tango.MachineStudio.HardwareDesigner.csproj", "{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PMRGenerator.CLI", "Utilities\Tango.PMRGenerator.CLI\Tango.PMRGenerator.CLI.csproj", "{5AFD5B7D-757A-400C-B0C9-118834F5D67E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.BL", "Tango.BL\Tango.BL.csproj", "{F441FEEE-322A-4943-B566-110E12FD3B72}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tango.Embroidery", "Embroidery\Tango.Embroidery\Tango.Embroidery.vcxproj", "{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.EmbroideryViewer", "Utilities\Tango.EmbroideryViewer\Tango.EmbroideryViewer.csproj", "{793FBFC1-549E-458B-A52F-784BD4F28586}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.EmbroideryUI", "Embroidery\Tango.EmbroideryUI\Tango.EmbroideryUI.csproj", "{BDBBE284-F564-4F51-AF41-3DF0434CEC62}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.BrushPicker", "Tango.BrushPicker\Tango.BrushPicker.csproj", "{40085232-ACED-4CBE-945B-90BA8153C151}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.ColorLab", "MachineStudio\Modules\Tango.MachineStudio.ColorLab\Tango.MachineStudio.ColorLab.csproj", "{4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + DefaultBuild|Any CPU = DefaultBuild|Any CPU + DefaultBuild|ARM = DefaultBuild|ARM + DefaultBuild|ARM64 = DefaultBuild|ARM64 + DefaultBuild|x64 = DefaultBuild|x64 + DefaultBuild|x86 = DefaultBuild|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|Any CPU.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM64.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM64.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x64.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x64.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x86.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x86.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|Any CPU.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM64.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM64.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x64.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x64.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x86.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x86.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|Any CPU.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM64.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM64.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x64.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x64.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x86.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x86.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|Any CPU.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM64.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM64.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x64.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x64.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x86.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x86.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|Any CPU.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM64.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM64.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x64.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x64.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x86.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x86.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM64.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM64.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x64.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x64.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x86.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x86.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|Any CPU.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM64.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM64.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x64.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x64.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x86.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x86.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|Any CPU.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM64.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM64.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x64.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x64.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x86.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x86.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|Any CPU.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM64.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM64.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x64.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x64.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x86.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x86.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|Any CPU.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM64.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM64.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x64.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x64.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x86.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x86.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|Any CPU.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM64.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM64.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x64.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x64.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x86.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x86.Build.0 = Release|Any CPU + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|ARM.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|ARM64.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.ActiveCfg = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.Build.0 = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x86.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|Any CPU.Deploy.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM.Deploy.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM64.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM64.Deploy.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x64.Build.0 = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x64.Deploy.0 = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x86.Build.0 = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x86.Deploy.0 = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|Any CPU.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|ARM.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|ARM64.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x64.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x64.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x86.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x86.Build.0 = Release|Win32 + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|Any CPU.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM64.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM64.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x64.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x64.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x86.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x86.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|Any CPU.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM64.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM64.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x64.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x64.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x86.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x86.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|Any CPU.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM64.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM64.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x64.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x64.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x86.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x86.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM64.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM64.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x64.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x64.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x86.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x86.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|Any CPU.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM64.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM64.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x64.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x64.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x86.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x86.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|Any CPU.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM64.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM64.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x64.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x64.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x86.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x86.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|Any CPU.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM64.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM64.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x64.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x64.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x86.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x86.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|Any CPU.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM64.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM64.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x64.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x64.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x86.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x86.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|Any CPU.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM64.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM64.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x64.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x64.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x86.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x86.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|Any CPU.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM64.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM64.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x64.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x64.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x86.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x86.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|Any CPU.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM64.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM64.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x64.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x64.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x86.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x86.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM64.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM64.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x64.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x64.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|Any CPU.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM64.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM64.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x64.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x64.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x86.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x86.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|Any CPU.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM64.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM64.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x64.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x64.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x86.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x86.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM64.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM64.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x64.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x64.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x86.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x86.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|Any CPU.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|Any CPU.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|Any CPU.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM64.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM64.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x64.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x64.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x86.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x86.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x86.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x86.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|Any CPU.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM64.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM64.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x64.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x64.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x86.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x86.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|Any CPU.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM64.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM64.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x64.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x64.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x86.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x86.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|Any CPU.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM64.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM64.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x64.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x64.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x86.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x86.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|Any CPU.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM64.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM64.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x64.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x64.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM64.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM64.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.Build.0 = Release|Any CPU + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|ARM.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|ARM64.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|x64.ActiveCfg = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|x64.Build.0 = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|x86.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|Any CPU.Deploy.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM.Deploy.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM64.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM64.Deploy.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x64.Build.0 = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x64.Deploy.0 = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.Build.0 = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.Deploy.0 = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|Any CPU.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|ARM.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|ARM64.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x64.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x64.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x86.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x86.Build.0 = Release|Win32 + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|Any CPU.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM64.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM64.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x64.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x64.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x86.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x86.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|Any CPU.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM64.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM64.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x64.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x64.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x86.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x86.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|Any CPU.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM64.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM64.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x64.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x64.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x86.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x86.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|Any CPU.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM64.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM64.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x64.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x64.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x86.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x86.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|Any CPU.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM64.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM64.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x64.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x64.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x86.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x86.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|Any CPU.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM64.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM64.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x64.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x64.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x86.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x86.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x86.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x86.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|Any CPU.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM64.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM64.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x64.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x64.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x86.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x86.Build.0 = Release|Any CPU + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|Any CPU.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|ARM.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|ARM64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|x64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|x86.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|Any CPU.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|ARM.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|ARM64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|x64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|x86.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|Any CPU.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|ARM.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|ARM64.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|x64.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|x86.ActiveCfg = Release + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|Any CPU.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM64.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM64.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x64.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x64.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x86.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x86.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|Any CPU.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM64.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM64.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x64.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x64.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x86.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x86.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|Any CPU.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM64.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM64.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x64.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x64.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x86.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x86.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|Any CPU.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM64.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM64.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x64.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x64.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x86.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x86.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|Any CPU.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM64.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM64.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x64.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x64.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x86.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x86.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|Any CPU.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM64.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM64.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x64.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x64.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x86.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x86.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|Any CPU.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM64.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM64.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x64.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x64.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x86.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x86.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x86.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x86.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|Any CPU.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM64.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM64.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x64.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x64.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x86.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x86.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|Any CPU.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM64.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM64.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x64.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x64.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x86.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x86.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM64.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM64.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x64.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x64.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x86.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x86.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|Any CPU.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM64.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM64.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x64.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x64.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x86.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x86.Build.0 = Release|Any CPU + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|Any CPU.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|ARM.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|ARM64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|x64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|x86.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|Any CPU.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|ARM.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|ARM64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|x64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|x86.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|Any CPU.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|ARM.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|ARM64.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|x64.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|x86.ActiveCfg = Release + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|ARM.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|ARM64.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x64.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.Build.0 = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|Any CPU.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|Any CPU.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM64.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x64.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x86.Build.0 = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|Any CPU.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|ARM.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|ARM64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|x64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|x86.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|x86.Build.0 = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|ARM.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|ARM64.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x64.ActiveCfg = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x64.Build.0 = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.Build.0 = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM64.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x64.Build.0 = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x86.Build.0 = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|Any CPU.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|ARM.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|ARM64.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x64.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x64.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x86.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x86.Build.0 = Release|Win32 + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|Any CPU.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM64.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM64.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x64.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x64.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x86.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x86.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|Any CPU.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM64.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM64.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x64.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x64.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x86.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x86.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|Any CPU.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM64.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM64.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x64.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x64.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x86.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x86.Build.0 = Release|Any CPU + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|ARM.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|ARM64.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x64.ActiveCfg = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x64.Build.0 = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.Build.0 = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM64.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x64.Build.0 = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x86.Build.0 = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|Any CPU.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|ARM.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|ARM64.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x64.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x64.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x86.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x86.Build.0 = Release|Win32 + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|Any CPU.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|Any CPU.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|Any CPU.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM64.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM64.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x64.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x64.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x86.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x86.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|Any CPU.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM64.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM64.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x64.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x64.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x86.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x86.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|Any CPU.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM64.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM64.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x64.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x64.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x86.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x86.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x86.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x86.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|Any CPU.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM64.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM64.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x64.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x64.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x86.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {37E45CE1-A0F6-4ED7-9791-A1BED947602F} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {1971345A-0627-4428-88AA-1CCC4BFAEF4B} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {35397DDA-DDC7-46BE-A802-3B722B6858E9} = {4443B71C-216E-4D4C-8D19-868F50803813} + {37EE62DF-A988-45AF-BB30-DD3245164188} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701} = {59B2E8DA-2D5D-48FA-9A96-F53BDB7EF7A9} + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {BCD0C108-FC90-4537-8B80-ABBD201FECA3} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {FC0FB4A1-360E-42B1-8372-9208A3098B2A} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {CB0B0AA2-BB24-4BCA-A720-45E397684E12} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {625B2A26-97A9-45C9-8BCF-6BD30F593E17} = {4443B71C-216E-4D4C-8D19-868F50803813} + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {22C2AA72-9493-4D0D-B421-8EF9789FB192} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {D0CE8122-077D-42A2-9490-028AE4769B52} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {37E4CEAB-B54B-451F-B535-04CF7DA9C459} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {5B954D98-4020-4AC6-939F-C52B5646E8E6} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {FC337A7F-1214-41D8-9992-78092A3B961E} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {CC6D62E9-C300-42F3-B452-79966E902B10} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {844787CE-F409-4F18-BCCC-F3809ECB86F3} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {6B399B28-83AE-4AD2-8438-25799B65086F} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {BD30C7BD-9230-4ED7-B581-11F14041909D} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {0565AEEC-ED1B-4F0E-A277-D33F852207BC} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {5AFD5B7D-757A-400C-B0C9-118834F5D67E} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {793FBFC1-549E-458B-A52F-784BD4F28586} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {BDBBE284-F564-4F51-AF41-3DF0434CEC62} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} + EndGlobalSection +EndGlobal diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/CalibrationDataVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/CalibrationDataVM.cs index 1bcb29835..87bbacab5 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/CalibrationDataVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/CalibrationDataVM.cs @@ -4,6 +4,7 @@ using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Entities; using Tango.SharedUI; namespace Tango.MachineStudio.ColorLab.ViewModels @@ -26,6 +27,14 @@ namespace Tango.MachineStudio.ColorLab.ViewModels set { _color = value; RaisePropertyChangedAuto(); } } + private IdsPack _idsPack; + + public IdsPack IdsPack + { + get { return _idsPack; } + set { _idsPack = value; RaisePropertyChangedAuto(); } + } + private ObservableCollection _calibrationPoints; public ObservableCollection CalibrationPoints diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/LiquidVolumeVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/LiquidVolumeVM.cs index a804d628b..a9d46f142 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/LiquidVolumeVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/LiquidVolumeVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Entities; using Tango.SharedUI; namespace Tango.MachineStudio.ColorLab.ViewModels @@ -32,5 +33,13 @@ namespace Tango.MachineStudio.ColorLab.ViewModels get { return _color; } set { _color = value; RaisePropertyChangedAuto(); } } + + private IdsPack _idsPack; + + public IdsPack IdsPack + { + get { return _idsPack; } + set { _idsPack = value; RaisePropertyChangedAuto(); } + } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs index c6cc95930..70419c1a9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs @@ -1,14 +1,21 @@ -using System; +using Google.Protobuf; +using Microsoft.Win32; +using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.IO; using System.Linq; using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Media; using Tango.BL; using Tango.BL.Entities; +using Tango.Core.Commands; using Tango.MachineStudio.Common.Controls; +using Tango.PMR; +using Tango.PMR.ColorLab; using Tango.SharedUI; using Tango.SharedUI.Controls; @@ -16,6 +23,9 @@ namespace Tango.MachineStudio.ColorLab.ViewModels { public class MainViewVM : ViewModel { + [DllImport("Tango.ColorLib.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "Convert")] + public static extern int GetColorAdjust(IntPtr data, int size, ref IntPtr output); + private ObservablesContext _dbContext; private HiveComboControl _hiveCombo; @@ -31,11 +41,11 @@ namespace Tango.MachineStudio.ColorLab.ViewModels set { _machines = value; RaisePropertyChangedAuto(); } } - private ObservableCollection _colorSpaces; + private ObservableCollection _colorSpaces; /// /// Gets or sets the color spaces. /// - public ObservableCollection ColorSpaces + public ObservableCollection ColorSpaces { get { return _colorSpaces; } set { _colorSpaces = value; RaisePropertyChangedAuto(); } @@ -75,7 +85,7 @@ namespace Tango.MachineStudio.ColorLab.ViewModels set { _selectedRML = value; - InvalidateLiquidFactorsAndProcessTables(); + InvalidateLiquidFactorsCalibrationData(); RaisePropertyChangedAuto(); } } @@ -130,23 +140,68 @@ namespace Tango.MachineStudio.ColorLab.ViewModels set { _selectedHexagon = value; RaisePropertyChangedAuto(); } } + private Cct _cct; + /// + /// Gets or sets the CCT. + /// + public Cct CCT + { + get { return _cct; } + set { _cct = value; RaisePropertyChangedAuto(); } + } + + private int _deltaChroma; + /// + /// Gets or sets the delta chroma. + /// + public int DeltaChroma + { + get { return _deltaChroma; } + set { _deltaChroma = value; RaisePropertyChangedAuto(); } + } + + private int _deltaL; + /// + /// Gets or sets the delta l. + /// + public int DeltaL + { + get { return _deltaL; } + set { _deltaL = value; RaisePropertyChangedAuto(); } + } + + + #endregion + + #region Commands + + public RelayCommand ImportForwardDataCommand { get; set; } + + public RelayCommand ImportInverseDataCommand { get; set; } + #endregion public MainViewVM() : base() { _dbContext = ObservablesContext.CreateDefault(); + CCT = new Cct(); + SourceColor = new RgbVM(); SourceColor.ColorChanged += SourceColor_ColorChanged; Machines = _dbContext.Machines.ToObservableCollection(); ColorSpaces = _dbContext.ColorSpaces.ToObservableCollection(); Rmls = _dbContext.Rmls.ToObservableCollection(); + + ImportForwardDataCommand = new RelayCommand(ImportForwardData, () => SelectedRML != null); + ImportInverseDataCommand = new RelayCommand(ImportInverseData, () => SelectedRML != null); } private void SourceColor_ColorChanged(object sender, Color color) { if (_hiveCombo != null) { + GetHiveSuggestions(); _hiveCombo.GenerateDemoModeHiveColors(color); _hiveCombo.SelectHeagon(_hiveCombo.CenterHexagon); } @@ -157,13 +212,92 @@ namespace Tango.MachineStudio.ColorLab.ViewModels _hiveCombo = hiveCombo; } + #region ColorLab + + private void GetHiveSuggestions() + { + ConversionInput input = new ConversionInput(); + input.ColorSpace = PMR.ColorLab.ColorSpace.Rgb; + input.DeltaChroma = DeltaChroma; + input.DeltaL = DeltaL; + input.ForwardData = ByteString.CopyFrom(CCT.ForwardData); + input.InverseData = ByteString.CopyFrom(CCT.InverseData); + input.InputCoordinates.Red = (int)SourceColor.Red; + input.InputCoordinates.Green = (int)SourceColor.Green; + input.InputCoordinates.Blue = (int)SourceColor.Blue; + + foreach (var vm in LiquidsCalibrationData) + { + InputLiquid inputLiquid = new InputLiquid(); + + CalibrationData calData = new CalibrationData(); + calData.LiquidType = (PMR.ColorLab.LiquidType)vm.IdsPack.LiquidType.Code; + calData.CalibrationPoints.AddRange(vm.CalibrationPoints.Select(x => new CalibrationPoint() { X = x.X, Y = x.Y })); + inputLiquid.CalibrationData = calData; + + inputLiquid.LiquidType = (PMR.ColorLab.LiquidType)vm.IdsPack.LiquidType.Code; + inputLiquid.MaxNanoliterPerCentimeter = LiquidTypesRmls.SingleOrDefault(x => x.LiquidType.Code == vm.IdsPack.LiquidType.Code).MaxNlPerCm; + + input.InputCoordinates.InputLiquids.Add(inputLiquid); + } + + NativePMR nativePMR = new NativePMR(GetColorAdjust); + ConversionOutput output = nativePMR.Invoke(input); + + //Fill Hive ! + } + + #endregion + + #region Import / Export Color Adjustment Data + + private void ImportForwardData() + { + String file = GetCCTFile(); + if (file != null) + { + CCT.ForwardFileName = Path.GetFileName(file); + CCT.ForwardData = File.ReadAllBytes(file); + } + } + + private void ImportInverseData() + { + String file = GetCCTFile(); + if (file != null) + { + CCT.InverseFileName = Path.GetFileName(file); + CCT.InverseData = File.ReadAllBytes(file); + } + } + + private String GetCCTFile() + { + OpenFileDialog dlg = new OpenFileDialog(); + dlg.Title = "Select color adjustment file"; + dlg.Filter = "Color Conversion Table|*.cct"; + if (dlg.ShowDialogCenter()) + { + return dlg.FileName; + } + + return null; + } + + #endregion + #region Liquid Volumes private void OnSelectedMachineChanged() { if (SelectedMachine != null) { - LiquidVolumes = SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => new LiquidVolumeVM() { Color = x.LiquidType.Color, Name = x.LiquidType.Name }).ToObservableCollection(); + LiquidVolumes = SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => new LiquidVolumeVM() + { + Color = x.LiquidType.Color, + Name = x.LiquidType.Name, + IdsPack = x, + }).ToObservableCollection(); } } @@ -171,7 +305,7 @@ namespace Tango.MachineStudio.ColorLab.ViewModels #region RML - private void InvalidateLiquidFactorsAndProcessTables() + private void InvalidateLiquidFactorsCalibrationData() { if (SelectedRML != null && SelectedMachine != null) { @@ -180,13 +314,14 @@ namespace Tango.MachineStudio.ColorLab.ViewModels LiquidsCalibrationData = new ObservableCollection(); - foreach (var liquidType in SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidType)) + foreach (var idsPack in SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex)) { CalibrationDataVM vm = new CalibrationDataVM(); - vm.Name = liquidType.Name; - vm.Color = liquidType.Color; + vm.Name = idsPack.LiquidType.Name; + vm.Color = idsPack.LiquidType.Color; + vm.IdsPack = idsPack; - var cat = liquidType.Cats.FirstOrDefault(x => x.Machine == SelectedMachine); + var cat = idsPack.LiquidType.Cats.FirstOrDefault(x => x.Machine == SelectedMachine); if (cat != null) { @@ -196,6 +331,13 @@ namespace Tango.MachineStudio.ColorLab.ViewModels LiquidsCalibrationData.Add(vm); } + + CCT = SelectedRML.Ccts.FirstOrDefault(); + + if (CCT == null) + { + CCT = new Cct(); + } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml index 72a1bdd4e..c0f2912f3 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml @@ -206,7 +206,7 @@ - + @@ -345,7 +345,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml.cs new file mode 100644 index 000000000..76b256d62 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.MachineStudio.UsersAndRoles.Views +{ + /// + /// Interaction logic for OrganizationManagementView.xaml + /// + public partial class OrganizationManagementView : UserControl + { + public OrganizationManagementView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationSelectionView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationSelectionView.xaml new file mode 100644 index 000000000..16dd36360 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationSelectionView.xaml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationSelectionView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationSelectionView.xaml.cs new file mode 100644 index 000000000..16c8b2b24 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationSelectionView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.MachineStudio.UsersAndRoles.Views +{ + /// + /// Interaction logic for OrganizationSelectionView.xaml + /// + public partial class OrganizationSelectionView : UserControl + { + public OrganizationSelectionView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml new file mode 100644 index 000000000..0a3fec2ff --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml @@ -0,0 +1,20 @@ + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs new file mode 100644 index 000000000..88319cbb3 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.MachineStudio.UsersAndRoles.Views +{ + /// + /// Interaction logic for UserManagementView.xaml + /// + public partial class UserManagementView : UserControl + { + public UserManagementView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/packages.config new file mode 100644 index 000000000..cf0df03c8 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj index 52bd44239..78978bda3 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj @@ -371,6 +371,10 @@ {5d39c1e1-3ecd-4634-bd1b-2bcf71c54a15} Tango.MachineStudio.Technician + + {88028f14-0028-4ded-b119-19b8ee23cf32} + Tango.MachineStudio.UsersAndRoles + {cb0b0aa2-bb24-4bca-a720-45e397684e12} Tango.MachineStudio.Common diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml index a4256436c..8e6fa36f5 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml @@ -48,16 +48,19 @@ - + , - + - + + + + diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs new file mode 100644 index 000000000..8ab24b308 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/BrushStop.cs @@ -0,0 +1,270 @@ +using ColorMine.ColorSpaces; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using Tango.Core; +using Tango.BL; +using Tango.BL.Enumerations; + +namespace Tango.BL.Entities +{ + /// + /// Extends the standard observable BrushStop class. + /// + /// + public partial class BrushStop + { + [NotMapped] + private bool _ignorePropChanged; + + #region Properties + + private ObservableCollection _liquidVolumes; + /// + /// Gets or sets the collection of this brush stop liquid volumes. + /// + [NotMapped] + [JsonIgnore] + public ObservableCollection LiquidVolumes + { + get { return _liquidVolumes; } + set { _liquidVolumes = value; RaisePropertyChangedAuto(); } + } + + /// + /// Gets or sets the brush stop color. + /// + [NotMapped] + [JsonIgnore] + public Color Color + { + get { return Color.FromRgb((byte)_red, (byte)_green, (byte)_blue); } + set + { + if (ColorSpace != null) + { + Rgb rgb = new Rgb(value.R, value.G, value.B); + + switch ((ColorSpaces)ColorSpace.Code) + { + case ColorSpaces.CMYK: + Cmyk cmyk = rgb.To(); + _cyan = cmyk.C; + _magenta = cmyk.M; + _yellow = cmyk.Y; + _black = cmyk.K; + break; + case ColorSpaces.LAB: + Lab lab = rgb.To(); + _l = lab.L; + _a = lab.A; + _b = lab.B; + break; + case ColorSpaces.RGB: + default: + _red = (byte)rgb.R; + _green = (byte)rgb.G; + _blue = (byte)rgb.B; + break; + } + + RaisePropertyChanged(nameof(Color)); + } + } + } + + /// + /// Gets the brush stop index within it's segment brush stops collection. + /// + [NotMapped] + public int Index + { + get { return StopIndex; } + } + + /// + /// Gets a value indicating whether this brush stop is the first one within its segment brush stops. + /// + [NotMapped] + [JsonIgnore] + public bool IsFirst + { + get { return StopIndex == 0; } + } + + /// + /// Gets a value indicating whether this brush stop is the last one within its segment brush stops. + /// + [NotMapped] + [JsonIgnore] + public bool IsLast + { + get { return StopIndex == Segment.BrushStops.Count - 1; } + } + + /// + /// Gets a value indicating whether this brush stop is not the first nor last within its segment brush stops. + /// + [NotMapped] + [JsonIgnore] + public bool IsMiddle + { + get { return !IsFirst && !IsLast; } + } + + /// + /// Gets this brush stop offset in meters. + /// + [NotMapped] + [JsonIgnore] + public double OffsetMeters + { + get + { + if (Segment != null) + { + return Segment.Length * (OffsetPercent / 100d); + } + else + { + return 0; + } + } + } + + #endregion + + #region Public Methods + + /// + /// Notifies about the offset percentage and offset meters changes. + /// + public void RaiseOffsetChanged() + { + RaisePropertyChanged(nameof(OffsetPercent)); + RaisePropertyChanged(nameof(OffsetMeters)); + RaisePropertyChanged(nameof(IsFirst)); + RaisePropertyChanged(nameof(IsLast)); + } + + /// + /// Sets this brush stop liquid volumes. + /// + /// The configuration. + /// The RML. + /// The process parameters table. + public void SetLiquidVolumes(Configuration configuration, Rml rml, ProcessParametersTable processParametersTable) + { + LiquidVolumes = new ObservableCollection(); + + foreach (var idsPack in configuration.IdsPacks) + { + LiquidVolumes.Add(new LiquidVolume(configuration, idsPack, rml, processParametersTable, this)); + } + } + + public void SetStopIndex(int index) + { + _stopindex = index; + } + + public void RaiseStopIndex() + { + StopIndex = _stopindex; + } + + #endregion + + #region Override Methods + + /// + /// Raises the property changed event. + /// + /// Name of the property. + protected override void RaisePropertyChanged(string propName) + { + base.RaisePropertyChanged(propName); + + if (!_ignorePropChanged && propName != nameof(ColorSpace) && ColorSpace != null) + { + + SynchronizeColorSpaces(); + + _ignorePropChanged = true; + + foreach (var prop in typeof(BrushStop).GetProperties(BindingFlags.Instance | BindingFlags.Public)) + { + RaisePropertyChanged(prop.Name); + } + + _ignorePropChanged = false; + } + } + + public override BrushStop Clone() + { + BrushStop cloned = base.Clone(); + return cloned; + } + + public BrushStop Clone(Segment segment) + { + BrushStop cloned = base.Clone(); + cloned.Segment = segment; + cloned.SegmentGuid = segment.Guid; + return cloned; + } + + #endregion + + #region Private Methods + + /// + /// Synchronizes between the different brush stop color spaces. + /// + private void SynchronizeColorSpaces() + { + Rgb rgb = new Rgb(Red, Green, Blue); + Cmyk cmyk = new Cmyk(Cyan, Magenta, Yellow, Black); + Lab lab = new Lab(L, A, B); + + switch ((ColorSpaces)ColorSpace.Code) + { + case ColorSpaces.RGB: + cmyk = rgb.To(); + lab = rgb.To(); + break; + case ColorSpaces.CMYK: + rgb = cmyk.To(); + lab = cmyk.To(); + break; + case ColorSpaces.LAB: + rgb = lab.To(); + cmyk = lab.To(); + break; + } + + _red = (int)rgb.R; + _green = (int)rgb.G; + _blue = (int)rgb.B; + + _cyan = cmyk.C; + _magenta = cmyk.M; + _yellow = cmyk.Y; + _black = cmyk.K; + + _l = lab.L; + _a = lab.A; + _b = lab.B; + } + + #endregion + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Cat.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Cat.cs new file mode 100644 index 000000000..3f95ed149 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Cat.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.PMR.ColorLab; + +namespace Tango.BL.Entities +{ + public partial class Cat + { + public CalibrationData GetCalibrationData() + { + return CalibrationData.Parser.ParseFrom(Data); + } + + public CalibrationData CreateDemoCalibrationData() + { + CalibrationData data = new CalibrationData(); + + for (int i = 0; i < 10; i++) + { + for (int j = 0; j < 10; j++) + { + data.CalibrationPoints.Add(new CalibrationPoint() + { + X = i, Y = j + }); + } + } + + return data; + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs new file mode 100644 index 000000000..963ed638d --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class Configuration + { + public override void DefferedDelete(ObservablesContext context) + { + IdsPacks.ToList().ForEach(x => x.DefferedDelete(context)); + var machine_configurations = context.MachinesConfigurations.Where(x => x.Configuration == this); + MachinesConfigurations.ToList().ForEach(x => x.DefferedDelete(context)); + base.DefferedDelete(context); + IdsPacks.Clear(); + } + + public override void Delete(ObservablesContext context) + { + IdsPacks.ToList().ForEach(x => x.DefferedDelete(context)); + var machine_configurations = context.MachinesConfigurations.Where(x => x.Configuration == this); + MachinesConfigurations.ToList().ForEach(x => x.DefferedDelete(context)); + base.Delete(context); + IdsPacks.Clear(); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/HardwareVersion.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/HardwareVersion.cs new file mode 100644 index 000000000..0a97a3f9a --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/HardwareVersion.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class HardwareVersion + { + public override HardwareVersion Clone() + { + var cloned = base.Clone(); + cloned.HardwareMotors = HardwareMotors.Select(x => x.Clone()).ToObservableCollection(); + cloned.HardwareDancers = HardwareDancers.Select(x => x.Clone()).ToObservableCollection(); + cloned.HardwarePidControls = HardwarePidControls.Select(x => x.Clone()).ToObservableCollection(); + cloned.HardwareWinders = HardwareWinders.Select(x => x.Clone()).ToObservableCollection(); + return cloned; + } + + public override void Delete(ObservablesContext context) + { + HardwareDancers.ToList().ForEach(x => x.DefferedDelete(context)); + HardwareMotors.ToList().ForEach(x => x.DefferedDelete(context)); + HardwarePidControls.ToList().ForEach(x => x.DefferedDelete(context)); + HardwareWinders.ToList().ForEach(x => x.DefferedDelete(context)); + base.Delete(context); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs new file mode 100644 index 000000000..e5854a406 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Job.cs @@ -0,0 +1,141 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + /// + /// Extends the standard observable Job class. + /// + /// + public partial class Job + { + /// + /// Initializes a new instance of the class. + /// + public Job(DateTime creationDate) + { + CreationDate = creationDate; + } + + #region Events + + /// + /// Occurs when the job total segments length has changed. + /// + public event EventHandler LengthChanged; + + #endregion + + #region Properties + + /// + /// Gets the total job segments length. + /// + [NotMapped] + [JsonIgnore] + public double Length + { + get { return Segments.Sum(x => x.Length) + (EnableInterSegment ? (InterSegmentLength * (Segments.Count > 0 ? Segments.Count - 1 : Segments.Count)) : 0); } + } + + #endregion + + #region Event Handlers + + /// + /// Handles the CollectionChanged event of the Segments collection. + /// + /// The source of the event. + /// The instance containing the event data. + private void Segments_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + foreach (var segment in Segments) + { + segment.PropertyChanged += Segment_PropertyChanged; + } + + OnLengthChanged(); + } + + /// + /// Handles the PropertyChanged event of all job segments. + /// + /// The source of the event. + /// The instance containing the event data. + private void Segment_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName == nameof(Segment.Length)) + { + OnLengthChanged(); + } + } + + #endregion + + #region Virtual Methods + + /// + /// Called when the property has been changed + /// + protected virtual void OnLengthChanged() + { + RaisePropertyChanged(nameof(Length)); + LengthChanged?.Invoke(this, new EventArgs()); + } + + #endregion + + #region Override Methods + + /// + /// Raises the property changed event. + /// + /// Name of the property. + protected override void RaisePropertyChanged(string propName) + { + base.RaisePropertyChanged(propName); + + if (propName == nameof(Segments)) + { + if (Segments != null) + { + Segments.CollectionChanged -= Segments_CollectionChanged; + Segments.CollectionChanged += Segments_CollectionChanged; + + OnLengthChanged(); + } + } + + if (propName == nameof(InterSegmentLength) || propName == nameof(EnableInterSegment)) + { + OnLengthChanged(); + } + } + + public override Job Clone() + { + Job cloned = base.Clone(); + + cloned.CreationDate = DateTime.UtcNow; + cloned.LastRun = null; + cloned.Segments = Segments.Select(x => x.Clone(cloned)).ToObservableCollection(); + + + return cloned; + } + + public override void DefferedDelete(ObservablesContext context) + { + Segments.ToList().ForEach(x => x.DefferedDelete(context)); + Segments.Clear(); + base.DefferedDelete(context); + } + + #endregion + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs new file mode 100644 index 000000000..e00715795 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class Machine + { + /// + /// Deletes this entity from the database + /// + public override void Delete(ObservablesContext context) + { + foreach (var machine_config in MachinesConfigurations) + { + machine_config.Delete(context); + machine_config.Configuration.Delete(context); + } + + base.Delete(context); + } + + public override void Save(ObservablesContext context) + { + foreach (var job in Jobs) + { + job.JobIndex = Jobs.IndexOf(job); + + foreach (var segment in job.Segments) + { + segment.SegmentIndex = job.Segments.IndexOf(segment); + + foreach (var stop in segment.BrushStops) + { + foreach (var prop in typeof(BrushStop).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType == typeof(double))) + { + double value = (double)prop.GetValue(stop); + + if (double.IsInfinity(value)) + { + prop.SetValue(stop, 0d); + } + } + } + } + } + + base.Save(context); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/MachineVersion.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/MachineVersion.cs new file mode 100644 index 000000000..aeec23b33 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/MachineVersion.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class MachineVersion + { + public override void Delete(ObservablesContext context) + { + this.DefaultConfiguration.Delete(context); + base.Delete(context); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/ProcessParametersTable.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/ProcessParametersTable.cs new file mode 100644 index 000000000..0bb75120e --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/ProcessParametersTable.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class ProcessParametersTable + { + public event EventHandler DyeingSpeedMinInkUptakeChanged; + + protected override void RaisePropertyChanged(string propName) + { + base.RaisePropertyChanged(propName); + + if (propName == nameof(DyeingSpeed) || propName == nameof(MinInkUptake)) + { + OnDyeingSpeedMinInkUptakeChanged(); + } + } + + protected virtual void OnDyeingSpeedMinInkUptakeChanged() + { + DyeingSpeedMinInkUptakeChanged?.Invoke(this, new EventArgs()); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Segment.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Segment.cs new file mode 100644 index 000000000..6f37f4788 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Segment.cs @@ -0,0 +1,90 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class Segment + { + public override void Save(ObservablesContext context) + { + for (int i = 0; i < BrushStops.Count; i++) + { + BrushStops[i].StopIndex = i; + } + + base.Save(context); + } + + protected override void RaisePropertyChanged(string propName) + { + base.RaisePropertyChanged(propName); + + if (propName == nameof(Length)) + { + BrushStops.ToList().ForEach(x => x.RaiseOffsetChanged()); + } + } + + private TimeSpan _remainingTime; + [NotMapped] + [JsonIgnore] + public TimeSpan RemainingTime + { + get { return _remainingTime; } + set { _remainingTime = value; RaisePropertyChangedAuto(); } + } + + private bool _started; + [NotMapped] + [JsonIgnore] + public bool Started + { + get { return _started; } + set { _started = value; RaisePropertyChangedAuto(); } + } + + private bool _completed; + [NotMapped] + [JsonIgnore] + public bool Completed + { + get { return _completed; } + set { _completed = value; RaisePropertyChangedAuto(); } + } + + public override Segment Clone() + { + Segment cloned = base.Clone(); + + cloned.BrushStops = BrushStops.Select(x => x.Clone()).ToObservableCollection(); + + return cloned; + } + + public Segment Clone(Job job) + { + Segment cloned = base.Clone(); + + cloned.BrushStops = BrushStops.Select(x => x.Clone(cloned)).ToObservableCollection(); + + cloned.Job = job; + cloned.JobGuid = job.Guid; + + return cloned; + } + + public override void DefferedDelete(ObservablesContext context) + { + BrushStops.ToList().ForEach(x => x.DefferedDelete(context)); + BrushStops.Clear(); + base.DefferedDelete(context); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/User.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/User.cs new file mode 100644 index 000000000..62614743c --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/User.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Enumerations; + +namespace Tango.BL.Entities +{ + public partial class User + { + /// + /// Determines whether the user has the specified permission. + /// + /// The permission. + /// + /// true if the user has permission; otherwise, false. + /// + public bool HasPermission(Permissions permission) + { + return UsersRoles.Select(x => x.Role).ToList().SelectMany(x => x.RolesPermissions).ToList().Exists(x => x.Permission.Code == permission.ToInt32()); + } + + /// + /// Gets the aggregated user roles as enumerations. + /// + [NotMapped] + public List Roles + { + get { return UsersRoles.Select(x => x.Role).ToList(); } + } + + /// + /// Gets the aggregated user permissions as enumerations. + /// + [NotMapped] + public List Permissions + { + get + { + return UsersRoles.Select(x => x.Role).ToList().SelectMany(x => x.RolesPermissions).Select(x => x.Permission).ToList(); + } + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs b/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs index a8a4aa2c0..ee77c6f0f 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs @@ -63,5 +63,17 @@ namespace Tango.BL.Enumerations [Description("Allows loading the stubs module in machine studio")] RunStubsModule = 8, + /// + /// (Allows loading the ColorLab module in Machine Studio) + /// + [Description("Allows loading the ColorLab module in Machine Studio")] + RunColorLabModule = 9, + + /// + /// (Allows loading the Users & Roles module in machine studio) + /// + [Description("Allows loading the Users & Roles module in machine studio")] + RunUsersAndRolesModule = 10, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs b/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs index c99739f12..f86a73cfb 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs @@ -51,5 +51,17 @@ namespace Tango.BL.Enumerations [Description("Twine Software Developer")] SoftwareDeveloper = 6, + /// + /// (Manage organizations users and roles) + /// + [Description("Manage organizations users and roles")] + UsersAndRolesManager = 7, + + /// + /// (Color adjustment & calibration algorithms developer ) + /// + [Description("Color adjustment & calibration algorithms developer ")] + ColorScientist = 8, + } } diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/BrushStop.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/BrushStop.cs deleted file mode 100644 index 8ab24b308..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/BrushStop.cs +++ /dev/null @@ -1,270 +0,0 @@ -using ColorMine.ColorSpaces; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Media; -using Tango.Core; -using Tango.BL; -using Tango.BL.Enumerations; - -namespace Tango.BL.Entities -{ - /// - /// Extends the standard observable BrushStop class. - /// - /// - public partial class BrushStop - { - [NotMapped] - private bool _ignorePropChanged; - - #region Properties - - private ObservableCollection _liquidVolumes; - /// - /// Gets or sets the collection of this brush stop liquid volumes. - /// - [NotMapped] - [JsonIgnore] - public ObservableCollection LiquidVolumes - { - get { return _liquidVolumes; } - set { _liquidVolumes = value; RaisePropertyChangedAuto(); } - } - - /// - /// Gets or sets the brush stop color. - /// - [NotMapped] - [JsonIgnore] - public Color Color - { - get { return Color.FromRgb((byte)_red, (byte)_green, (byte)_blue); } - set - { - if (ColorSpace != null) - { - Rgb rgb = new Rgb(value.R, value.G, value.B); - - switch ((ColorSpaces)ColorSpace.Code) - { - case ColorSpaces.CMYK: - Cmyk cmyk = rgb.To(); - _cyan = cmyk.C; - _magenta = cmyk.M; - _yellow = cmyk.Y; - _black = cmyk.K; - break; - case ColorSpaces.LAB: - Lab lab = rgb.To(); - _l = lab.L; - _a = lab.A; - _b = lab.B; - break; - case ColorSpaces.RGB: - default: - _red = (byte)rgb.R; - _green = (byte)rgb.G; - _blue = (byte)rgb.B; - break; - } - - RaisePropertyChanged(nameof(Color)); - } - } - } - - /// - /// Gets the brush stop index within it's segment brush stops collection. - /// - [NotMapped] - public int Index - { - get { return StopIndex; } - } - - /// - /// Gets a value indicating whether this brush stop is the first one within its segment brush stops. - /// - [NotMapped] - [JsonIgnore] - public bool IsFirst - { - get { return StopIndex == 0; } - } - - /// - /// Gets a value indicating whether this brush stop is the last one within its segment brush stops. - /// - [NotMapped] - [JsonIgnore] - public bool IsLast - { - get { return StopIndex == Segment.BrushStops.Count - 1; } - } - - /// - /// Gets a value indicating whether this brush stop is not the first nor last within its segment brush stops. - /// - [NotMapped] - [JsonIgnore] - public bool IsMiddle - { - get { return !IsFirst && !IsLast; } - } - - /// - /// Gets this brush stop offset in meters. - /// - [NotMapped] - [JsonIgnore] - public double OffsetMeters - { - get - { - if (Segment != null) - { - return Segment.Length * (OffsetPercent / 100d); - } - else - { - return 0; - } - } - } - - #endregion - - #region Public Methods - - /// - /// Notifies about the offset percentage and offset meters changes. - /// - public void RaiseOffsetChanged() - { - RaisePropertyChanged(nameof(OffsetPercent)); - RaisePropertyChanged(nameof(OffsetMeters)); - RaisePropertyChanged(nameof(IsFirst)); - RaisePropertyChanged(nameof(IsLast)); - } - - /// - /// Sets this brush stop liquid volumes. - /// - /// The configuration. - /// The RML. - /// The process parameters table. - public void SetLiquidVolumes(Configuration configuration, Rml rml, ProcessParametersTable processParametersTable) - { - LiquidVolumes = new ObservableCollection(); - - foreach (var idsPack in configuration.IdsPacks) - { - LiquidVolumes.Add(new LiquidVolume(configuration, idsPack, rml, processParametersTable, this)); - } - } - - public void SetStopIndex(int index) - { - _stopindex = index; - } - - public void RaiseStopIndex() - { - StopIndex = _stopindex; - } - - #endregion - - #region Override Methods - - /// - /// Raises the property changed event. - /// - /// Name of the property. - protected override void RaisePropertyChanged(string propName) - { - base.RaisePropertyChanged(propName); - - if (!_ignorePropChanged && propName != nameof(ColorSpace) && ColorSpace != null) - { - - SynchronizeColorSpaces(); - - _ignorePropChanged = true; - - foreach (var prop in typeof(BrushStop).GetProperties(BindingFlags.Instance | BindingFlags.Public)) - { - RaisePropertyChanged(prop.Name); - } - - _ignorePropChanged = false; - } - } - - public override BrushStop Clone() - { - BrushStop cloned = base.Clone(); - return cloned; - } - - public BrushStop Clone(Segment segment) - { - BrushStop cloned = base.Clone(); - cloned.Segment = segment; - cloned.SegmentGuid = segment.Guid; - return cloned; - } - - #endregion - - #region Private Methods - - /// - /// Synchronizes between the different brush stop color spaces. - /// - private void SynchronizeColorSpaces() - { - Rgb rgb = new Rgb(Red, Green, Blue); - Cmyk cmyk = new Cmyk(Cyan, Magenta, Yellow, Black); - Lab lab = new Lab(L, A, B); - - switch ((ColorSpaces)ColorSpace.Code) - { - case ColorSpaces.RGB: - cmyk = rgb.To(); - lab = rgb.To(); - break; - case ColorSpaces.CMYK: - rgb = cmyk.To(); - lab = cmyk.To(); - break; - case ColorSpaces.LAB: - rgb = lab.To(); - cmyk = lab.To(); - break; - } - - _red = (int)rgb.R; - _green = (int)rgb.G; - _blue = (int)rgb.B; - - _cyan = cmyk.C; - _magenta = cmyk.M; - _yellow = cmyk.Y; - _black = cmyk.K; - - _l = lab.L; - _a = lab.A; - _b = lab.B; - } - - #endregion - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Cat.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Cat.cs deleted file mode 100644 index 3f95ed149..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Cat.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.PMR.ColorLab; - -namespace Tango.BL.Entities -{ - public partial class Cat - { - public CalibrationData GetCalibrationData() - { - return CalibrationData.Parser.ParseFrom(Data); - } - - public CalibrationData CreateDemoCalibrationData() - { - CalibrationData data = new CalibrationData(); - - for (int i = 0; i < 10; i++) - { - for (int j = 0; j < 10; j++) - { - data.CalibrationPoints.Add(new CalibrationPoint() - { - X = i, Y = j - }); - } - } - - return data; - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Configuration.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Configuration.cs deleted file mode 100644 index 963ed638d..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Configuration.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Entities -{ - public partial class Configuration - { - public override void DefferedDelete(ObservablesContext context) - { - IdsPacks.ToList().ForEach(x => x.DefferedDelete(context)); - var machine_configurations = context.MachinesConfigurations.Where(x => x.Configuration == this); - MachinesConfigurations.ToList().ForEach(x => x.DefferedDelete(context)); - base.DefferedDelete(context); - IdsPacks.Clear(); - } - - public override void Delete(ObservablesContext context) - { - IdsPacks.ToList().ForEach(x => x.DefferedDelete(context)); - var machine_configurations = context.MachinesConfigurations.Where(x => x.Configuration == this); - MachinesConfigurations.ToList().ForEach(x => x.DefferedDelete(context)); - base.Delete(context); - IdsPacks.Clear(); - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/HardwareVersion.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/HardwareVersion.cs deleted file mode 100644 index 0a97a3f9a..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/HardwareVersion.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Entities -{ - public partial class HardwareVersion - { - public override HardwareVersion Clone() - { - var cloned = base.Clone(); - cloned.HardwareMotors = HardwareMotors.Select(x => x.Clone()).ToObservableCollection(); - cloned.HardwareDancers = HardwareDancers.Select(x => x.Clone()).ToObservableCollection(); - cloned.HardwarePidControls = HardwarePidControls.Select(x => x.Clone()).ToObservableCollection(); - cloned.HardwareWinders = HardwareWinders.Select(x => x.Clone()).ToObservableCollection(); - return cloned; - } - - public override void Delete(ObservablesContext context) - { - HardwareDancers.ToList().ForEach(x => x.DefferedDelete(context)); - HardwareMotors.ToList().ForEach(x => x.DefferedDelete(context)); - HardwarePidControls.ToList().ForEach(x => x.DefferedDelete(context)); - HardwareWinders.ToList().ForEach(x => x.DefferedDelete(context)); - base.Delete(context); - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Job.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Job.cs deleted file mode 100644 index e5854a406..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Job.cs +++ /dev/null @@ -1,141 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Entities -{ - /// - /// Extends the standard observable Job class. - /// - /// - public partial class Job - { - /// - /// Initializes a new instance of the class. - /// - public Job(DateTime creationDate) - { - CreationDate = creationDate; - } - - #region Events - - /// - /// Occurs when the job total segments length has changed. - /// - public event EventHandler LengthChanged; - - #endregion - - #region Properties - - /// - /// Gets the total job segments length. - /// - [NotMapped] - [JsonIgnore] - public double Length - { - get { return Segments.Sum(x => x.Length) + (EnableInterSegment ? (InterSegmentLength * (Segments.Count > 0 ? Segments.Count - 1 : Segments.Count)) : 0); } - } - - #endregion - - #region Event Handlers - - /// - /// Handles the CollectionChanged event of the Segments collection. - /// - /// The source of the event. - /// The instance containing the event data. - private void Segments_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) - { - foreach (var segment in Segments) - { - segment.PropertyChanged += Segment_PropertyChanged; - } - - OnLengthChanged(); - } - - /// - /// Handles the PropertyChanged event of all job segments. - /// - /// The source of the event. - /// The instance containing the event data. - private void Segment_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - if (e.PropertyName == nameof(Segment.Length)) - { - OnLengthChanged(); - } - } - - #endregion - - #region Virtual Methods - - /// - /// Called when the property has been changed - /// - protected virtual void OnLengthChanged() - { - RaisePropertyChanged(nameof(Length)); - LengthChanged?.Invoke(this, new EventArgs()); - } - - #endregion - - #region Override Methods - - /// - /// Raises the property changed event. - /// - /// Name of the property. - protected override void RaisePropertyChanged(string propName) - { - base.RaisePropertyChanged(propName); - - if (propName == nameof(Segments)) - { - if (Segments != null) - { - Segments.CollectionChanged -= Segments_CollectionChanged; - Segments.CollectionChanged += Segments_CollectionChanged; - - OnLengthChanged(); - } - } - - if (propName == nameof(InterSegmentLength) || propName == nameof(EnableInterSegment)) - { - OnLengthChanged(); - } - } - - public override Job Clone() - { - Job cloned = base.Clone(); - - cloned.CreationDate = DateTime.UtcNow; - cloned.LastRun = null; - cloned.Segments = Segments.Select(x => x.Clone(cloned)).ToObservableCollection(); - - - return cloned; - } - - public override void DefferedDelete(ObservablesContext context) - { - Segments.ToList().ForEach(x => x.DefferedDelete(context)); - Segments.Clear(); - base.DefferedDelete(context); - } - - #endregion - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Machine.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Machine.cs deleted file mode 100644 index e00715795..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Machine.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Entities -{ - public partial class Machine - { - /// - /// Deletes this entity from the database - /// - public override void Delete(ObservablesContext context) - { - foreach (var machine_config in MachinesConfigurations) - { - machine_config.Delete(context); - machine_config.Configuration.Delete(context); - } - - base.Delete(context); - } - - public override void Save(ObservablesContext context) - { - foreach (var job in Jobs) - { - job.JobIndex = Jobs.IndexOf(job); - - foreach (var segment in job.Segments) - { - segment.SegmentIndex = job.Segments.IndexOf(segment); - - foreach (var stop in segment.BrushStops) - { - foreach (var prop in typeof(BrushStop).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType == typeof(double))) - { - double value = (double)prop.GetValue(stop); - - if (double.IsInfinity(value)) - { - prop.SetValue(stop, 0d); - } - } - } - } - } - - base.Save(context); - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/MachineVersion.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/MachineVersion.cs deleted file mode 100644 index aeec23b33..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/MachineVersion.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Entities -{ - public partial class MachineVersion - { - public override void Delete(ObservablesContext context) - { - this.DefaultConfiguration.Delete(context); - base.Delete(context); - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/ProcessParametersTable.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/ProcessParametersTable.cs deleted file mode 100644 index 0bb75120e..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/ProcessParametersTable.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Entities -{ - public partial class ProcessParametersTable - { - public event EventHandler DyeingSpeedMinInkUptakeChanged; - - protected override void RaisePropertyChanged(string propName) - { - base.RaisePropertyChanged(propName); - - if (propName == nameof(DyeingSpeed) || propName == nameof(MinInkUptake)) - { - OnDyeingSpeedMinInkUptakeChanged(); - } - } - - protected virtual void OnDyeingSpeedMinInkUptakeChanged() - { - DyeingSpeedMinInkUptakeChanged?.Invoke(this, new EventArgs()); - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Segment.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Segment.cs deleted file mode 100644 index 6f37f4788..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/Segment.cs +++ /dev/null @@ -1,90 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.ComponentModel; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.BL.Entities -{ - public partial class Segment - { - public override void Save(ObservablesContext context) - { - for (int i = 0; i < BrushStops.Count; i++) - { - BrushStops[i].StopIndex = i; - } - - base.Save(context); - } - - protected override void RaisePropertyChanged(string propName) - { - base.RaisePropertyChanged(propName); - - if (propName == nameof(Length)) - { - BrushStops.ToList().ForEach(x => x.RaiseOffsetChanged()); - } - } - - private TimeSpan _remainingTime; - [NotMapped] - [JsonIgnore] - public TimeSpan RemainingTime - { - get { return _remainingTime; } - set { _remainingTime = value; RaisePropertyChangedAuto(); } - } - - private bool _started; - [NotMapped] - [JsonIgnore] - public bool Started - { - get { return _started; } - set { _started = value; RaisePropertyChangedAuto(); } - } - - private bool _completed; - [NotMapped] - [JsonIgnore] - public bool Completed - { - get { return _completed; } - set { _completed = value; RaisePropertyChangedAuto(); } - } - - public override Segment Clone() - { - Segment cloned = base.Clone(); - - cloned.BrushStops = BrushStops.Select(x => x.Clone()).ToObservableCollection(); - - return cloned; - } - - public Segment Clone(Job job) - { - Segment cloned = base.Clone(); - - cloned.BrushStops = BrushStops.Select(x => x.Clone(cloned)).ToObservableCollection(); - - cloned.Job = job; - cloned.JobGuid = job.Guid; - - return cloned; - } - - public override void DefferedDelete(ObservablesContext context) - { - BrushStops.ToList().ForEach(x => x.DefferedDelete(context)); - BrushStops.Clear(); - base.DefferedDelete(context); - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/User.cs b/Software/Visual_Studio/Tango.BL/ObservablesExtensions/User.cs deleted file mode 100644 index 52b3970dc..000000000 --- a/Software/Visual_Studio/Tango.BL/ObservablesExtensions/User.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL.Enumerations; - -namespace Tango.BL.Entities -{ - public partial class User - { - /// - /// Determines whether the user has the specified permission. - /// - /// The permission. - /// - /// true if the user has permission; otherwise, false. - /// - public bool HasPermission(Permissions permission) - { - return UsersRoles.Select(x => x.Role).ToList().SelectMany(x => x.RolesPermissions).ToList().Exists(x => x.Permission.Code == permission.ToInt32()); - } - - /// - /// Gets the aggregated user roles as enumerations. - /// - public List Roles - { - get { return UsersRoles.Select(x => (Roles)x.Role.Code).ToList(); } - } - - /// - /// Gets the aggregated user permissions as enumerations. - /// - public List Permissions - { - - get - { - return UsersRoles.Select(x => x.Role).ToList().SelectMany(x => x.RolesPermissions).Select(x => (Permissions)x.Permission.Code).ToList(); - } - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 79667148b..6096d698f 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -181,16 +181,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/TableGrid.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/TableGrid.cs new file mode 100644 index 000000000..356320a0c --- /dev/null +++ b/Software/Visual_Studio/Tango.SharedUI/Controls/TableGrid.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; + +namespace Tango.SharedUI.Controls +{ + public class TableGrid : Grid + { + public TableGrid() + { + ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Auto) }); + ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); + this.Loaded += TableGrid_Loaded; + } + + private void TableGrid_Loaded(object sender, RoutedEventArgs e) + { + InvalidateGrid(); + } + + protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved) + { + base.OnVisualChildrenChanged(visualAdded, visualRemoved); + } + + protected override Size ArrangeOverride(Size arrangeSize) + { + return base.ArrangeOverride(arrangeSize); + } + + private void InvalidateGrid() + { + RowDefinitions.Clear(); + RowDefinitions.Add(new RowDefinition() { Height = new GridLength(50, GridUnitType.Pixel) }); + + int currentRow = 0; + + for (int i = 0; i < Children.Count; i++) + { + SetRow(Children[i], currentRow); + + if (i % 2 != 0) + { + SetColumn(Children[i], 1); + (Children[i] as FrameworkElement).Margin = new Thickness(20, 0, 0, 0); + currentRow++; + RowDefinitions.Add(new RowDefinition() { Height = new GridLength(50, GridUnitType.Pixel) }); + } + + (Children[i] as FrameworkElement).VerticalAlignment = VerticalAlignment.Bottom; + } + } + } +} diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj index 856056cdc..6743a90e5 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj +++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj @@ -86,6 +86,7 @@ ScriptEditorControl.xaml + diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln new file mode 100644 index 000000000..654857e10 --- /dev/null +++ b/Software/Visual_Studio/Tango.sln @@ -0,0 +1,2126 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Protobuf", "Tango.Protobuf\Tango.Protobuf.csproj", "{40073806-914E-4E78-97AB-FA9639308EBE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Versioning", "Versioning", "{E53A5748-F312-4A70-AB93-53249749D359}" + ProjectSection(SolutionItems) = preProject + Versioning\GlobalVersionInfo.cs = Versioning\GlobalVersionInfo.cs + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Core", "Tango.Core\Tango.Core.csproj", "{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utilities", "Utilities", "{5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Protobuf.UI", "Utilities\Tango.Protobuf.UI\Tango.Protobuf.UI.csproj", "{37E45CE1-A0F6-4ED7-9791-A1BED947602F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Protobuf.CLI", "Utilities\Tango.Protobuf.CLI\Tango.Protobuf.CLI.csproj", "{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Logging", "Tango.Logging\Tango.Logging.csproj", "{BC932DBD-7CDB-488C-99E4-F02CF441F55E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.UnitTesting", "Tango.UnitTesting\Tango.UnitTesting.csproj", "{FB82AA6B-1652-452C-8235-4FB2E524FBC0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Resources", "Resources", "{727F6479-A4A7-4288-ADD2-005CE0C5DE49}" + ProjectSection(SolutionItems) = preProject + Resources\dummyFile.txt = Resources\dummyFile.txt + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PMR", "Tango.PMR\Tango.PMR.csproj", "{E4927038-348D-4295-AAF4-861C58CB3943}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Transport", "Tango.Transport\Tango.Transport.csproj", "{74E700B0-1156-4126-BE40-EE450D3C3026}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Emulations", "Tango.Emulations\Tango.Emulations.csproj", "{63561E19-FF5A-414B-A5EF-E30711543E1D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineEM.UI", "Utilities\Tango.MachineEM.UI\Tango.MachineEM.UI.csproj", "{1971345A-0627-4428-88AA-1CCC4BFAEF4B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Stubs", "Tango.Stubs\Tango.Stubs.csproj", "{1981B537-39E9-4E7D-8430-27466481AEEE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Native", "Native", "{4443B71C-216E-4D4C-8D19-868F50803813}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tango.ProtoTest", "Native\Tango.ProtoTest\Tango.ProtoTest.vcxproj", "{35397DDA-DDC7-46BE-A802-3B722B6858E9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.TransportRouter.UI", "Utilities\Tango.TransportRouter.UI\Tango.TransportRouter.UI.csproj", "{37EE62DF-A988-45AF-BB30-DD3245164188}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{59B2E8DA-2D5D-48FA-9A96-F53BDB7EF7A9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineService", "Web\Tango.MachineService\Tango.MachineService.csproj", "{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Synchronization", "Tango.Synchronization\Tango.Synchronization.csproj", "{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ShortcutGenerator.CLI", "Utilities\Tango.ShortcutGenerator.CLI\Tango.ShortcutGenerator.CLI.csproj", "{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DAL.Remote", "Tango.DAL.Remote\Tango.DAL.Remote.csproj", "{38197109-8610-4D3F-92B9-16D48DF94D7C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DAL.Local", "Tango.DAL.Local\Tango.DAL.Local.csproj", "{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Settings", "Tango.Settings\Tango.Settings.csproj", "{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Serialization", "Tango.Serialization\Tango.Serialization.csproj", "{22F87980-E990-4686-BE81-BE63D562C4D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.CodeGeneration", "Tango.CodeGeneration\Tango.CodeGeneration.csproj", "{CAEDAE94-11ED-473C-888A-268A6D38CD20}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Stubs.CLI", "Utilities\Tango.Stubs.CLI\Tango.Stubs.CLI.csproj", "{BCD0C108-FC90-4537-8B80-ABBD201FECA3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Stubs.UI", "Utilities\Tango.Stubs.UI\Tango.Stubs.UI.csproj", "{FC0FB4A1-360E-42B1-8372-9208A3098B2A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SideChains", "SideChains", "{EC62BC9C-F2FE-4333-B7E4-110E38D43958}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "SideChains\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Scripting", "Tango.Scripting\Tango.Scripting.csproj", "{401989E7-AE1E-4002-B0EE-9A9F63740B97}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.SharedUI", "Tango.SharedUI\Tango.SharedUI.csproj", "{8491D07B-C1F6-4B62-A412-41B9FD2D6538}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DBObservablesGenerator.CLI", "Utilities\Tango.DBObservablesGenerator.CLI\Tango.DBObservablesGenerator.CLI.csproj", "{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MachineStudio", "MachineStudio", "{57DF2A95-5DDD-4830-A4AF-B484B59C7C2B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.UI", "MachineStudio\Tango.MachineStudio.UI\Tango.MachineStudio.UI.csproj", "{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.DB", "MachineStudio\Modules\Tango.MachineStudio.DB\Tango.MachineStudio.DB.csproj", "{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Common", "MachineStudio\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj", "{CB0B0AA2-BB24-4BCA-A720-45E397684E12}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Developer", "MachineStudio\Modules\Tango.MachineStudio.Developer\Tango.MachineStudio.Developer.csproj", "{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ColorPicker", "Tango.ColorPicker\Tango.ColorPicker.csproj", "{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Synchronization", "MachineStudio\Modules\Tango.MachineStudio.Synchronization\Tango.MachineStudio.Synchronization.csproj", "{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tango.ColorLib", "Native\Tango.ColorLib\Tango.ColorLib.vcxproj", "{625B2A26-97A9-45C9-8BCF-6BD30F593E17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.AutoComplete", "SideChains\Tango.AutoComplete\Tango.AutoComplete.csproj", "{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Integration", "Tango.Integration\Tango.Integration.csproj", "{4206AC58-3B57-4699-8835-90BF6DB01A61}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Stubs", "MachineStudio\Modules\Tango.MachineStudio.Stubs\Tango.MachineStudio.Stubs.csproj", "{22C2AA72-9493-4D0D-B421-8EF9789FB192}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.MachineDesigner", "MachineStudio\Modules\Tango.MachineStudio.MachineDesigner\Tango.MachineStudio.MachineDesigner.csproj", "{D0CE8122-077D-42A2-9490-028AE4769B52}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DragAndDrop", "Tango.DragAndDrop\Tango.DragAndDrop.csproj", "{B112D89A-A106-41AE-A0C1-4ABC84C477F5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Technician", "MachineStudio\Modules\Tango.MachineStudio.Technician\Tango.MachineStudio.Technician.csproj", "{5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RealTimeGraphEx", "SideChains\RealTimeGraphEx\RealTimeGraphEx.csproj", "{B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Tango.MachineStudio.Installer", "MachineStudio\Tango.MachineStudio.Installer\Tango.MachineStudio.Installer.vdproj", "{A19DEAB8-7356-4BCD-9FA8-B2FA09077165}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.SQLiteGenerator.CLI", "Utilities\Tango.SQLiteGenerator.CLI\Tango.SQLiteGenerator.CLI.csproj", "{8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ColorMine", "SideChains\ColorMine\ColorMine.csproj", "{37E4CEAB-B54B-451F-B535-04CF7DA9C459}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Video", "Tango.Video\Tango.Video.csproj", "{9652F972-2BD1-4283-99CB-FC6240434C17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.UITests", "Utilities\Tango.UITests\Tango.UITests.csproj", "{5B954D98-4020-4AC6-939F-C52B5646E8E6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Editors", "Tango.Editors\Tango.Editors.csproj", "{DE2F2B86-025B-4F26-83A4-38BD48224ED5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Visuals", "Tango.Visuals\Tango.Visuals.csproj", "{CF7C0FF4-9440-42CF-83B8-C060772792D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.DataCapture", "MachineStudio\Modules\Tango.MachineStudio.DataCapture\Tango.MachineStudio.DataCapture.csproj", "{FC337A7F-1214-41D8-9992-78092A3B961E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.UpdateService", "MachineStudio\Tango.MachineStudio.UpdateService\Tango.MachineStudio.UpdateService.csproj", "{CC6D62E9-C300-42F3-B452-79966E902B10}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Updater", "MachineStudio\Tango.MachineStudio.Updater\Tango.MachineStudio.Updater.csproj", "{844787CE-F409-4F18-BCCC-F3809ECB86F3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Publisher", "MachineStudio\Tango.MachineStudio.Publisher\Tango.MachineStudio.Publisher.csproj", "{E711CD86-89C1-432C-9C60-BFF30BBBFB3A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ILMerge.UI", "Utilities\Tango.ILMerge.UI\Tango.ILMerge.UI.csproj", "{9A477128-25A1-4B27-AAAB-7421F8ED2B9D}" +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Tango.Stubs.Installer", "Utilities\Tango.Stubs.Installer\Tango.Stubs.Installer.vdproj", "{6B399B28-83AE-4AD2-8438-25799B65086F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Embroidery", "Embroidery", "{34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEmbroidery", "Embroidery\project-files\visualstudio\libEmbroideryVS2008.vcxproj", "{BD30C7BD-9230-4ED7-B581-11F14041909D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEmbroideryTest", "Embroidery\libEmbroideryTest\libEmbroideryTest.vcxproj", "{0565AEEC-ED1B-4F0E-A277-D33F852207BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.HardwareDesigner", "MachineStudio\Modules\Tango.MachineStudio.HardwareDesigner\Tango.MachineStudio.HardwareDesigner.csproj", "{69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PMRGenerator.CLI", "Utilities\Tango.PMRGenerator.CLI\Tango.PMRGenerator.CLI.csproj", "{5AFD5B7D-757A-400C-B0C9-118834F5D67E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.BL", "Tango.BL\Tango.BL.csproj", "{F441FEEE-322A-4943-B566-110E12FD3B72}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tango.Embroidery", "Embroidery\Tango.Embroidery\Tango.Embroidery.vcxproj", "{A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.EmbroideryViewer", "Utilities\Tango.EmbroideryViewer\Tango.EmbroideryViewer.csproj", "{793FBFC1-549E-458B-A52F-784BD4F28586}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.EmbroideryUI", "Embroidery\Tango.EmbroideryUI\Tango.EmbroideryUI.csproj", "{BDBBE284-F564-4F51-AF41-3DF0434CEC62}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.BrushPicker", "Tango.BrushPicker\Tango.BrushPicker.csproj", "{40085232-ACED-4CBE-945B-90BA8153C151}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.ColorLab", "MachineStudio\Modules\Tango.MachineStudio.ColorLab\Tango.MachineStudio.ColorLab.csproj", "{4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.UsersAndRoles", "MachineStudio\Modules\Tango.MachineStudio.UsersAndRoles\Tango.MachineStudio.UsersAndRoles.csproj", "{88028F14-0028-4DED-B119-19B8EE23CF32}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + DefaultBuild|Any CPU = DefaultBuild|Any CPU + DefaultBuild|ARM = DefaultBuild|ARM + DefaultBuild|ARM64 = DefaultBuild|ARM64 + DefaultBuild|x64 = DefaultBuild|x64 + DefaultBuild|x86 = DefaultBuild|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|Any CPU.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM64.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM64.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x64.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x64.Build.0 = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x86.ActiveCfg = Release|Any CPU + {40073806-914E-4E78-97AB-FA9639308EBE}.Release|x86.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|Any CPU.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM64.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM64.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x64.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x64.Build.0 = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x86.ActiveCfg = Release|Any CPU + {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x86.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|Any CPU.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM64.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM64.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x64.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x64.Build.0 = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x86.ActiveCfg = Release|Any CPU + {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x86.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|Any CPU.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM64.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM64.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x64.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x64.Build.0 = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x86.ActiveCfg = Release|Any CPU + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x86.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|Any CPU.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM64.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM64.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x64.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x64.Build.0 = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x86.ActiveCfg = Release|Any CPU + {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x86.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM64.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM64.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x64.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x64.Build.0 = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x86.ActiveCfg = Release|Any CPU + {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x86.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|Any CPU.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM64.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM64.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x64.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x64.Build.0 = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x86.ActiveCfg = Release|Any CPU + {E4927038-348D-4295-AAF4-861C58CB3943}.Release|x86.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|Any CPU.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM64.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM64.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x64.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x64.Build.0 = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x86.ActiveCfg = Release|Any CPU + {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x86.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|Any CPU.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM64.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM64.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x64.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x64.Build.0 = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x86.ActiveCfg = Release|Any CPU + {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x86.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|Any CPU.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM64.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM64.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x64.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x64.Build.0 = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x86.ActiveCfg = Release|Any CPU + {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x86.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|Any CPU.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM64.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM64.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x64.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x64.Build.0 = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x86.ActiveCfg = Release|Any CPU + {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x86.Build.0 = Release|Any CPU + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|ARM.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|ARM64.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.ActiveCfg = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.Build.0 = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x86.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|Any CPU.Deploy.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM.Deploy.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM64.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|ARM64.Deploy.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x64.Build.0 = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x64.Deploy.0 = Debug|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x86.Build.0 = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.DefaultBuild|x86.Deploy.0 = Debug|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|Any CPU.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|ARM.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|ARM64.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x64.ActiveCfg = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x64.Build.0 = Release|x64 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x86.ActiveCfg = Release|Win32 + {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x86.Build.0 = Release|Win32 + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|Any CPU.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM64.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM64.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x64.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x64.Build.0 = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x86.ActiveCfg = Release|Any CPU + {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x86.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|Any CPU.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM64.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM64.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x64.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x64.Build.0 = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x86.ActiveCfg = Release|Any CPU + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x86.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|Any CPU.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM64.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM64.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x64.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x64.Build.0 = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x86.ActiveCfg = Release|Any CPU + {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x86.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM64.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM64.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x64.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x64.Build.0 = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x86.ActiveCfg = Release|Any CPU + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x86.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|Any CPU.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM64.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM64.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x64.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x64.Build.0 = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x86.ActiveCfg = Release|Any CPU + {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x86.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|Any CPU.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM64.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM64.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x64.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x64.Build.0 = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x86.ActiveCfg = Release|Any CPU + {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x86.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|Any CPU.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM64.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM64.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x64.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x64.Build.0 = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x86.ActiveCfg = Release|Any CPU + {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x86.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|Any CPU.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM64.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM64.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x64.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x64.Build.0 = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x86.ActiveCfg = Release|Any CPU + {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x86.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|Any CPU.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM64.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM64.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x64.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x64.Build.0 = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x86.ActiveCfg = Release|Any CPU + {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x86.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|Any CPU.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM64.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM64.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x64.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x64.Build.0 = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x86.ActiveCfg = Release|Any CPU + {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x86.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|Any CPU.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM64.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM64.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x64.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x64.Build.0 = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x86.ActiveCfg = Release|Any CPU + {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x86.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM64.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM64.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x64.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x64.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|Any CPU.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM64.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM64.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x64.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x64.Build.0 = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x86.ActiveCfg = Release|Any CPU + {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x86.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|Any CPU.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM64.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM64.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x64.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x64.Build.0 = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x86.ActiveCfg = Release|Any CPU + {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x86.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM64.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM64.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x64.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x64.Build.0 = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x86.ActiveCfg = Release|Any CPU + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x86.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|Any CPU.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|Any CPU.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|Any CPU.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM64.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM64.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x64.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x64.Build.0 = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x86.ActiveCfg = Release|Any CPU + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x86.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x86.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x86.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|Any CPU.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM64.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM64.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x64.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x64.Build.0 = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x86.ActiveCfg = Release|Any CPU + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x86.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|Any CPU.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM64.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM64.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x64.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x64.Build.0 = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x86.ActiveCfg = Release|Any CPU + {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x86.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|Any CPU.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM64.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM64.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x64.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x64.Build.0 = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x86.ActiveCfg = Release|Any CPU + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x86.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|Any CPU.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM64.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM64.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x64.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x64.Build.0 = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.ActiveCfg = Release|Any CPU + {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM64.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM64.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.Build.0 = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.ActiveCfg = Release|Any CPU + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.Build.0 = Release|Any CPU + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|ARM.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|ARM64.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|x64.ActiveCfg = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|x64.Build.0 = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Debug|x86.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|Any CPU.Deploy.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM.Deploy.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM64.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|ARM64.Deploy.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x64.Build.0 = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x64.Deploy.0 = Debug|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.Build.0 = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.Deploy.0 = Debug|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|Any CPU.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|ARM.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|ARM64.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x64.ActiveCfg = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x64.Build.0 = Release|x64 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x86.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x86.Build.0 = Release|Win32 + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|ARM64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Debug|x86.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|Any CPU.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM64.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|ARM64.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x64.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x64.Build.0 = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x86.ActiveCfg = Release|Any CPU + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4}.Release|x86.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|ARM64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Debug|x86.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|Any CPU.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM64.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|ARM64.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x64.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x64.Build.0 = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x86.ActiveCfg = Release|Any CPU + {4206AC58-3B57-4699-8835-90BF6DB01A61}.Release|x86.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|ARM64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Debug|x86.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|Any CPU.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM64.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|ARM64.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x64.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x64.Build.0 = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x86.ActiveCfg = Release|Any CPU + {22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x86.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|Any CPU.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM64.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM64.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x64.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x64.Build.0 = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x86.ActiveCfg = Release|Any CPU + {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x86.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|Any CPU.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM64.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM64.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x64.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x64.Build.0 = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x86.ActiveCfg = Release|Any CPU + {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x86.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|ARM64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Debug|x86.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|Any CPU.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM64.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|ARM64.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x64.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x64.Build.0 = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x86.ActiveCfg = Release|Any CPU + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15}.Release|x86.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|ARM64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x86.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Debug|x86.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|Any CPU.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM64.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|ARM64.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x64.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x64.Build.0 = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x86.ActiveCfg = Release|Any CPU + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC}.Release|x86.Build.0 = Release|Any CPU + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|Any CPU.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|ARM.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|ARM64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|x64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Debug|x86.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|Any CPU.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|ARM.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|ARM64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|x64.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.DefaultBuild|x86.ActiveCfg = Debug + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|Any CPU.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|ARM.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|ARM64.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|x64.ActiveCfg = Release + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165}.Release|x86.ActiveCfg = Release + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|ARM64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Debug|x86.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|Any CPU.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM64.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM64.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x64.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x64.Build.0 = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x86.ActiveCfg = Release|Any CPU + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|x86.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|ARM64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Debug|x86.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|Any CPU.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM64.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|ARM64.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x64.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x64.Build.0 = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x86.ActiveCfg = Release|Any CPU + {37E4CEAB-B54B-451F-B535-04CF7DA9C459}.Release|x86.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|ARM64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Debug|x86.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|Any CPU.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM64.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|ARM64.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x64.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x64.Build.0 = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x86.ActiveCfg = Release|Any CPU + {9652F972-2BD1-4283-99CB-FC6240434C17}.Release|x86.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|ARM64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Debug|x86.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|Any CPU.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM64.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM64.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x64.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x64.Build.0 = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x86.ActiveCfg = Release|Any CPU + {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|x86.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|ARM64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Debug|x86.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|Any CPU.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM64.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|ARM64.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x64.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x64.Build.0 = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x86.ActiveCfg = Release|Any CPU + {DE2F2B86-025B-4F26-83A4-38BD48224ED5}.Release|x86.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|ARM64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Debug|x86.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|Any CPU.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM64.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|ARM64.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x64.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x64.Build.0 = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x86.ActiveCfg = Release|Any CPU + {CF7C0FF4-9440-42CF-83B8-C060772792D4}.Release|x86.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|ARM64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Debug|x86.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|Any CPU.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM64.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|ARM64.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x64.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x64.Build.0 = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x86.ActiveCfg = Release|Any CPU + {FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x86.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x86.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x86.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|Any CPU.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM64.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM64.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x64.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x64.Build.0 = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x86.ActiveCfg = Release|Any CPU + {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x86.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|ARM64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Debug|x86.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|Any CPU.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM64.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|ARM64.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x64.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x64.Build.0 = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x86.ActiveCfg = Release|Any CPU + {844787CE-F409-4F18-BCCC-F3809ECB86F3}.Release|x86.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|ARM64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Debug|x86.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM64.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM64.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x64.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x64.Build.0 = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x86.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|x86.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|ARM64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Debug|x86.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|Any CPU.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM64.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM64.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x64.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x64.Build.0 = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x86.ActiveCfg = Release|Any CPU + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|x86.Build.0 = Release|Any CPU + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|Any CPU.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|ARM.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|ARM64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|x64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Debug|x86.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|Any CPU.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|ARM.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|ARM64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|x64.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.DefaultBuild|x86.ActiveCfg = Debug + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|Any CPU.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|ARM.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|ARM64.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|x64.ActiveCfg = Release + {6B399B28-83AE-4AD2-8438-25799B65086F}.Release|x86.ActiveCfg = Release + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|ARM.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|ARM64.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x64.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Debug|x86.Build.0 = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|Any CPU.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|Any CPU.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|ARM64.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x64.Build.0 = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x86.Build.0 = Debug|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|Any CPU.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|ARM.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|ARM64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|x64.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|x86.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|x86.Build.0 = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|ARM.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|ARM64.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x64.ActiveCfg = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x64.Build.0 = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Debug|x86.Build.0 = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|ARM64.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x64.Build.0 = Debug|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.DefaultBuild|x86.Build.0 = Debug|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|Any CPU.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|ARM.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|ARM64.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x64.ActiveCfg = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x64.Build.0 = Release|x64 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x86.ActiveCfg = Release|Win32 + {0565AEEC-ED1B-4F0E-A277-D33F852207BC}.Release|x86.Build.0 = Release|Win32 + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|ARM64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Debug|x86.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|Any CPU.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM64.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|ARM64.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x64.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x64.Build.0 = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x86.ActiveCfg = Release|Any CPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE}.Release|x86.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|ARM64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Debug|x86.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|Any CPU.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM64.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM64.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x64.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x64.Build.0 = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x86.ActiveCfg = Release|Any CPU + {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|x86.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|ARM64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Debug|x86.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|Any CPU.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM64.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|ARM64.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x64.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x64.Build.0 = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x86.ActiveCfg = Release|Any CPU + {F441FEEE-322A-4943-B566-110E12FD3B72}.Release|x86.Build.0 = Release|Any CPU + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|ARM.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|ARM64.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x64.ActiveCfg = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x64.Build.0 = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Debug|x86.Build.0 = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|Any CPU.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|Any CPU.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM64.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|ARM64.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x64.ActiveCfg = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x64.Build.0 = Debug|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x86.ActiveCfg = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x86.Build.0 = Debug|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|Any CPU.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|ARM.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|ARM64.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x64.ActiveCfg = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x64.Build.0 = Release|x64 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x86.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x86.Build.0 = Release|Win32 + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|Any CPU.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|ARM64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Debug|x86.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|Any CPU.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|Any CPU.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM64.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM64.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x64.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x64.Build.0 = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x86.ActiveCfg = Release|Any CPU + {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|x86.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|ARM64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Debug|x86.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|Any CPU.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM64.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|ARM64.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x64.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x64.Build.0 = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x86.ActiveCfg = Release|Any CPU + {BDBBE284-F564-4F51-AF41-3DF0434CEC62}.Release|x86.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|ARM64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Debug|x86.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|Any CPU.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM64.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|ARM64.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x64.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x64.Build.0 = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x86.ActiveCfg = Release|Any CPU + {40085232-ACED-4CBE-945B-90BA8153C151}.Release|x86.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|ARM64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x86.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Debug|x86.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|Any CPU.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM64.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|ARM64.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x64.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x64.Build.0 = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x86.ActiveCfg = Release|Any CPU + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1}.Release|x86.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|ARM.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|ARM.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|ARM64.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x64.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x64.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x86.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Debug|x86.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|Any CPU.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|ARM.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|ARM.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|ARM64.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|ARM64.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|x64.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|x64.Build.0 = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|x86.ActiveCfg = Release|Any CPU + {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {37E45CE1-A0F6-4ED7-9791-A1BED947602F} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {DE5AB980-A9AD-4273-8272-C4E1E062E3EC} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {1971345A-0627-4428-88AA-1CCC4BFAEF4B} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {35397DDA-DDC7-46BE-A802-3B722B6858E9} = {4443B71C-216E-4D4C-8D19-868F50803813} + {37EE62DF-A988-45AF-BB30-DD3245164188} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {3F09B230-5AAC-4651-BA7A-19F3BDFCF701} = {59B2E8DA-2D5D-48FA-9A96-F53BDB7EF7A9} + {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {BCD0C108-FC90-4537-8B80-ABBD201FECA3} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {FC0FB4A1-360E-42B1-8372-9208A3098B2A} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {116DFDB0-7681-46FE-8BAD-FE8AE09BB076} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {CB0B0AA2-BB24-4BCA-A720-45E397684E12} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {CE4A0D11-08A2-4CD6-9908-D6C62E80D805} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {625B2A26-97A9-45C9-8BCF-6BD30F593E17} = {4443B71C-216E-4D4C-8D19-868F50803813} + {BB2ABB74-BA58-4812-83AA-EC8171F42DF4} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {22C2AA72-9493-4D0D-B421-8EF9789FB192} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {D0CE8122-077D-42A2-9490-028AE4769B52} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {5D39C1E1-3ECD-4634-BD1B-2BCF71C54A15} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {B9AE25D6-BE35-492F-9079-21A7F3E6F7CC} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {A19DEAB8-7356-4BCD-9FA8-B2FA09077165} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {37E4CEAB-B54B-451F-B535-04CF7DA9C459} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {5B954D98-4020-4AC6-939F-C52B5646E8E6} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {FC337A7F-1214-41D8-9992-78092A3B961E} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {CC6D62E9-C300-42F3-B452-79966E902B10} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {844787CE-F409-4F18-BCCC-F3809ECB86F3} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B} + {9A477128-25A1-4B27-AAAB-7421F8ED2B9D} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {6B399B28-83AE-4AD2-8438-25799B65086F} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {BD30C7BD-9230-4ED7-B581-11F14041909D} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {0565AEEC-ED1B-4F0E-A277-D33F852207BC} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {5AFD5B7D-757A-400C-B0C9-118834F5D67E} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {793FBFC1-549E-458B-A52F-784BD4F28586} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {BDBBE284-F564-4F51-AF41-3DF0434CEC62} = {34839F9A-61D3-4ED3-B3F7-7DA3424CB0B6} + {4D183ACA-552B-4135-AE81-7C5A8E5FC3B1} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + {88028F14-0028-4DED-B119-19B8EE23CF32} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} + EndGlobalSection +EndGlobal -- cgit v1.3.1 From cf3c535fb0ef3140cc7a3a3c74cadd9b1d519bcf Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Wed, 7 Mar 2018 18:30:49 +0200 Subject: Working on users & roles module. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1048576 -> 1048576 bytes Software/Graphics/roles.png | Bin 0 -> 3875 bytes Software/Graphics/user.png | Bin 0 -> 20100 bytes .../Images/roles.png | Bin 0 -> 3875 bytes .../Images/user.png | Bin 0 -> 20100 bytes .../Tango.MachineStudio.UsersAndRoles.csproj | 10 ++ .../ViewModels/MainViewVM.cs | 61 ++++++++- .../Views/ContactView.xaml | 2 +- .../Views/OrganizationManagementView.xaml | 12 +- .../Views/UserManagementView.xaml | 143 ++++++++++++++++++++- .../Views/UserManagementView.xaml.cs | 23 ++++ .../Tango.SharedUI/Controls/TableGrid.cs | 16 ++- 13 files changed, 256 insertions(+), 11 deletions(-) create mode 100644 Software/Graphics/roles.png create mode 100644 Software/Graphics/user.png create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/roles.png create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/user.png (limited to 'Software/Visual_Studio') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index cd8aeb6d6..c81a777ab 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 0ef97d776..b1b7ed7e4 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Graphics/roles.png b/Software/Graphics/roles.png new file mode 100644 index 000000000..e7955be04 Binary files /dev/null and b/Software/Graphics/roles.png differ diff --git a/Software/Graphics/user.png b/Software/Graphics/user.png new file mode 100644 index 000000000..c8b7a3b40 Binary files /dev/null and b/Software/Graphics/user.png differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/roles.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/roles.png new file mode 100644 index 000000000..e7955be04 Binary files /dev/null and b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/roles.png differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/user.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/user.png new file mode 100644 index 000000000..c8b7a3b40 Binary files /dev/null and b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Images/user.png differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj index cfba775b8..fb134fdfd 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj @@ -142,6 +142,10 @@ {a34ee0f0-649d-41c8-8489-b6f1cc6924ee} Tango.Core + + {b112d89a-a106-41ae-a0c1-4abc84c477f5} + Tango.DragAndDrop + {bc932dbd-7cdb-488c-99e4-f02cf441f55e} Tango.Logging @@ -194,5 +198,11 @@ + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs index 9c10dc126..fdb0f8983 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs @@ -50,11 +50,11 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels set { _roles = value; RaisePropertyChangedAuto(); } } - private ObservableCollection _permissions; - public ObservableCollection Permissions + private ObservableCollection _managedUserRoles; + public ObservableCollection ManagedUserRoles { - get { return _permissions; } - set { _permissions = value; RaisePropertyChangedAuto(); } + get { return _managedUserRoles; } + set { _managedUserRoles = value; RaisePropertyChangedAuto(); } } private User _selectedUser; @@ -77,6 +77,10 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels public RelayCommand ManageUserCommand { get; set; } + public RelayCommand SaveOrganizationCommand { get; set; } + + public RelayCommand AddOrganizationCommand { get; set; } + public MainViewVM(UsersAndRolesNavigationManager navigation, INotificationProvider notification) { _navigation = navigation; @@ -87,6 +91,40 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels ManageOrganizationCommand = new RelayCommand(ManageOrganization, () => SelectedOrganization != null); BackToOrganizationsCommand = new RelayCommand(BackToOrganizations); ManageUserCommand = new RelayCommand(ManageUser, () => SelectedUser != null); + SaveOrganizationCommand = new RelayCommand(SaveOrganization); + AddOrganizationCommand = new RelayCommand(AddOrganization); + } + + private async void AddOrganization() + { + String name = _notification.ShowTextInput("Enter organization name", "Name"); + + if (!String.IsNullOrWhiteSpace(name)) + { + using (_notification.PushTaskItem("Adding new organization...")) + { + Organization org = new Organization(); + org.Name = name; + org.Address = new Address(); + org.Contact = new Contact(); + _organizationsContext.Organizations.Add(org); + await org.SaveAsync(_organizationsContext); + Organizations = _organizationsContext.Organizations.ToObservableCollection(); + SelectedOrganization = org; + ManageOrganization(); + } + } + } + + private async void SaveOrganization() + { + using (_notification.PushTaskItem("Saving organization address and contact...")) + { + ManagedOrganization.Contact.FullName = ManagedOrganization.Contact.FirstName + " " + ManagedOrganization.Contact.LastName; + await ManagedOrganization.SaveAsync(_manageContext); + LoadOrganizations(); + SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid); + } } private void ManageUser() @@ -96,7 +134,9 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels Task.Factory.StartNew(() => { _userContext = ObservablesContext.CreateDefault(); + Roles = _manageContext.Roles.ToObservableCollection(); ManagedUser = _manageContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid); + ManagedUserRoles = ManagedUser.Roles.ToObservableCollection(); InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView)); }); @@ -135,6 +175,19 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels Organizations = _organizationsContext.Organizations.ToObservableCollection(); } + public void OnDropRole(Role role) + { + ManagedUser.UsersRoles.Add(new UsersRole() + { + Role = role, + RoleGuid = role.Guid, + User = ManagedUser, + UserGuid = ManagedUser.Guid, + }); + + ManagedUserRoles.Add(role); + } + protected override void RaisePropertyChangedAuto([CallerMemberName] string caller = null) { base.RaisePropertyChangedAuto(caller); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/ContactView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/ContactView.xaml index dfff19f12..cdfa28c50 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/ContactView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/ContactView.xaml @@ -17,7 +17,7 @@ FIRST NAME LAST NAME - + EMAIL PHONE NUMBER diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml index b91a22750..7769f65ed 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml @@ -37,15 +37,23 @@ ADDRESS - + CONTACT - + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml index 0a3fec2ff..eaeb180ab 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml @@ -6,6 +6,7 @@ xmlns:global="clr-namespace:Tango.MachineStudio.UsersAndRoles" xmlns:vm="clr-namespace:Tango.MachineStudio.UsersAndRoles.ViewModels" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" xmlns:mahApps="http://metro.mahapps.com/winfx/xaml/controls" @@ -13,8 +14,146 @@ xmlns:local="clr-namespace:Tango.MachineStudio.UsersAndRoles.Views" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" mc:Ignorable="d" - d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}" Background="Transparent"> + d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + - + + + + + + + + + + + + + + + + + + + ADDRESS + + + + + + CONTACT + + + + + + + + + + + + + + ROLES + + DRAG & DROP ROLES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AVAILABLE ROLES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs index 88319cbb3..b26f0ea03 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs @@ -12,6 +12,9 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.BL.Entities; +using Tango.DragAndDrop; +using Tango.MachineStudio.UsersAndRoles.ViewModels; namespace Tango.MachineStudio.UsersAndRoles.Views { @@ -20,9 +23,29 @@ namespace Tango.MachineStudio.UsersAndRoles.Views /// public partial class UserManagementView : UserControl { + private MainViewVM _vm; + + public DraggingSurface DraggingSurface + { + get { return (DraggingSurface)GetValue(DraggingSurfaceProperty); } + set { SetValue(DraggingSurfaceProperty, value); } + } + public static readonly DependencyProperty DraggingSurfaceProperty = + DependencyProperty.Register("DraggingSurface", typeof(DraggingSurface), typeof(UserManagementView), new PropertyMetadata(null)); + public UserManagementView() { InitializeComponent(); + DraggingSurface = dragSurface; + Loaded += (_, __) => _vm = DataContext as MainViewVM; + } + + private void OnDropRole(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is Role) + { + _vm.OnDropRole(e.Draggable.DataContext as Role); + } } } } diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/TableGrid.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/TableGrid.cs index 356320a0c..454d8dfac 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Controls/TableGrid.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Controls/TableGrid.cs @@ -10,6 +10,17 @@ namespace Tango.SharedUI.Controls { public class TableGrid : Grid { + public GridLength RowHeight + { + get { return (GridLength)GetValue(RowHeightProperty); } + set { SetValue(RowHeightProperty, value); } + } + public static readonly DependencyProperty RowHeightProperty = + DependencyProperty.Register("RowHeight", typeof(GridLength), typeof(TableGrid), new PropertyMetadata(new GridLength(1, GridUnitType.Star))); + + + + public TableGrid() { ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Auto) }); @@ -25,6 +36,7 @@ namespace Tango.SharedUI.Controls protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved) { base.OnVisualChildrenChanged(visualAdded, visualRemoved); + InvalidateGrid(); } protected override Size ArrangeOverride(Size arrangeSize) @@ -35,7 +47,7 @@ namespace Tango.SharedUI.Controls private void InvalidateGrid() { RowDefinitions.Clear(); - RowDefinitions.Add(new RowDefinition() { Height = new GridLength(50, GridUnitType.Pixel) }); + RowDefinitions.Add(new RowDefinition() { Height = RowHeight }); int currentRow = 0; @@ -48,7 +60,7 @@ namespace Tango.SharedUI.Controls SetColumn(Children[i], 1); (Children[i] as FrameworkElement).Margin = new Thickness(20, 0, 0, 0); currentRow++; - RowDefinitions.Add(new RowDefinition() { Height = new GridLength(50, GridUnitType.Pixel) }); + RowDefinitions.Add(new RowDefinition() { Height = RowHeight }); } (Children[i] as FrameworkElement).VerticalAlignment = VerticalAlignment.Bottom; -- cgit v1.3.1 From a78482e702b263d7c37b2bf780e974acf87fa336 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 8 Mar 2018 12:17:09 +0200 Subject: Split RML MediaColor to L A B. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1048576 -> 1048576 bytes .../ViewModels/MainViewVM.cs | 3 + .../Views/DBViews/MediaColorView.xaml | 8 +- .../Views/DBViews/MediaColorsView.xaml | 6 +- .../Tango.MachineStudio.UpdateService.csproj | 5 +- .../Visual_Studio/Tango.BL/Entities/MediaColor.cs | 72 ++++++++++- .../Tango.BL/ExtensionMethods/MediaColor.cs | 33 ++++++ Software/Visual_Studio/Tango.BL/Tango.BL.csproj | 1 + .../Tango.DAL.Remote/DB/MEDIA_COLORS.cs | 5 +- .../Tango.DAL.Remote/DB/RemoteADO.edmx | 43 ++++--- .../Tango.DAL.Remote/DB/RemoteADO.edmx.diagram | 132 ++++++++++----------- 12 files changed, 209 insertions(+), 99 deletions(-) create mode 100644 Software/Visual_Studio/Tango.BL/ExtensionMethods/MediaColor.cs (limited to 'Software/Visual_Studio') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index c81a777ab..fffab33c8 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index b1b7ed7e4..6e69db505 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs index 70419c1a9..e09b57e11 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs @@ -225,6 +225,9 @@ namespace Tango.MachineStudio.ColorLab.ViewModels input.InputCoordinates.Red = (int)SourceColor.Red; input.InputCoordinates.Green = (int)SourceColor.Green; input.InputCoordinates.Blue = (int)SourceColor.Blue; + input.ThreadL = SelectedRML.MediaColor.L; + input.ThreadA = SelectedRML.MediaColor.A; + input.ThreadB = SelectedRML.MediaColor.B; foreach (var vm in LiquidsCalibrationData) { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorView.xaml index a88add000..9fcfc5a89 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorView.xaml @@ -27,8 +27,12 @@ - - + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorsView.xaml index 644c865da..57adda44d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorsView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MediaColorsView.xaml @@ -20,12 +20,16 @@ + + + + - + diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj index f572056ba..08d40b49a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj @@ -81,10 +81,7 @@ - - - - + Web.config diff --git a/Software/Visual_Studio/Tango.BL/Entities/MediaColor.cs b/Software/Visual_Studio/Tango.BL/Entities/MediaColor.cs index 06ae68a86..dda8125e0 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/MediaColor.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/MediaColor.cs @@ -14,22 +14,82 @@ namespace Tango.BL.Entities public partial class MediaColor : ObservableEntity { - protected Int32 _color; + protected String _name; /// - /// Gets or sets the mediacolor color. + /// Gets or sets the mediacolor name. /// - [Column("COLOR")] + [Column("NAME")] - public Int32 Color + public String Name { get { - return _color; + return _name; } set { - _color = value; RaisePropertyChanged(nameof(Color)); + _name = value; RaisePropertyChanged(nameof(Name)); + } + + } + + protected Double _l; + /// + /// Gets or sets the mediacolor l. + /// + [Column("L")] + + public Double L + { + get + { + return _l; + } + + set + { + _l = value; RaisePropertyChanged(nameof(L)); + } + + } + + protected Double _a; + /// + /// Gets or sets the mediacolor a. + /// + [Column("A")] + + public Double A + { + get + { + return _a; + } + + set + { + _a = value; RaisePropertyChanged(nameof(A)); + } + + } + + protected Double _b; + /// + /// Gets or sets the mediacolor b. + /// + [Column("B")] + + public Double B + { + get + { + return _b; + } + + set + { + _b = value; RaisePropertyChanged(nameof(B)); } } diff --git a/Software/Visual_Studio/Tango.BL/ExtensionMethods/MediaColor.cs b/Software/Visual_Studio/Tango.BL/ExtensionMethods/MediaColor.cs new file mode 100644 index 000000000..e4a312775 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/ExtensionMethods/MediaColor.cs @@ -0,0 +1,33 @@ +using ColorMine.ColorSpaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace Tango.BL.Entities +{ + public partial class MediaColor + { + private Color _color; + + public Color Color + { + get { return _color; } + set { _color = value; RaisePropertyChangedAuto(); } + } + + protected override void RaisePropertyChanged(string propName) + { + base.RaisePropertyChanged(propName); + + if (propName == nameof(L) || propName == nameof(A) || propName == nameof(B)) + { + Lab lab = new Lab(L, A, B); + var rgb = lab.To(); + Color = Color.FromRgb((byte)rgb.R, (byte)rgb.G, (byte)rgb.B); + } + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 6096d698f..714952d75 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -85,6 +85,7 @@ + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_COLORS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_COLORS.cs index c158b1770..4e7672b2e 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_COLORS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MEDIA_COLORS.cs @@ -23,7 +23,10 @@ namespace Tango.DAL.Remote.DB public int ID { get; set; } public string GUID { get; set; } public System.DateTime LAST_UPDATED { get; set; } - public int COLOR { get; set; } + public string NAME { get; set; } + public double L { get; set; } + public double A { get; set; } + public double B { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection RMLS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index 17c9fc49d..d60100532 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -24,7 +24,7 @@ - + @@ -208,10 +208,10 @@ - - - - + + + + @@ -593,7 +593,10 @@ - + + + + @@ -1721,9 +1724,7 @@ - - - + @@ -2466,7 +2467,7 @@ - + @@ -2679,10 +2680,10 @@ - - - - + + + + @@ -3128,7 +3129,10 @@ - + + + + @@ -4244,9 +4248,7 @@ - - - + @@ -4971,7 +4973,10 @@ - + + + + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index 5301bbb1f..77b727914 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,72 +5,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.3.1 From ef563b18e8afc5a30beed830f1615c4277021225 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 8 Mar 2018 13:48:13 +0200 Subject: Working on stub UI improvements. --- .../Tango.Emulations/Emulators/MachineEmulator.cs | 2 + .../Utilities/Tango.Stubs.UI/StubManager.cs | 3 ++ .../Tango.Stubs.UI/ViewModels/MainViewVM.cs | 56 +++++++++++++++------- .../Utilities/Tango.Stubs.UI/Views/MainView.xaml | 3 +- .../Tango.Stubs.UI/Views/MainView.xaml.cs | 13 +++-- 5 files changed, 56 insertions(+), 21 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs index 98d82df00..143a198eb 100644 --- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs +++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs @@ -173,6 +173,8 @@ namespace Tango.Emulations.Emulators private void HandleCalculateRequest(TangoMessage request) { + LogManager.Log("Calculate request received " + Environment.NewLine + request.Message.ToJsonString()); + Task.Factory.StartNew(() => { var response = MessageFactory.CreateTangoMessage(request.Container.Token); diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs index 0c121c116..150649c0b 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs @@ -117,6 +117,8 @@ namespace Tango.Stubs.UI bool done = false; + TaskCompletionSource _completionSource = new TaskCompletionSource(); + Task.Factory.StartNew(() => { _adapter.Write(requestData); @@ -144,6 +146,7 @@ namespace Tango.Stubs.UI IMessage message = MessageFactory.ExtractMessageFromContainer(responseContainer); OnCompleted(JsonConvert.SerializeObject(message, Formatting.Indented)); + _completionSource.SetResult(message); done = true; }); diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs index 462449182..79d535aaf 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs @@ -8,6 +8,7 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows; +using System.Windows.Controls; using Tango.Core.Commands; using Tango.Scripting; using Tango.Settings; @@ -25,6 +26,7 @@ namespace Tango.Stubs.UI.ViewModels { private UsbTransportAdapter _adapter; //Holds the USB transport adapter. private StubManager _stubManager; + private TextBox _logTextBox; #region Properties @@ -53,16 +55,6 @@ namespace Tango.Stubs.UI.ViewModels set { _selectedStubSnippet = value; RaisePropertyChanged(nameof(SelectedStubSnippet)); } } - private String _log; - /// - /// Gets or sets the current response log. - /// - public String Log - { - get { return _log; } - set { _log = value; RaisePropertyChanged(nameof(Log)); } - } - private CodeTabVM _selectedCodeTab; /// /// Gets or sets the selected code tab. @@ -167,6 +159,11 @@ namespace Tango.Stubs.UI.ViewModels /// public RelayCommand SaveAsCommand { get; set; } + /// + /// Gets or sets the clear command. + /// + public RelayCommand ClearCommand { get; set; } + /// /// Gets or sets the stub snippet selected command. /// @@ -206,7 +203,7 @@ namespace Tango.Stubs.UI.ViewModels foreach (var stubType in StubBase.GetAvailableRequestStubs()) { StubSnippetVM snippet = new StubSnippetVM(); - snippet.Name = stubType.Name.Replace("Stub_",""); + snippet.Name = stubType.Name.Replace("Stub_", ""); snippet.Code = String.Empty; @@ -225,6 +222,7 @@ namespace Tango.Stubs.UI.ViewModels SaveAsCommand = new RelayCommand(SaveAsFile); StubSnippetSelectedCommand = new RelayCommand(OnStubSnippetSelected); ExitCommand = new RelayCommand(() => Application.Current.Shutdown()); + ClearCommand = new RelayCommand(ClearLog); Ports = new List() { @@ -292,6 +290,14 @@ namespace Tango.Stubs.UI.ViewModels #region Private Methods + /// + /// Clears the log. + /// + private void ClearLog() + { + _logTextBox.Clear(); + } + /// /// Saves the selected script file. /// @@ -400,7 +406,7 @@ namespace Tango.Stubs.UI.ViewModels { IsRunning = true; SelectedCodeTab.IsRunning = true; - Log = (DateTime.Now.ToTimeString() + ": ") + "Executing script '" + SelectedCodeTab.Title + "'..." + Environment.NewLine; + _logTextBox.Text = (DateTime.Now.ToTimeString() + ": ") + "Executing script '" + SelectedCodeTab.Title + "'..." + Environment.NewLine; await Task.Factory.StartNew(async () => { @@ -443,12 +449,21 @@ namespace Tango.Stubs.UI.ViewModels IsRunning = false; SelectedCodeTab.IsRunning = false; Status = "Stopped!"; - Log += (DateTime.Now.ToTimeString() + ": ") + "Stopped!" + Environment.NewLine; + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + "Stopped!" + Environment.NewLine); } } #endregion + #region Public Methods + + public void SetLogTextBox(TextBox logTextBox) + { + _logTextBox = logTextBox; + } + + #endregion + #region Event Handlers /// @@ -458,7 +473,7 @@ namespace Tango.Stubs.UI.ViewModels /// Name of the stub. private void Manager_Executed(object sender, string stubName) { - Log += (DateTime.Now.ToTimeString() + ": ") + "Executing '" + stubName + "'..." + Environment.NewLine; + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + "Executing '" + stubName + "'..." + Environment.NewLine); Status = "Executing " + stubName + "..."; } @@ -471,7 +486,7 @@ namespace Tango.Stubs.UI.ViewModels { if (IsRunning) { - Log += (DateTime.Now.ToTimeString() + ": ") + ex.Message + Environment.NewLine; + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + ex.Message + Environment.NewLine); Status = "Failed!"; } } @@ -483,8 +498,8 @@ namespace Tango.Stubs.UI.ViewModels /// The response. private void Manager_Completed(object sender, string response) { - Log += (DateTime.Now.ToTimeString() + ": ") + "Response Received:" + Environment.NewLine; - Log += (DateTime.Now.ToTimeString() + ": ") + response + Environment.NewLine; + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + "Response Received:" + Environment.NewLine); + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + response + Environment.NewLine); Status = "Completed"; } @@ -495,6 +510,13 @@ namespace Tango.Stubs.UI.ViewModels SettingsManager.SaveDefaultSettings(); } + private void AppendTextLog(String log) + { + InvokeUI(() => + { + _logTextBox.AppendText(log); + }); + } #endregion } } diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml index b1cf09d51..cf0ccf657 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml @@ -279,7 +279,8 @@ - + + diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs index a51f78f7c..822dc1824 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs @@ -23,19 +23,26 @@ namespace Tango.Stubs.UI.Views /// public partial class MainView : UserControl { + private MainViewVM _vm; + public MainView() : base() { - InitializeComponent(); + InitializeComponent(); + Loaded += (_, __) => + { + _vm = DataContext as MainViewVM; + _vm.SetLogTextBox(txtLog); + }; } //Auto scroll to bottom of response log each time it is changed. private void TextBox_TextChanged(object sender, TextChangedEventArgs e) { - Task.Factory.StartNew(() => + Task.Factory.StartNew(() => { Thread.Sleep(50); - this.Dispatcher.Invoke(() => + this.Dispatcher.Invoke(() => { txtLog.SelectionStart = txtLog.Text.Length; txtLog.ScrollToEnd(); -- cgit v1.3.1 From 860c4f663dfdd2ba7676d7e02bf0509b30389cd5 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 8 Mar 2018 16:56:05 +0200 Subject: Stubs UI improvements ! --- .../CodeCompletion/CompletionList.xaml | 14 +++- .../CodeCompletion/CompletionWindow.cs | 2 +- .../ICSharpCode.AvalonEdit.csproj | 2 +- Software/Visual_Studio/Tango.Stubs/StubBase.cs | 5 ++ .../Tango.Stubs.UI/Resources/CodeTabTemplate.cs | 9 ++- .../Utilities/Tango.Stubs.UI/StubManager.cs | 57 +++++++++++++--- .../Tango.Stubs.UI/ViewModels/MainViewVM.cs | 76 +++++++++++++++++++--- .../Utilities/Tango.Stubs.UI/Views/MainView.xaml | 6 +- .../Tango.Stubs.UI/Views/MainView.xaml.cs | 2 + 9 files changed, 150 insertions(+), 23 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml index 484d43fda..5f5f1887d 100644 --- a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml +++ b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml @@ -38,11 +38,21 @@ - + diff --git a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs index 9953b7a38..c5ee45f5f 100644 --- a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs +++ b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs @@ -45,7 +45,7 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion // prevent user from resizing window to 0x0 this.MinHeight = 15; this.MinWidth = 30; - this.Background = new SolidColorBrush(Color.FromRgb(15, 15, 15)); + //this.Background = new SolidColorBrush(Color.FromRgb(15, 15, 15)); this.Foreground = Brushes.Gainsboro; toolTip.PlacementTarget = this; diff --git a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj index abf0d23a2..eafe583f4 100644 --- a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj +++ b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj @@ -59,7 +59,7 @@ false - bin\Release\ + ..\..\Build\Debug\ diff --git a/Software/Visual_Studio/Tango.Stubs/StubBase.cs b/Software/Visual_Studio/Tango.Stubs/StubBase.cs index ccc1a5496..ffebcb628 100644 --- a/Software/Visual_Studio/Tango.Stubs/StubBase.cs +++ b/Software/Visual_Studio/Tango.Stubs/StubBase.cs @@ -89,5 +89,10 @@ namespace Tango.Stubs { return typeof(MessageFactory).Assembly.GetTypes().Where(x => x.Namespace.Contains("Stubs") && x.Name.Contains("Request") && !x.Name.Contains("Reflection")).ToList(); } + + public static List GetAvailableRequestResponseStubs() + { + return typeof(MessageFactory).Assembly.GetTypes().Where(x => x.Namespace.Contains("Stubs") && !x.Name.Contains("Reflection")).ToList(); + } } } diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Resources/CodeTabTemplate.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Resources/CodeTabTemplate.cs index 68b249a8a..2a721184b 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Resources/CodeTabTemplate.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Resources/CodeTabTemplate.cs @@ -7,14 +7,19 @@ using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; +using Tango.PMR.Stubs; using Tango.Stubs.UI; public void OnExecute(StubManager stubManager) { for (int i = 0; i < 10; i++) { - stubManager.Run("calculate", 10, 5); - Thread.Sleep(10); + var response = stubManager.Run("calculate", 10, 5); + + if (response.Sum == 15) + { + stubManager.WriteLine("OK!"); + } } } diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs index 150649c0b..6249b3577 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/StubManager.cs @@ -7,6 +7,7 @@ using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; +using System.Windows.Controls; using Tango.PMR; using Tango.PMR.Common; using Tango.Transport.Adapters; @@ -19,6 +20,9 @@ namespace Tango.Stubs.UI public class StubManager { private UsbTransportAdapter _adapter; //Holds the USB transport adapter. + private Action _writeLine; + private Action _write; + private Action _clear; /// /// Occurs when the stub has failed to execute. @@ -44,8 +48,12 @@ namespace Tango.Stubs.UI /// Initializes a new instance of the class. /// /// The adapter. - public StubManager(UsbTransportAdapter adapter) + public StubManager(UsbTransportAdapter adapter, Action writeLine, Action write, Action clear) { + _writeLine = writeLine; + _write = write; + _clear = clear; + _adapter = adapter; } @@ -62,15 +70,15 @@ namespace Tango.Stubs.UI /// /// Name of the stub. /// The arguments. - public void Run(String stubName, params Object[] args) + public IMessage Run(String stubName, params Object[] args) { - if (Aborted) return; + if (Aborted) return null; var stubType = StubBase.GetAvailableRequestStubs().SingleOrDefault(x => x.Name.ToLower() == stubName.ToLower() || x.Name.Replace("Request", "").ToLower() == stubName.ToLower()); if (stubType == null) { OnFailed(new ArgumentException("Invalid stub '" + stubName + "'.")); - return; + return null; } var stubProps = stubType.GetProperties(BindingFlags.Public | BindingFlags.Instance); @@ -78,7 +86,7 @@ namespace Tango.Stubs.UI if (stubProps.Length > args.Length) { OnFailed(new ArgumentOutOfRangeException("Not enough arguments for " + stubType.Name + ".")); - return; + return null; } Executed?.Invoke(this, stubType.Name); @@ -117,7 +125,7 @@ namespace Tango.Stubs.UI bool done = false; - TaskCompletionSource _completionSource = new TaskCompletionSource(); + IMessage message = null; Task.Factory.StartNew(() => { @@ -144,9 +152,8 @@ namespace Tango.Stubs.UI } } - IMessage message = MessageFactory.ExtractMessageFromContainer(responseContainer); + message = MessageFactory.ExtractMessageFromContainer(responseContainer); OnCompleted(JsonConvert.SerializeObject(message, Formatting.Indented)); - _completionSource.SetResult(message); done = true; }); @@ -154,11 +161,45 @@ namespace Tango.Stubs.UI { Thread.Sleep(2); } + + return message; } catch (Exception ex) { OnFailed(ex); } + + return null; + } + + public T Run(String stubName, params Object[] args) where T : class, IMessage + { + return Run(stubName, args) as T; + } + + public void WriteLine(Object obj) + { + _writeLine(obj.ToString()); + } + + public void Write(Object obj) + { + _write(obj.ToString()); + } + + public void WriteLineHex(Object number, int digits) + { + _writeLine("#" + Convert.ToInt32(number).ToString("X" + digits.ToString())); + } + + public void WriteHex(Object number, int digits) + { + _write("#" + Convert.ToInt32(number).ToString("X" + digits.ToString())); + } + + public void Clear() + { + _clear(); } /// diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs index 79d535aaf..f4e4aa124 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/ViewModels/MainViewVM.cs @@ -1,4 +1,5 @@ -using Microsoft.Win32; +using Google.Protobuf; +using Microsoft.Win32; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -115,6 +116,14 @@ namespace Tango.Stubs.UI.ViewModels set { _isRunning = value; RaisePropertyChanged(nameof(IsRunning)); InvalidateRelayCommands(); } } + private bool _appendLogAuto; + + public bool AppendLogAuto + { + get { return _appendLogAuto; } + set { _appendLogAuto = value; RaisePropertyChangedAuto(); } + } + #endregion #region Commands @@ -188,6 +197,7 @@ namespace Tango.Stubs.UI.ViewModels /// public MainViewVM() { + AppendLogAuto = true; CodeTabs = new ObservableCollection(); NewCommand = new RelayCommand(CreateNewTab); CloseTabCommand = new RelayCommand(OnTabClosing); @@ -198,6 +208,11 @@ namespace Tango.Stubs.UI.ViewModels HighlightTypes = new ObservableCollection>(); HighlightTypes.Add(new KeyValuePair("stubManager", typeof(StubManager))); + foreach (var stubType in StubBase.GetAvailableRequestResponseStubs()) + { + HighlightTypes.Add(new KeyValuePair(stubType.GetType().Name, stubType)); + } + StubSnippets = new ObservableCollection(); foreach (var stubType in StubBase.GetAvailableRequestStubs()) @@ -207,12 +222,26 @@ namespace Tango.Stubs.UI.ViewModels snippet.Code = String.Empty; + snippet.Code += "// " + "Request ----" + Environment.NewLine; + foreach (var prop in stubType.GetProperties(BindingFlags.Public | BindingFlags.Instance)) { snippet.Code += "// " + prop.PropertyType.Name + " : " + prop.Name + Environment.NewLine; } - snippet.Code += String.Format("stubManager.Run(\"{0}\" ,{1});", stubType.Name, String.Join(", ", stubType.GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(x => x.PropertyType.Name == "string" ? "\"string\"" : x.PropertyType.Name))); + Type responseType = StubBase.GetAvailableRequestResponseStubs().SingleOrDefault(x => x.Name == stubType.Name.Replace("Request", "Response")); + + if (responseType != null) + { + snippet.Code += Environment.NewLine + "// " + "Response ----" + Environment.NewLine; + + foreach (var prop in responseType.GetProperties(BindingFlags.Public | BindingFlags.Instance)) + { + snippet.Code += "// " + prop.PropertyType.Name + " : " + prop.Name + Environment.NewLine; + } + } + + snippet.Code += String.Format("var response = stubManager.Run<{2}>(\"{0}\" ,{1});", stubType.Name, String.Join(", ", stubType.GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(x => x.PropertyType.Name == "string" ? "\"string\"" : x.PropertyType.Name)), stubType.Name.Replace("Request", "Response")); StubSnippets.Add(snippet); } @@ -412,7 +441,16 @@ namespace Tango.Stubs.UI.ViewModels { try { - _stubManager = new StubManager(_adapter); + _stubManager = new StubManager(_adapter, (txt) => + { + AppendTextLog(txt + Environment.NewLine); + }, (txt) => + { + AppendTextLog(txt); + }, () => + { + + }); var thisStubManager = _stubManager; _stubManager.Completed += Manager_Completed; _stubManager.Failed += Manager_Failed; @@ -421,6 +459,8 @@ namespace Tango.Stubs.UI.ViewModels ScriptEngine engine = new ScriptEngine(new StubOnExecuteParameters(_stubManager)); engine.ReferencedAssemblies.Add(this.GetType()); + engine.ReferencedAssemblies.Add(typeof(PMR.Stubs.CalculateRequest)); + engine.ReferencedAssemblies.Add(typeof(IMessage)); await engine.Run(SelectedCodeTab.Code); if (!thisStubManager.Aborted) @@ -473,7 +513,11 @@ namespace Tango.Stubs.UI.ViewModels /// Name of the stub. private void Manager_Executed(object sender, string stubName) { - AppendTextLog((DateTime.Now.ToTimeString() + ": ") + "Executing '" + stubName + "'..." + Environment.NewLine); + if (AppendLogAuto) + { + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + "Executing '" + stubName + "'..." + Environment.NewLine); + } + Status = "Executing " + stubName + "..."; } @@ -486,7 +530,11 @@ namespace Tango.Stubs.UI.ViewModels { if (IsRunning) { - AppendTextLog((DateTime.Now.ToTimeString() + ": ") + ex.Message + Environment.NewLine); + if (AppendLogAuto) + { + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + ex.Message + Environment.NewLine); + } + Status = "Failed!"; } } @@ -498,8 +546,11 @@ namespace Tango.Stubs.UI.ViewModels /// The response. private void Manager_Completed(object sender, string response) { - AppendTextLog((DateTime.Now.ToTimeString() + ": ") + "Response Received:" + Environment.NewLine); - AppendTextLog((DateTime.Now.ToTimeString() + ": ") + response + Environment.NewLine); + if (AppendLogAuto) + { + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + "Response Received:" + Environment.NewLine); + AppendTextLog((DateTime.Now.ToTimeString() + ": ") + response + Environment.NewLine); + } Status = "Completed"; } @@ -512,11 +563,20 @@ namespace Tango.Stubs.UI.ViewModels private void AppendTextLog(String log) { - InvokeUI(() => + InvokeUI(() => { _logTextBox.AppendText(log); }); } + + private void ClearTextLog() + { + InvokeUI(() => + { + _logTextBox.Text = String.Empty; + }); + } + #endregion } } diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml index cf0ccf657..1ba809a28 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml @@ -280,7 +280,11 @@ - + + + Log response automatically + + diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs index 822dc1824..2e9878453 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Views/MainView.xaml.cs @@ -32,6 +32,8 @@ namespace Tango.Stubs.UI.Views { _vm = DataContext as MainViewVM; _vm.SetLogTextBox(txtLog); + + }; } -- cgit v1.3.1 From ba06627369df7c7eebc38fbefc22f2f78124f33a Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 8 Mar 2018 18:39:11 +0200 Subject: Improved performance of generic protobuf message decoding.. --- .../ViewModels/MainViewVM.cs | 22 ++----------------- Software/Visual_Studio/Tango.PMR/MessageFactory.cs | 25 ++++++++++++++++++++-- 2 files changed, 25 insertions(+), 22 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index dfaeb7044..b2dded955 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -40,7 +40,7 @@ namespace Tango.MachineStudio.Developer.ViewModels /// Represents the developer module main view, view model. /// /// - public class MainViewVM : ViewModel, IShutdownRequestBlocker, IShutdownListener + public class MainViewVM : ViewModel, IShutdownRequestBlocker, IShutdownListener { private static object _syncLock = new object(); private const string EMB_FORMATS_EXPORT = "Baby Lock (PES)|*.pes|Tajima (DST)|*.dst|EXP|*.exp|PCS|*.pcs|HUS|*.hus|KSM|*.ksm"; @@ -593,21 +593,12 @@ namespace Tango.MachineStudio.Developer.ViewModels #region Constructors - /// - /// Initializes a new instance of the class. - /// - public MainViewVM(IMainView view) : base(view, true) - { - - } - /// /// Initializes a new instance of the class. /// /// The application manager. /// The notification provider. - [PreferredConstructor] - public MainViewVM(IMainView view, IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, IAuthenticationProvider authentication) : this(view) + public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, IAuthenticationProvider authentication) { SelectedJobs = new ObservableCollection(); @@ -1799,14 +1790,5 @@ namespace Tango.MachineStudio.Developer.ViewModels } #endregion - - #region IMainView - - protected override void OnViewAttached() - { - base.OnViewAttached(); - } - - #endregion } } diff --git a/Software/Visual_Studio/Tango.PMR/MessageFactory.cs b/Software/Visual_Studio/Tango.PMR/MessageFactory.cs index 2c4eb3d13..b1d2a7c55 100644 --- a/Software/Visual_Studio/Tango.PMR/MessageFactory.cs +++ b/Software/Visual_Studio/Tango.PMR/MessageFactory.cs @@ -14,6 +14,27 @@ namespace Tango.PMR /// public static class MessageFactory { + private static Dictionary _pmrTypes; + private static MethodInfo _parseTangoMessageMethod; + + static MessageFactory() + { + _parseTangoMessageMethod = typeof(MessageFactory).GetMethod("ParseTangoMessage", BindingFlags.Public | BindingFlags.Static); + + _pmrTypes = new Dictionary(); + var types = typeof(MessageFactory).Assembly.GetTypes().ToList(); + + foreach (var value in Enum.GetValues(typeof(MessageType)).OfType()) + { + var type = types.SingleOrDefault(x => x.Name == value.ToOriginalName()); + + if (type != null) + { + _pmrTypes.Add(value, type); + } + } + } + /// /// Creates a new . /// @@ -98,7 +119,7 @@ namespace Tango.PMR { MessageContainer container = MessageContainer.Parser.ParseFrom(data); IMessage message = ExtractMessageFromContainer(container); - return (ITangoMessage)typeof(MessageFactory).GetMethod("ParseTangoMessage",BindingFlags.Public | BindingFlags.Static).MakeGenericMethod(message.GetType()).Invoke(null, new[] { data }); + return (ITangoMessage)_parseTangoMessageMethod.MakeGenericMethod(message.GetType()).Invoke(null, new[] { data }); } /// @@ -121,7 +142,7 @@ namespace Tango.PMR /// public static IMessage ExtractMessageFromContainer(MessageContainer container) { - var type = typeof(MessageFactory).Assembly.GetTypes().ToList().SingleOrDefault(x => x.Name == container.Type.ToOriginalName()); + var type = _pmrTypes[container.Type]; MessageParser parser = type.GetProperty("Parser").GetValue(container) as MessageParser; return parser.ParseFrom(container.Data); } -- cgit v1.3.1 From 1270aaf9eac23a03ee8e8ec6ceb9fc6cae6d6c65 Mon Sep 17 00:00:00 2001 From: Roy Date: Sat, 10 Mar 2018 20:05:42 +0200 Subject: Profiling and performance optimizations.. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1048576 -> 1048576 bytes .../Tango.MachineStudio.UI/MainWindow.xaml | 10 +++++----- .../Tango.MachineStudio.UI/MainWindow.xaml.cs | 13 +++++++++++++ .../ViewModels/LoadingViewVM.cs | 11 +++++++++++ .../ViewModels/MachineConnectionViewVM.cs | 9 ++++++++- .../ViewModels/ShutdownViewVM.cs | 4 +++- .../Tango.MachineStudio.UI/Views/LoadingView.xaml | 2 +- .../Tango.MachineStudio.UI/Views/ShutdownView.xaml | 2 +- .../Views/ShutdownView.xaml.cs | 8 +++++++- .../Tango.MachineStudio.UI/Views/UpdateView.xaml | 4 ++-- .../Services/ExternalBridgeScanner.cs | 8 +++----- .../Adapters/TcpTransportAdapter.cs | 2 +- .../Adapters/UsbTransportAdapter.cs | 2 +- .../Tango.Transport/TransporterBase.cs | 9 +++++---- 15 files changed, 61 insertions(+), 23 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index fffab33c8..598a7c37e 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 6e69db505..1411d7c4e 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml index 63b2b3f6a..6b2bbaaec 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml @@ -14,7 +14,7 @@ - + @@ -22,16 +22,16 @@ - + - + - + - + diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs index 36ee95f10..c4d9b4a28 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs @@ -10,7 +10,9 @@ using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; +using System.Windows.Interop; using System.Windows.Media; +using System.Windows.Media.Animation; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; @@ -30,6 +32,8 @@ namespace Tango.MachineStudio.UI public MainWindow() { + //Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline), new FrameworkPropertyMetadata { DefaultValue = 40 }); + try { InitializeComponent(); @@ -42,6 +46,15 @@ namespace Tango.MachineStudio.UI { LogManager.Log(ex); } + + this.Loaded += MainWindow_Loaded; + } + + private void MainWindow_Loaded(object sender, RoutedEventArgs e) + { + //HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource; + //HwndTarget hwndTarget = hwndSource.CompositionTarget; + //hwndTarget.RenderMode = RenderMode.SoftwareOnly; } private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs index 7d83fa032..9ee8471ec 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs @@ -28,6 +28,14 @@ namespace Tango.MachineStudio.UI.ViewModels private LogManager logManager = LogManager.Default; public IStudioApplicationManager ApplicationManager { get; set; } + private bool _isLoading; + + public bool IsLoading + { + get { return _isLoading; } + set { _isLoading = value; RaisePropertyChangedAuto(); } + } + /// /// Initializes a new instance of the class. /// @@ -48,6 +56,8 @@ namespace Tango.MachineStudio.UI.ViewModels /// private void Load() { + IsLoading = true; + ThreadsHelper.StartStaThread(() => { try @@ -57,6 +67,7 @@ namespace Tango.MachineStudio.UI.ViewModels { _studioModuleLoader.LoadModules(); _navigationManager.NavigateTo(NavigationView.LoginView); + IsLoading = false; }); } catch (Exception ex) diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs index 23be8d274..4fcebe3dd 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs @@ -49,7 +49,6 @@ namespace Tango.MachineStudio.UI.ViewModels { Scanner = scanner; ConnectCommand = new RelayCommand(Connect,(x) => SelectedMachine != null); - Scanner.Start(); } /// @@ -59,10 +58,17 @@ namespace Tango.MachineStudio.UI.ViewModels { if (SelectedMachine != null) { + Scanner.Stop(); Accept(); } } + protected override void Cancel() + { + Scanner.Stop(); + base.Cancel(); + } + /// /// Called when the dialog has been shown. /// @@ -70,6 +76,7 @@ namespace Tango.MachineStudio.UI.ViewModels { base.OnShow(); Scanner.AvailableMachines.Clear(); + Scanner.Start(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ShutdownViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ShutdownViewVM.cs index ed771f00a..92e0eb9b5 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ShutdownViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ShutdownViewVM.cs @@ -3,13 +3,15 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.SharedUI; namespace Tango.MachineStudio.UI.ViewModels { /// /// Represents the Machine Studio shutdown view, view model. /// - public class ShutdownViewVM + public class ShutdownViewVM : ViewModel { + } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml index 5f65100df..91fc11a22 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml @@ -15,7 +15,7 @@ Machine Studio Twine Solutions - + Loading, please wait... diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml index dd86238ce..cc1060b2a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml @@ -15,7 +15,7 @@ Machine Studio Twine Solutions - + Shutting Down, please wait... diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs index e1d49aec0..afe6d3800 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs @@ -12,17 +12,23 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using static Tango.SharedUI.Controls.MultiTransitionControl; namespace Tango.MachineStudio.UI.Views { /// /// Interaction logic for ShutdownView.xaml /// - public partial class ShutdownView : UserControl + public partial class ShutdownView : UserControl, ITransitionView { public ShutdownView() { InitializeComponent(); } + + public void OnTransitionCompleted() + { + progressRing.IsActive = true; + } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml index dabbaab94..e34cdb83b 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml @@ -16,9 +16,9 @@ - + Update Center diff --git a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs index c0d14d102..b8e9b2c6d 100644 --- a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs +++ b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs @@ -29,6 +29,7 @@ namespace Tango.Integration.Services { private Thread _tcpDiscoveryThread; private Thread _usbDiscoveryThread; + private UdpClient _server; private LogManager LogManager = LogManager.Default; private ObservableCollection _availableMachines; @@ -56,6 +57,7 @@ namespace Tango.Integration.Services /// public ExternalBridgeScanner() { + _server = new UdpClient(SettingsManager.Default.Integration.ExternalBridgeServiceDiscoveryPort); AvailableMachines = new ObservableCollection(); } @@ -121,12 +123,10 @@ namespace Tango.Integration.Services /// private void TcpDiscoveryThreadMethod() { - var Server = new UdpClient(SettingsManager.Default.Integration.ExternalBridgeServiceDiscoveryPort); - while (!IsStarted) { var ClientEp = new IPEndPoint(IPAddress.Any, 0); - var ClientRequestData = Server.Receive(ref ClientEp); + var ClientRequestData = _server.Receive(ref ClientEp); ExternalBridgeUdpDiscoveryPacket packet = ExternalBridgeUdpDiscoveryPacket.Parser.ParseFrom(ClientRequestData); @@ -144,8 +144,6 @@ namespace Tango.Integration.Services Thread.Sleep(1000); } - - Server.Close(); } /// diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs b/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs index 768f0914f..4a0b47fe4 100644 --- a/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs +++ b/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs @@ -186,7 +186,7 @@ namespace Tango.Transport.Adapters { read += _socket.GetStream().Read(data, read, Math.Min(_socket.Available, expectedSize - read)); - Thread.Sleep(2); + //Thread.Sleep(2); if (State != TransportComponentState.Connected) { diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/UsbTransportAdapter.cs b/Software/Visual_Studio/Tango.Transport/Adapters/UsbTransportAdapter.cs index 019c7099d..99c6a7a49 100644 --- a/Software/Visual_Studio/Tango.Transport/Adapters/UsbTransportAdapter.cs +++ b/Software/Visual_Studio/Tango.Transport/Adapters/UsbTransportAdapter.cs @@ -163,7 +163,7 @@ namespace Tango.Transport.Adapters { read += _serialPort.Read(data, read, Math.Min(_serialPort.BytesToRead, expectedSize - read)); - Thread.Sleep(2); + //Thread.Sleep(2); if (State != TransportComponentState.Connected) { diff --git a/Software/Visual_Studio/Tango.Transport/TransporterBase.cs b/Software/Visual_Studio/Tango.Transport/TransporterBase.cs index e9e3afc52..2ca9c51ba 100644 --- a/Software/Visual_Studio/Tango.Transport/TransporterBase.cs +++ b/Software/Visual_Studio/Tango.Transport/TransporterBase.cs @@ -414,7 +414,7 @@ namespace Tango.Transport { while (State == TransportComponentState.Connected) { - if (Adapter != null && _sendingQueue.Count > 0) + while (Adapter != null && _sendingQueue.Count > 0) { TransportMessageBase message; if (_sendingQueue.TryDequeue(out message)) @@ -447,7 +447,8 @@ namespace Tango.Transport } } - Thread.Sleep(1); + Thread.Sleep(10); + } } catch (Exception ex) @@ -471,7 +472,7 @@ namespace Tango.Transport { byte[] data; - if (Adapter != null && _arrivedResponses.Count > 0) + while (Adapter != null && _arrivedResponses.Count > 0) { if (_arrivedResponses.TryDequeue(out data)) { @@ -566,7 +567,7 @@ namespace Tango.Transport } } - Thread.Sleep(1); + Thread.Sleep(10); } } catch (Exception ex) -- cgit v1.3.1 From a851545901aea6ac5e33d375236afdef6ecfa26f Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 11 Mar 2018 10:59:52 +0200 Subject: Implemented VS solution release builds! --- .../Tango.Embroidery/Tango.Embroidery.vcxproj | 6 +- .../Tango.EmbroideryUI/Tango.EmbroideryUI.csproj | 2 +- .../libEmbroideryTest/libEmbroideryTest.vcxproj | 5 +- .../visualstudio/libEmbroideryVS2008.vcxproj | 9 +- .../Tango.MachineStudio.ColorLab.csproj | 2 +- .../Tango.MachineStudio.DB.csproj | 2 +- .../Tango.MachineStudio.DataCapture.csproj | 2 +- .../Tango.MachineStudio.Developer.csproj | 2 +- .../Tango.MachineStudio.HardwareDesigner.csproj | 2 +- .../Tango.MachineStudio.MachineDesigner.csproj | 2 +- .../Tango.MachineStudio.Stubs.csproj | 2 +- .../Tango.MachineStudio.Synchronization.csproj | 2 +- .../Tango.MachineStudio.Technician.csproj | 2 +- .../Tango.MachineStudio.UsersAndRoles.csproj | 2 +- .../Tango.MachineStudio.Common.csproj | 2 +- .../Tango.MachineStudio.Installer.vdproj | 1099 ++++++++++-- .../Tango.MachineStudio.Publisher.csproj | 2 +- .../Tango.MachineStudio.UI.csproj | 4 +- .../Tango.MachineStudio.Updater.csproj | 2 +- .../Native/Tango.ColorLib/Tango.ColorLib.vcxproj | 5 +- .../Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj | 16 +- .../ICSharpCode.AvalonEdit.csproj | 2 +- Software/Visual_Studio/Tango.BL/Tango.BL.csproj | 2 +- .../Tango.BrushPicker/Tango.BrushPicker.csproj | 2 +- .../Tango.CodeGeneration.csproj | 2 +- .../Tango.ColorPicker/Tango.ColorPicker.csproj | 2 +- .../Visual_Studio/Tango.Core/Tango.Core.csproj | 2 +- .../Tango.DAL.Local/Tango.DAL.Local.csproj | 2 +- .../Tango.DAL.Remote/Tango.DAL.Remote.csproj | 2 +- .../Tango.DragAndDrop/Tango.DragAndDrop.csproj | 2 +- .../Tango.Editors/Tango.Editors.csproj | 2 +- .../Tango.Emulations/Tango.Emulations.csproj | 2 +- .../Tango.Integration/Tango.Integration.csproj | 2 +- .../Tango.Logging/Tango.Logging.csproj | 2 +- Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj | 2 +- .../Tango.Protobuf/Tango.Protobuf.csproj | 2 +- .../Tango.Scripting/Tango.Scripting.csproj | 2 +- .../Tango.Serialization/Tango.Serialization.csproj | 2 +- .../Tango.Settings/Tango.Settings.csproj | 2 +- .../Tango.SharedUI/Tango.SharedUI.csproj | 2 +- .../Visual_Studio/Tango.Stubs/Tango.Stubs.csproj | 2 +- .../Tango.Synchronization.csproj | 2 +- .../Tango.Transport/Tango.Transport.csproj | 2 +- .../Tango.UnitTesting/Tango.UnitTesting.csproj | 2 +- .../Tango.Visuals/Tango.Visuals.csproj | 2 +- Software/Visual_Studio/Tango.sln | 12 +- .../Tango.DBObservablesGenerator.CLI.csproj | 2 +- .../Tango.EmbroideryViewer.csproj | 2 +- .../Tango.MachineEM.UI/Tango.MachineEM.UI.csproj | 2 +- .../Tango.PMRGenerator.CLI.csproj | 2 +- .../Tango.Protobuf.CLI/Tango.Protobuf.CLI.csproj | 2 +- .../Tango.Protobuf.UI/Tango.Protobuf.UI.csproj | 2 +- .../Tango.SQLiteGenerator.CLI.csproj | 2 +- .../Tango.ShortcutGenerator.CLI.csproj | 2 +- .../Tango.Stubs.CLI/Tango.Stubs.CLI.csproj | 2 +- .../Tango.Stubs.Installer.vdproj | 1764 ++++---------------- .../Utilities/Tango.Stubs.UI/Tango.Stubs.UI.csproj | 4 +- .../Tango.TransportRouter.UI.csproj | 4 +- .../Utilities/Tango.UITests/Tango.UITests.csproj | 2 +- 59 files changed, 1296 insertions(+), 1728 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/Embroidery/Tango.Embroidery/Tango.Embroidery.vcxproj b/Software/Visual_Studio/Embroidery/Tango.Embroidery/Tango.Embroidery.vcxproj index 691cefcdc..41d11f2fe 100644 --- a/Software/Visual_Studio/Embroidery/Tango.Embroidery/Tango.Embroidery.vcxproj +++ b/Software/Visual_Studio/Embroidery/Tango.Embroidery/Tango.Embroidery.vcxproj @@ -73,13 +73,14 @@ true $(SolutionDir)Build\Debug - $(ProjectDir);$(IncludePath) + $(IncludePath) true false + $(SolutionDir)Build\Debug false @@ -91,7 +92,7 @@ Level3 Disabled WIN32;_DEBUG;_WINDOWS;_USRDLL;TANGOEMBROIDERY_EXPORTS;%(PreprocessorDefinitions) - ..\libembroidery;%(AdditionalIncludeDirectories) + $(ProjectDir);..\libembroidery;%(AdditionalIncludeDirectories) Windows @@ -121,6 +122,7 @@ true true WIN32;NDEBUG;_WINDOWS;_USRDLL;TANGOEMBROIDERY_EXPORTS;%(PreprocessorDefinitions) + $(ProjectDir);..\libembroidery;%(AdditionalIncludeDirectories) Windows diff --git a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj index 11b779275..f0b55d92a 100644 --- a/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj +++ b/Software/Visual_Studio/Embroidery/Tango.EmbroideryUI/Tango.EmbroideryUI.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Embroidery/libEmbroideryTest/libEmbroideryTest.vcxproj b/Software/Visual_Studio/Embroidery/libEmbroideryTest/libEmbroideryTest.vcxproj index e0fa10d62..14b902ba6 100644 --- a/Software/Visual_Studio/Embroidery/libEmbroideryTest/libEmbroideryTest.vcxproj +++ b/Software/Visual_Studio/Embroidery/libEmbroideryTest/libEmbroideryTest.vcxproj @@ -36,7 +36,7 @@ Application false v141 - true + false Unicode @@ -72,12 +72,14 @@ true + $(SolutionDir)Build\Debug true false + $(SolutionDir)Build\Release false @@ -116,6 +118,7 @@ true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + ..\libembroidery;%(AdditionalIncludeDirectories) Console diff --git a/Software/Visual_Studio/Embroidery/project-files/visualstudio/libEmbroideryVS2008.vcxproj b/Software/Visual_Studio/Embroidery/project-files/visualstudio/libEmbroideryVS2008.vcxproj index 3814fd65c..8076b030d 100644 --- a/Software/Visual_Studio/Embroidery/project-files/visualstudio/libEmbroideryVS2008.vcxproj +++ b/Software/Visual_Studio/Embroidery/project-files/visualstudio/libEmbroideryVS2008.vcxproj @@ -19,10 +19,10 @@ - DynamicLibrary + StaticLibrary v141 Unicode - true + false StaticLibrary @@ -43,12 +43,12 @@ <_ProjectFileVersion>14.0.25123.0 - $(SolutionDir)$(Configuration)\ + $(SolutionDir)Build\Debug $(Configuration)\ true - $(SolutionDir)$(Configuration)\ + $(SolutionDir)Build\Release $(Configuration)\ false @@ -80,6 +80,7 @@ Level3 ProgramDatabase + ..\..\libgeometry;%(AdditionalIncludeDirectories) true diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj index 44e55a12e..5a53e77a0 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj index be8503199..cefaac6f3 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj index c8f15e9c9..d4df08651 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj index 0e64872f7..920dfd922 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj index 458a9f853..af3a76c0b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj index 3b0e1d1cc..c329685c6 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj index 87b159c0e..85928cb0c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj index 631997fc8..1b827f001 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj @@ -27,7 +27,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj index 7a497710b..56bab4135 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj index fb134fdfd..a64c536ed 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj index 2347919d6..6dfc72c7f 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj index f37b50669..1bd8adac7 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj @@ -46,7 +46,13 @@ "Entry" { "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -88,6 +94,12 @@ "Entry" { "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } @@ -118,6 +130,12 @@ "Entry" { "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" "MsmSig" = "8:_UNDEFINED" } @@ -130,11 +148,23 @@ "Entry" { "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_228BC2A283BAB0C236CE404E2766753A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" "OwnerKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" "MsmSig" = "8:_UNDEFINED" } "Entry" { + "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_136196DD2763419D959721C2BA143498" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -153,6 +183,12 @@ } "Entry" { + "MsmKey" = "8:_164D74DB92C311B5B1C4DE16DFFBF6B1" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_173C4B05CE04BA34E920DC64B25A8670" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -160,13 +196,13 @@ "Entry" { "MsmKey" = "8:_1910D5B276479C48B4F7762A638405F5" - "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_1910D5B276479C48B4F7762A638405F5" - "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" + "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -178,13 +214,13 @@ "Entry" { "MsmKey" = "8:_1AC47588060EAA9F2B7A13EC07359D10" - "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_1AC47588060EAA9F2B7A13EC07359D10" - "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" + "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -202,13 +238,13 @@ "Entry" { "MsmKey" = "8:_2444D22B50272EAE03F2B5D2457335EC" - "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_2444D22B50272EAE03F2B5D2457335EC" - "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" + "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -358,6 +394,12 @@ "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" "MsmSig" = "8:_UNDEFINED" } @@ -370,6 +412,18 @@ "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" + "OwnerKey" = "8:_BEF81681FFB4A3D9146381DB58646485" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" "OwnerKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" "MsmSig" = "8:_UNDEFINED" } @@ -412,7 +466,13 @@ "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_8D3497DF2885B15B643A20537C75D67E" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -448,6 +508,12 @@ "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } @@ -460,7 +526,7 @@ "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -471,6 +537,12 @@ } "Entry" { + "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" + "OwnerKey" = "8:_8D3497DF2885B15B643A20537C75D67E" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_55B682D249F24BD9069F5CC33AAB44F0" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -502,6 +574,12 @@ "Entry" { "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" "OwnerKey" = "8:_FAAD9E9C9BB571F4E45C5C7C5DFD626A" "MsmSig" = "8:_UNDEFINED" } @@ -526,6 +604,12 @@ "Entry" { "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } @@ -544,6 +628,12 @@ "Entry" { "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" } @@ -568,19 +658,19 @@ "Entry" { "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "OwnerKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" + "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -658,12 +748,24 @@ "Entry" { "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" "OwnerKey" = "8:_197CAF3FE1DF1DC0514D774674A3F0FF" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } @@ -694,7 +796,13 @@ "Entry" { "MsmKey" = "8:_69F60BE42927314554CD235D3185D2CE" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_69F60BE42927314554CD235D3185D2CE" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -724,6 +832,12 @@ "Entry" { "MsmKey" = "8:_69F60BE42927314554CD235D3185D2CE" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_69F60BE42927314554CD235D3185D2CE" "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } @@ -741,12 +855,24 @@ } "Entry" { + "MsmKey" = "8:_69F60BE42927314554CD235D3185D2CE" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_6D9156D5DBF08959BE20FE18FA09E71A" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { + "MsmKey" = "8:_705F2A9700A0B6F6A5308537C5F876EA" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_709D007D7E89A10E63C141E3A08311FD" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -778,7 +904,7 @@ "Entry" { "MsmKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" - "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -790,6 +916,12 @@ "Entry" { "MsmKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "OwnerKey" = "8:_FAAD9E9C9BB571F4E45C5C7C5DFD626A" "MsmSig" = "8:_UNDEFINED" } @@ -814,6 +946,12 @@ "Entry" { "MsmKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } @@ -825,6 +963,12 @@ } "Entry" { + "MsmKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_73674B32069839371DC47411D1B7EBE0" "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" "MsmSig" = "8:_UNDEFINED" @@ -862,49 +1006,67 @@ "Entry" { "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_197CAF3FE1DF1DC0514D774674A3F0FF" + "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" + "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_61BCA14057E1BA0AB03D4576CBA56A88" + "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" + "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" + "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" + "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" - "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" + "OwnerKey" = "8:_FAAD9E9C9BB571F4E45C5C7C5DFD626A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" + "MsmKey" = "8:_7D0EE03E89D3891AF49E51B7A20399FD" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7D0EE03E89D3891AF49E51B7A20399FD" + "OwnerKey" = "8:_306834653E086F12A2AAEA2DB03BEFCF" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7D0EE03E89D3891AF49E51B7A20399FD" + "OwnerKey" = "8:_DF75A431ACC8C9748E6FA8D8B926D6D8" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7D0EE03E89D3891AF49E51B7A20399FD" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" - "OwnerKey" = "8:_FAAD9E9C9BB571F4E45C5C7C5DFD626A" + "MsmKey" = "8:_7D0EE03E89D3891AF49E51B7A20399FD" + "OwnerKey" = "8:_BA97AA5828837180D47BBD44C338D695" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -939,6 +1101,18 @@ } "Entry" { + "MsmKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_89624A3865EAD179277FE5905CBE627D" "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" @@ -1060,7 +1234,7 @@ "Entry" { "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1119,6 +1293,12 @@ } "Entry" { + "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" + "OwnerKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_983D79DC449AD65746DD38E6468BD886" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -1204,13 +1384,25 @@ "Entry" { "MsmKey" = "8:_AF79FC974C2F42D24D74E5313E475E87" - "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_AF79FC974C2F42D24D74E5313E475E87" - "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" + "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AFB29AE66E7A8C8B6FD1B50745BEBCFA" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AFB29AE66E7A8C8B6FD1B50745BEBCFA" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1251,6 +1443,18 @@ } "Entry" { + "MsmKey" = "8:_BEF81681FFB4A3D9146381DB58646485" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_BEF81681FFB4A3D9146381DB58646485" + "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_BF01A029E83A968C697506DFA469C90B" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -1264,7 +1468,7 @@ "Entry" { "MsmKey" = "8:_BF01A029E83A968C697506DFA469C90B" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1281,50 +1485,44 @@ } "Entry" { - "MsmKey" = "8:_CBF3A46BFE914D8E4658EABB5A204074" + "MsmKey" = "8:_CC07BBC3C44CE424AA0EF90844590E4E" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CBF3A46BFE914D8E4658EABB5A204074" - "OwnerKey" = "8:_306834653E086F12A2AAEA2DB03BEFCF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_CBF3A46BFE914D8E4658EABB5A204074" - "OwnerKey" = "8:_DF75A431ACC8C9748E6FA8D8B926D6D8" + "MsmKey" = "8:_CC07BBC3C44CE424AA0EF90844590E4E" + "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CBF3A46BFE914D8E4658EABB5A204074" - "OwnerKey" = "8:_BA97AA5828837180D47BBD44C338D695" + "MsmKey" = "8:_CC7BD04781686DE3403908303698199D" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CC07BBC3C44CE424AA0EF90844590E4E" + "MsmKey" = "8:_CCD49B330E05F963B5AE73E3D04F5762" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CC07BBC3C44CE424AA0EF90844590E4E" - "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "MsmKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CC7BD04781686DE3403908303698199D" + "MsmKey" = "8:_D03482576128D28FB1FC54FC473F59E3" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CCD49B330E05F963B5AE73E3D04F5762" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_D03482576128D28FB1FC54FC473F59E3" + "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1360,6 +1558,12 @@ "Entry" { "MsmKey" = "8:_D50E7D146D0988E066CF588364E8E12F" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_D50E7D146D0988E066CF588364E8E12F" "OwnerKey" = "8:_FAAD9E9C9BB571F4E45C5C7C5DFD626A" "MsmSig" = "8:_UNDEFINED" } @@ -1384,6 +1588,12 @@ "Entry" { "MsmKey" = "8:_D50E7D146D0988E066CF588364E8E12F" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_D50E7D146D0988E066CF588364E8E12F" "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } @@ -1396,13 +1606,19 @@ "Entry" { "MsmKey" = "8:_D50E7D146D0988E066CF588364E8E12F" + "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_D50E7D146D0988E066CF588364E8E12F" "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_D50E7D146D0988E066CF588364E8E12F" - "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1413,6 +1629,12 @@ } "Entry" { + "MsmKey" = "8:_D947550594E2BF53BED76C7D7F9747D7" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_D9C852C126C7F540922D946114717E3C" "OwnerKey" = "8:_25CA87997CBA1F923E61CE5BB20D3891" "MsmSig" = "8:_UNDEFINED" @@ -1432,6 +1654,12 @@ "Entry" { "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" "OwnerKey" = "8:_BA97AA5828837180D47BBD44C338D695" "MsmSig" = "8:_UNDEFINED" } @@ -1479,6 +1707,12 @@ } "Entry" { + "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_DC627D829804D2AC4A3984133840F2D5" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -1510,7 +1744,7 @@ "Entry" { "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1558,6 +1792,12 @@ "Entry" { "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" } @@ -1569,6 +1809,18 @@ } "Entry" { + "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" + "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" + "OwnerKey" = "8:_BEF81681FFB4A3D9146381DB58646485" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_DF75A431ACC8C9748E6FA8D8B926D6D8" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -1582,13 +1834,13 @@ "Entry" { "MsmKey" = "8:_E0FCEE9366306B5A88DC7CF29E913A4B" - "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" + "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_E0FCEE9366306B5A88DC7CF29E913A4B" - "OwnerKey" = "8:_89624A3865EAD179277FE5905CBE627D" + "OwnerKey" = "8:_732A3EC12F10FF1A5DA8EE301EB14539" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1647,6 +1899,12 @@ } "Entry" { + "MsmKey" = "8:_EF2898B0C9AAB2E33674325B9F86943B" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_F07A99EB8EC845750208F557C91D5A84" "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" @@ -1737,6 +1995,84 @@ } "Entry" { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_FAAD9E9C9BB571F4E45C5C7C5DFD626A" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_B7F1A99B13057B9195F587E580BA16AE" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_25CA87997CBA1F923E61CE5BB20D3891" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_197CAF3FE1DF1DC0514D774674A3F0FF" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_61BCA14057E1BA0AB03D4576CBA56A88" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_UNDEFINED" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" @@ -1744,19 +2080,19 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_306834653E086F12A2AAEA2DB03BEFCF" + "OwnerKey" = "8:_90D408142B1F2A9F72CBF42FC38348F0" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DF75A431ACC8C9748E6FA8D8B926D6D8" + "OwnerKey" = "8:_306834653E086F12A2AAEA2DB03BEFCF" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_90D408142B1F2A9F72CBF42FC38348F0" + "OwnerKey" = "8:_DF75A431ACC8C9748E6FA8D8B926D6D8" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1786,12 +2122,24 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_705F2A9700A0B6F6A5308537C5F876EA" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" "OwnerKey" = "8:_847DE93907D7F6B17C0694F74120086B" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_EF2898B0C9AAB2E33674325B9F86943B" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" "OwnerKey" = "8:_709D007D7E89A10E63C141E3A08311FD" "MsmSig" = "8:_UNDEFINED" } @@ -1804,97 +2152,157 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_87C6E2B736587D3682C48BA78EC097DD" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_164D74DB92C311B5B1C4DE16DFFBF6B1" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" "OwnerKey" = "8:_FAAD9E9C9BB571F4E45C5C7C5DFD626A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_B6A2B710D2ADE73566D350592A338A20" + "OwnerKey" = "8:_B6A2B710D2ADE73566D350592A338A20" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_B7F1A99B13057B9195F587E580BA16AE" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_BA97AA5828837180D47BBD44C338D695" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_25CA87997CBA1F923E61CE5BB20D3891" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_D9C852C126C7F540922D946114717E3C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_F1DFFB8E50BAD2529B0C859268ED8956" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_197CAF3FE1DF1DC0514D774674A3F0FF" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_882DC187F2FE507EF9AF44F399908E5F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_B7F1A99B13057B9195F587E580BA16AE" + "OwnerKey" = "8:_61BCA14057E1BA0AB03D4576CBA56A88" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BA97AA5828837180D47BBD44C338D695" + "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_25CA87997CBA1F923E61CE5BB20D3891" + "OwnerKey" = "8:_CD3DBAF01E467DD4CC12AA88CE8A65C6" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D9C852C126C7F540922D946114717E3C" + "OwnerKey" = "8:_3C71904C35BED6686835B5A1C74768BE" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F1DFFB8E50BAD2529B0C859268ED8956" + "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_197CAF3FE1DF1DC0514D774674A3F0FF" + "OwnerKey" = "8:_7A0D754929705CC64EF84E26BD75D642" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E700A1A13A5B6DB314933FC1205AFDAB" + "OwnerKey" = "8:_1AC47588060EAA9F2B7A13EC07359D10" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_61BCA14057E1BA0AB03D4576CBA56A88" + "OwnerKey" = "8:_C6BFB4DAD78C1798616508141EF1234E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_608148D4375F3E888DDCA94C5D3D141D" + "OwnerKey" = "8:_1910D5B276479C48B4F7762A638405F5" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_69F60BE42927314554CD235D3185D2CE" + "OwnerKey" = "8:_2444D22B50272EAE03F2B5D2457335EC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_7A0D754929705CC64EF84E26BD75D642" + "OwnerKey" = "8:_637E851F9FB315C0C0E9FD781D57341F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C6BFB4DAD78C1798616508141EF1234E" + "OwnerKey" = "8:_04D23F89470123BB32E04152B3DA36A5" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_637E851F9FB315C0C0E9FD781D57341F" + "OwnerKey" = "8:_AF79FC974C2F42D24D74E5313E475E87" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_04D23F89470123BB32E04152B3DA36A5" + "OwnerKey" = "8:_E0FCEE9366306B5A88DC7CF29E913A4B" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1948,7 +2356,7 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" + "OwnerKey" = "8:_BEF81681FFB4A3D9146381DB58646485" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1978,109 +2386,97 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" "OwnerKey" = "8:_8D3497DF2885B15B643A20537C75D67E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_51C4508525FA0604A9CD727897EBD530" + "OwnerKey" = "8:_D03482576128D28FB1FC54FC473F59E3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_AFB29AE66E7A8C8B6FD1B50745BEBCFA" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A1336C0121F3132E09400329ACD12B30" + "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_42250239B4791E8133657256CCE3506C" + "OwnerKey" = "8:_7D0EE03E89D3891AF49E51B7A20399FD" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D50E7D146D0988E066CF588364E8E12F" + "OwnerKey" = "8:_51C4508525FA0604A9CD727897EBD530" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DB4941BAFA45E5921E7072990000621E" + "OwnerKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F3FFF4D4A0414ACC9A1C44596F7A5728" + "OwnerKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_CBF3A46BFE914D8E4658EABB5A204074" + "OwnerKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" + "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2444D22B50272EAE03F2B5D2457335EC" + "OwnerKey" = "8:_A1336C0121F3132E09400329ACD12B30" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1AC47588060EAA9F2B7A13EC07359D10" + "OwnerKey" = "8:_42250239B4791E8133657256CCE3506C" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1910D5B276479C48B4F7762A638405F5" + "OwnerKey" = "8:_D50E7D146D0988E066CF588364E8E12F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3C71904C35BED6686835B5A1C74768BE" + "OwnerKey" = "8:_DB4941BAFA45E5921E7072990000621E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_AF79FC974C2F42D24D74E5313E475E87" + "OwnerKey" = "8:_F3FFF4D4A0414ACC9A1C44596F7A5728" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E0FCEE9366306B5A88DC7CF29E913A4B" + "OwnerKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -2110,6 +2506,12 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_D947550594E2BF53BED76C7D7F9747D7" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" "OwnerKey" = "8:_B8EE1FC78F28FD0B62389E8796D603FB" "MsmSig" = "8:_UNDEFINED" } @@ -2465,7 +2867,7 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\Tango.MachineStudio.Installer.msi" + "OutputFilename" = "8:..\\..\\Build\\Release\\Installers\\Machine Studio Installer v1.0.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -2530,7 +2932,7 @@ "_018A2A1E8555CACB14EEBBCFE003E82A" { "Name" = "8:System.Collections.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Collections.dll" @@ -2539,7 +2941,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -2547,7 +2949,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -2592,7 +2994,7 @@ "_04D23F89470123BB32E04152B3DA36A5" { "Name" = "8:System.Linq.Expressions.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Linq.Expressions.dll" @@ -2601,7 +3003,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -2609,7 +3011,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -2623,7 +3025,7 @@ "_08C7D6D7EF105161BD48E61BBEBBF002" { "Name" = "8:System.Reflection.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Reflection.dll" @@ -2632,7 +3034,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -2640,7 +3042,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -2768,6 +3170,37 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_164D74DB92C311B5B1C4DE16DFFBF6B1" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Updater, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_164D74DB92C311B5B1C4DE16DFFBF6B1" + { + "Name" = "8:Tango.MachineStudio.Updater.exe" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Tango.MachineStudio.Updater.exe" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_173C4B05CE04BA34E920DC64B25A8670" { "AssemblyRegister" = "3:1" @@ -2809,7 +3242,7 @@ "_1910D5B276479C48B4F7762A638405F5" { "Name" = "8:System.Runtime.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Runtime.dll" @@ -2818,7 +3251,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -2826,7 +3259,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -2871,7 +3304,7 @@ "_1AC47588060EAA9F2B7A13EC07359D10" { "Name" = "8:System.Threading.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Threading.dll" @@ -2880,7 +3313,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -2888,7 +3321,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -2933,7 +3366,7 @@ "_2444D22B50272EAE03F2B5D2457335EC" { "Name" = "8:System.Reflection.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Reflection.dll" @@ -2942,7 +3375,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -2950,7 +3383,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -3274,7 +3707,7 @@ "_3C71904C35BED6686835B5A1C74768BE" { "Name" = "8:System.Globalization.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Globalization.dll" @@ -3283,7 +3716,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -3291,7 +3724,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -3790,7 +4223,7 @@ "_637E851F9FB315C0C0E9FD781D57341F" { "Name" = "8:System.ObjectModel.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.ObjectModel.dll" @@ -3799,7 +4232,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -3807,7 +4240,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -3966,6 +4399,37 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_705F2A9700A0B6F6A5308537C5F876EA" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_705F2A9700A0B6F6A5308537C5F876EA" + { + "Name" = "8:Ionic.Zip.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Ionic.Zip.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_709D007D7E89A10E63C141E3A08311FD" { "AssemblyRegister" = "3:1" @@ -4152,6 +4616,37 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7D0EE03E89D3891AF49E51B7A20399FD" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Data.SQLite, Version=1.0.106.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_7D0EE03E89D3891AF49E51B7A20399FD" + { + "Name" = "8:System.Data.SQLite.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Data.SQLite.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7E765F76FDFC3DCF4EAEB59B5546B063" { "AssemblyRegister" = "3:1" @@ -4221,13 +4716,75 @@ "AssemblyAsmDisplayName" = "8:System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_873B6D0FDF23828BEF4F97FA21EAB767" + "_873B6D0FDF23828BEF4F97FA21EAB767" + { + "Name" = "8:System.Windows.Interactivity.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Windows.Interactivity.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_87C6E2B736587D3682C48BA78EC097DD" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.UsersAndRoles, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_87C6E2B736587D3682C48BA78EC097DD" + { + "Name" = "8:Tango.MachineStudio.UsersAndRoles.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Tango.MachineStudio.UsersAndRoles.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_882DC187F2FE507EF9AF44F399908E5F" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.HardwareDesigner, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_882DC187F2FE507EF9AF44F399908E5F" { - "Name" = "8:System.Windows.Interactivity.dll" + "Name" = "8:Tango.MachineStudio.HardwareDesigner.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Windows.Interactivity.dll" + "SourcePath" = "8:Tango.MachineStudio.HardwareDesigner.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4596,7 +5153,7 @@ "_A0C8023CFDF8E1966A878020945346CF" { "Name" = "8:System.ObjectModel.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.ObjectModel.dll" @@ -4605,7 +5162,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -4613,7 +5170,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -4844,7 +5401,7 @@ "_AF79FC974C2F42D24D74E5313E475E87" { "Name" = "8:System.Diagnostics.Debug.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Diagnostics.Debug.dll" @@ -4853,7 +5410,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -4861,7 +5418,38 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AFB29AE66E7A8C8B6FD1B50745BEBCFA" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.BrushPicker, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_AFB29AE66E7A8C8B6FD1B50745BEBCFA" + { + "Name" = "8:Tango.BrushPicker.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Tango.BrushPicker.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -4989,20 +5577,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BF01A029E83A968C697506DFA469C90B" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BEF81681FFB4A3D9146381DB58646485" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:ColorMine, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.EmbroideryUI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_BF01A029E83A968C697506DFA469C90B" + "_BEF81681FFB4A3D9146381DB58646485" { - "Name" = "8:ColorMine.dll" + "Name" = "8:Tango.EmbroideryUI.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:ColorMine.dll" + "SourcePath" = "8:Tango.EmbroideryUI.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5020,26 +5608,26 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C179B63E2F5A58786B70FADA6C8496A5" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BF01A029E83A968C697506DFA469C90B" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Dynamic.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:ColorMine, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C179B63E2F5A58786B70FADA6C8496A5" + "_BF01A029E83A968C697506DFA469C90B" { - "Name" = "8:System.Dynamic.Runtime.dll" - "Attributes" = "3:0" + "Name" = "8:ColorMine.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Dynamic.Runtime.dll" + "SourcePath" = "8:ColorMine.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5047,24 +5635,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C6BFB4DAD78C1798616508141EF1234E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C179B63E2F5A58786B70FADA6C8496A5" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Threading.Tasks, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Dynamic.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" "ScatterAssemblies" { - "_C6BFB4DAD78C1798616508141EF1234E" + "_C179B63E2F5A58786B70FADA6C8496A5" { - "Name" = "8:System.Threading.Tasks.dll" + "Name" = "8:System.Dynamic.Runtime.dll" "Attributes" = "3:0" } } - "SourcePath" = "8:System.Threading.Tasks.dll" + "SourcePath" = "8:System.Dynamic.Runtime.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5082,20 +5670,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CBF3A46BFE914D8E4658EABB5A204074" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C6BFB4DAD78C1798616508141EF1234E" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Data.SQLite, Version=1.0.106.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:TRUE" + "AssemblyAsmDisplayName" = "8:System.Threading.Tasks, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_CBF3A46BFE914D8E4658EABB5A204074" + "_C6BFB4DAD78C1798616508141EF1234E" { - "Name" = "8:System.Data.SQLite.dll" + "Name" = "8:System.Threading.Tasks.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Data.SQLite.dll" + "SourcePath" = "8:System.Threading.Tasks.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5206,6 +5794,68 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CD3DBAF01E467DD4CC12AA88CE8A65C6" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.ColorLab, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_CD3DBAF01E467DD4CC12AA88CE8A65C6" + { + "Name" = "8:Tango.MachineStudio.ColorLab.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Tango.MachineStudio.ColorLab.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D03482576128D28FB1FC54FC473F59E3" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.ColorPicker, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_D03482576128D28FB1FC54FC473F59E3" + { + "Name" = "8:Tango.ColorPicker.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Tango.ColorPicker.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D1CB239DDD65E78A28094BC854772AFF" { "AssemblyRegister" = "3:1" @@ -5216,7 +5866,7 @@ "_D1CB239DDD65E78A28094BC854772AFF" { "Name" = "8:System.Runtime.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Runtime.dll" @@ -5225,7 +5875,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5233,7 +5883,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -5361,6 +6011,37 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D947550594E2BF53BED76C7D7F9747D7" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + "ScatterAssemblies" + { + "_D947550594E2BF53BED76C7D7F9747D7" + { + "Name" = "8:System.IO.Compression.FileSystem.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.IO.Compression.FileSystem.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D9C852C126C7F540922D946114717E3C" { "AssemblyRegister" = "3:1" @@ -5464,7 +6145,7 @@ "_DCD0D71251FAABFB20D57E60AC3DEFA3" { "Name" = "8:System.Globalization.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Globalization.dll" @@ -5473,7 +6154,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5481,7 +6162,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -5495,7 +6176,7 @@ "_DD10CB022785FD0CE997E8C7BC1D0FE6" { "Name" = "8:System.Threading.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Threading.dll" @@ -5504,7 +6185,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5512,7 +6193,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -5681,7 +6362,7 @@ "_E0FCEE9366306B5A88DC7CF29E913A4B" { "Name" = "8:System.Collections.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Collections.dll" @@ -5690,7 +6371,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5698,7 +6379,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -5774,7 +6455,7 @@ "_EB90C5C498BD80F4675C07A364C45E3D" { "Name" = "8:System.Diagnostics.Debug.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Diagnostics.Debug.dll" @@ -5783,7 +6464,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5791,7 +6472,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -5805,7 +6486,7 @@ "_EBFEF6DABA658232EC82197A8E01F66E" { "Name" = "8:System.Threading.Tasks.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Threading.Tasks.dll" @@ -5814,7 +6495,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5822,7 +6503,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -5888,11 +6569,42 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EF2898B0C9AAB2E33674325B9F86943B" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:FluentFTP, Version=19.1.2.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_EF2898B0C9AAB2E33674325B9F86943B" + { + "Name" = "8:FluentFTP.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:FluentFTP.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F07A99EB8EC845750208F557C91D5A84" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Video, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86" + "AssemblyAsmDisplayName" = "8:Tango.Video, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { "_F07A99EB8EC845750208F557C91D5A84" @@ -6042,7 +6754,7 @@ "_F46F8B020857673C983D66FE2F41B983" { "Name" = "8:System.Linq.Expressions.dll" - "Attributes" = "3:0" + "Attributes" = "3:512" } } "SourcePath" = "8:System.Linq.Expressions.dll" @@ -6051,7 +6763,7 @@ "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -6059,7 +6771,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -6156,6 +6868,37 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FC7C3735446215F02CF0C477948EAAFC" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.BL, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_FC7C3735446215F02CF0C477948EAAFC" + { + "Name" = "8:Tango.BL.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Tango.BL.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { @@ -6235,7 +6978,7 @@ "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Machine Studio" "ProductCode" = "8:{85D89915-CDF5-4C10-AE24-99842E2FDAD0}" - "PackageCode" = "8:{D9AA26EE-C3B6-4D51-8553-F458F996AD82}" + "PackageCode" = "8:{3619637E-3B7B-430E-9541-D4AAA77C0B46}" "UpgradeCode" = "8:{EDD5BF5D-A0F0-4016-AE0A-5C008DD66BB6}" "AspNetVersion" = "8:4.0.30319.0" "RestartWWWService" = "11:FALSE" diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj index 7b59fa319..6f3276996 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj @@ -43,7 +43,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj index 78978bda3..6fc530627 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj @@ -30,7 +30,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 @@ -411,7 +411,7 @@ - $(TargetDir)linkgen.exe -s "$(TargetPath)" -d "$(TargetDir)Utilities\Machine Studio.lnk" + if $(ConfigurationName) == Debug $(TargetDir)linkgen.exe -s "$(TargetPath)" -d "$(TargetDir)Utilities\Machine Studio.lnk" RD /S /Q "$(TargetDir)cs\" RD /S /Q "$(TargetDir)da\" diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj index c77222c03..37a6dbf63 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj @@ -28,7 +28,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj index 071c0a4bc..a05e31bf6 100644 --- a/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj +++ b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj @@ -73,13 +73,14 @@ true $(SolutionDir)Build\Debug - $(ProjectDir);$(IncludePath) + $(IncludePath) true false + $(SolutionDir)Build\Release false @@ -92,6 +93,7 @@ WIN32;_DEBUG;_WINDOWS;_USRDLL;TANGOCOLORLIB_EXPORTS;%(PreprocessorDefinitions) Default MultiThreaded + $(ProjectDir);%(AdditionalIncludeDirectories) Windows @@ -121,6 +123,7 @@ true true WIN32;NDEBUG;_WINDOWS;_USRDLL;TANGOCOLORLIB_EXPORTS;%(PreprocessorDefinitions) + $(ProjectDir);%(AdditionalIncludeDirectories) Windows diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj b/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj index e657d78b8..c79c4de99 100644 --- a/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj +++ b/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj @@ -32,10 +32,10 @@ MultiByte - Application + DynamicLibrary false v141 - true + false MultiByte @@ -72,7 +72,10 @@ .dll $(SolutionDir)Build\Debug - ..\..\..\External_Repositories\Protobuf\protobuf-3.4.1\src;$(IncludePath) + $(IncludePath) + + + $(SolutionDir)Build\Release @@ -80,6 +83,7 @@ Disabled true MultiThreaded + ..\..\..\External_Repositories\Protobuf\protobuf-3.4.1\src;%(AdditionalIncludeDirectories) "$(TargetDir)proto-tc.exe" -i "$(SolutionDir)..\PMR\Messages" -o "$(SolutionDir)Native\Tango.ProtoTest\PMR" -l CPP @@ -95,10 +99,12 @@ Level3 - MaxSpeed + Disabled true - true + false true + ..\..\..\External_Repositories\Protobuf\protobuf-3.4.1\src;%(AdditionalIncludeDirectories) + MultiThreaded true diff --git a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj index eafe583f4..a9fcdcbcf 100644 --- a/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj +++ b/Software/Visual_Studio/SideChains/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj @@ -59,7 +59,7 @@ false - ..\..\Build\Debug\ + ..\..\Build\Release\ diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 714952d75..b9565630d 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -27,7 +27,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.BrushPicker/Tango.BrushPicker.csproj b/Software/Visual_Studio/Tango.BrushPicker/Tango.BrushPicker.csproj index cc8ba2fc6..c007f793d 100644 --- a/Software/Visual_Studio/Tango.BrushPicker/Tango.BrushPicker.csproj +++ b/Software/Visual_Studio/Tango.BrushPicker/Tango.BrushPicker.csproj @@ -30,7 +30,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj b/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj index d622bd6a0..0c093659f 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj +++ b/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj @@ -28,7 +28,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.ColorPicker/Tango.ColorPicker.csproj b/Software/Visual_Studio/Tango.ColorPicker/Tango.ColorPicker.csproj index c104df2e3..adebcacf7 100644 --- a/Software/Visual_Studio/Tango.ColorPicker/Tango.ColorPicker.csproj +++ b/Software/Visual_Studio/Tango.ColorPicker/Tango.ColorPicker.csproj @@ -31,7 +31,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Core/Tango.Core.csproj b/Software/Visual_Studio/Tango.Core/Tango.Core.csproj index 76ea72fbe..e80e6e29b 100644 --- a/Software/Visual_Studio/Tango.Core/Tango.Core.csproj +++ b/Software/Visual_Studio/Tango.Core/Tango.Core.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj b/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj index 1dec945f6..59edcd567 100644 --- a/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj +++ b/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj @@ -26,7 +26,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj index 57bcc0bb3..c9e2dbbed 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj +++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj @@ -26,7 +26,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj b/Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj index 98de232af..608795117 100644 --- a/Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj +++ b/Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj @@ -33,7 +33,7 @@ pdbonly true - ..\Build\Debug\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj b/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj index 1eaeddb9c..02a18d94f 100644 --- a/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj +++ b/Software/Visual_Studio/Tango.Editors/Tango.Editors.csproj @@ -30,7 +30,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Emulations/Tango.Emulations.csproj b/Software/Visual_Studio/Tango.Emulations/Tango.Emulations.csproj index e2108143d..7d6de2aa0 100644 --- a/Software/Visual_Studio/Tango.Emulations/Tango.Emulations.csproj +++ b/Software/Visual_Studio/Tango.Emulations/Tango.Emulations.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj index a3eb43874..c5e27e7ef 100644 --- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj +++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj @@ -24,7 +24,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Logging/Tango.Logging.csproj b/Software/Visual_Studio/Tango.Logging/Tango.Logging.csproj index 53dede744..f1dd3307c 100644 --- a/Software/Visual_Studio/Tango.Logging/Tango.Logging.csproj +++ b/Software/Visual_Studio/Tango.Logging/Tango.Logging.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj index b36887b0b..2506e2373 100644 --- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj +++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj @@ -160,6 +160,6 @@ - "$(TargetDir)proto-tc.exe" -i "$(SolutionDir)..\PMR\Messages" -o "$(SolutionDir)Tango.PMR" -l CSharp + "$(TargetDir)..\Debug\proto-tc.exe" -i "$(SolutionDir)..\PMR\Messages" -o "$(SolutionDir)Tango.PMR" -l CSharp \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Protobuf/Tango.Protobuf.csproj b/Software/Visual_Studio/Tango.Protobuf/Tango.Protobuf.csproj index 0b50c1494..efade39c9 100644 --- a/Software/Visual_Studio/Tango.Protobuf/Tango.Protobuf.csproj +++ b/Software/Visual_Studio/Tango.Protobuf/Tango.Protobuf.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Scripting/Tango.Scripting.csproj b/Software/Visual_Studio/Tango.Scripting/Tango.Scripting.csproj index 871da6e91..d5b21a113 100644 --- a/Software/Visual_Studio/Tango.Scripting/Tango.Scripting.csproj +++ b/Software/Visual_Studio/Tango.Scripting/Tango.Scripting.csproj @@ -27,7 +27,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Serialization/Tango.Serialization.csproj b/Software/Visual_Studio/Tango.Serialization/Tango.Serialization.csproj index 3aafcadc7..d81543f87 100644 --- a/Software/Visual_Studio/Tango.Serialization/Tango.Serialization.csproj +++ b/Software/Visual_Studio/Tango.Serialization/Tango.Serialization.csproj @@ -24,7 +24,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Settings/Tango.Settings.csproj b/Software/Visual_Studio/Tango.Settings/Tango.Settings.csproj index b2b751bf7..fa9eb1f61 100644 --- a/Software/Visual_Studio/Tango.Settings/Tango.Settings.csproj +++ b/Software/Visual_Studio/Tango.Settings/Tango.Settings.csproj @@ -24,7 +24,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj index 6743a90e5..1a751fda2 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj +++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj @@ -26,7 +26,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Stubs/Tango.Stubs.csproj b/Software/Visual_Studio/Tango.Stubs/Tango.Stubs.csproj index 67713ba2b..015affaf3 100644 --- a/Software/Visual_Studio/Tango.Stubs/Tango.Stubs.csproj +++ b/Software/Visual_Studio/Tango.Stubs/Tango.Stubs.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Synchronization/Tango.Synchronization.csproj b/Software/Visual_Studio/Tango.Synchronization/Tango.Synchronization.csproj index 9ab584ad0..f8504f906 100644 --- a/Software/Visual_Studio/Tango.Synchronization/Tango.Synchronization.csproj +++ b/Software/Visual_Studio/Tango.Synchronization/Tango.Synchronization.csproj @@ -27,7 +27,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj index 88e2a3b75..6db8faf4e 100644 --- a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj +++ b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj b/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj index d882f9f76..3845f1ecd 100644 --- a/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj +++ b/Software/Visual_Studio/Tango.UnitTesting/Tango.UnitTesting.csproj @@ -35,7 +35,7 @@ pdbonly true - bin\Release\ + ..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.Visuals/Tango.Visuals.csproj b/Software/Visual_Studio/Tango.Visuals/Tango.Visuals.csproj index 53c87d0f5..fb377bbcd 100644 --- a/Software/Visual_Studio/Tango.Visuals/Tango.Visuals.csproj +++ b/Software/Visual_Studio/Tango.Visuals/Tango.Visuals.csproj @@ -27,7 +27,7 @@ pdbonly true - bin\Release\ + ..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 654857e10..c7703ccf4 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -347,7 +347,6 @@ Global {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.DefaultBuild|x86.Build.0 = Debug|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.Build.0 = Release|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.ActiveCfg = Release|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.Build.0 = Release|Any CPU {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -645,7 +644,6 @@ Global {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.DefaultBuild|x86.Build.0 = Debug|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.Build.0 = Release|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.ActiveCfg = Release|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.Build.0 = Release|Any CPU {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -975,7 +973,6 @@ Global {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.DefaultBuild|x86.Build.0 = Debug|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.Build.0 = Release|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.ActiveCfg = Release|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.Build.0 = Release|Any CPU {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -1186,6 +1183,7 @@ Global {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.Build.0 = Debug|Win32 {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.DefaultBuild|x86.Deploy.0 = Debug|Win32 {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|Any CPU.ActiveCfg = Release|Win32 + {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|Any CPU.Build.0 = Release|Win32 {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|ARM.ActiveCfg = Release|Win32 {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|ARM64.ActiveCfg = Release|Win32 {625B2A26-97A9-45C9-8BCF-6BD30F593E17}.Release|x64.ActiveCfg = Release|x64 @@ -1438,7 +1436,6 @@ Global {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.DefaultBuild|x86.Build.0 = Debug|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|Any CPU.Build.0 = Release|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM.ActiveCfg = Release|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM.Build.0 = Release|Any CPU {8A03ADC0-991B-4DA8-8A19-E1D03F92E81C}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -1528,7 +1525,6 @@ Global {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.DefaultBuild|x86.Build.0 = Debug|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|Any CPU.Build.0 = Release|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM.ActiveCfg = Release|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM.Build.0 = Release|Any CPU {5B954D98-4020-4AC6-939F-C52B5646E8E6}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -1708,7 +1704,6 @@ Global {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.Build.0 = Debug|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.Build.0 = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.ActiveCfg = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.Build.0 = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -1738,7 +1733,6 @@ Global {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.DefaultBuild|x86.Build.0 = Debug|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|Any CPU.Build.0 = Release|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM.ActiveCfg = Release|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM.Build.0 = Release|Any CPU {9A477128-25A1-4B27-AAAB-7421F8ED2B9D}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -1779,6 +1773,7 @@ Global {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x86.ActiveCfg = Debug|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.DefaultBuild|x86.Build.0 = Debug|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|Any CPU.ActiveCfg = Release|Win32 + {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|Any CPU.Build.0 = Release|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|ARM.ActiveCfg = Release|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|ARM64.ActiveCfg = Release|Win32 {BD30C7BD-9230-4ED7-B581-11F14041909D}.Release|x64.ActiveCfg = Release|Win32 @@ -1859,7 +1854,6 @@ Global {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.DefaultBuild|x86.Build.0 = Debug|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|Any CPU.Build.0 = Release|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM.ActiveCfg = Release|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM.Build.0 = Release|Any CPU {5AFD5B7D-757A-400C-B0C9-118834F5D67E}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -1916,6 +1910,7 @@ Global {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x86.ActiveCfg = Debug|Win32 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.DefaultBuild|x86.Build.0 = Debug|Win32 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|Any CPU.ActiveCfg = Release|Win32 + {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|Any CPU.Build.0 = Release|Win32 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|ARM.ActiveCfg = Release|Win32 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|ARM64.ActiveCfg = Release|Win32 {A37247ED-B26B-42EE-9F3B-EF0FDEB381F1}.Release|x64.ActiveCfg = Release|x64 @@ -1943,7 +1938,6 @@ Global {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.DefaultBuild|x86.Build.0 = Debug|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|Any CPU.ActiveCfg = Release|Any CPU - {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|Any CPU.Build.0 = Release|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM.ActiveCfg = Release|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM.Build.0 = Release|Any CPU {793FBFC1-549E-458B-A52F-784BD4F28586}.Release|ARM64.ActiveCfg = Release|Any CPU diff --git a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Tango.DBObservablesGenerator.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Tango.DBObservablesGenerator.CLI.csproj index 87baf3a3f..73b66321b 100644 --- a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Tango.DBObservablesGenerator.CLI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/Tango.DBObservablesGenerator.CLI.csproj @@ -26,7 +26,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.EmbroideryViewer/Tango.EmbroideryViewer.csproj b/Software/Visual_Studio/Utilities/Tango.EmbroideryViewer/Tango.EmbroideryViewer.csproj index 869a4c02b..061bed515 100644 --- a/Software/Visual_Studio/Utilities/Tango.EmbroideryViewer/Tango.EmbroideryViewer.csproj +++ b/Software/Visual_Studio/Utilities/Tango.EmbroideryViewer/Tango.EmbroideryViewer.csproj @@ -28,7 +28,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj index ff4ab4a62..fe2f7934f 100644 --- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj @@ -28,7 +28,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Tango.PMRGenerator.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Tango.PMRGenerator.CLI.csproj index be6e31ea1..b242b0c06 100644 --- a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Tango.PMRGenerator.CLI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Tango.PMRGenerator.CLI.csproj @@ -26,7 +26,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Tango.Protobuf.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Tango.Protobuf.CLI.csproj index f97eaa932..fdee6d04f 100644 --- a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Tango.Protobuf.CLI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Tango.Protobuf.CLI.csproj @@ -26,7 +26,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.Protobuf.UI/Tango.Protobuf.UI.csproj b/Software/Visual_Studio/Utilities/Tango.Protobuf.UI/Tango.Protobuf.UI.csproj index e767b2400..c39abb2fb 100644 --- a/Software/Visual_Studio/Utilities/Tango.Protobuf.UI/Tango.Protobuf.UI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.Protobuf.UI/Tango.Protobuf.UI.csproj @@ -28,7 +28,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Tango.SQLiteGenerator.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Tango.SQLiteGenerator.CLI.csproj index 2e9420527..46b458c90 100644 --- a/Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Tango.SQLiteGenerator.CLI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Tango.SQLiteGenerator.CLI.csproj @@ -26,7 +26,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.ShortcutGenerator.CLI/Tango.ShortcutGenerator.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.ShortcutGenerator.CLI/Tango.ShortcutGenerator.CLI.csproj index b69dc4a4c..1f2a36176 100644 --- a/Software/Visual_Studio/Utilities/Tango.ShortcutGenerator.CLI/Tango.ShortcutGenerator.CLI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.ShortcutGenerator.CLI/Tango.ShortcutGenerator.CLI.csproj @@ -26,7 +26,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.CLI/Tango.Stubs.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.Stubs.CLI/Tango.Stubs.CLI.csproj index 20787bbbb..c9fffe6dd 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.CLI/Tango.Stubs.CLI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.CLI/Tango.Stubs.CLI.csproj @@ -28,7 +28,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.Installer/Tango.Stubs.Installer.vdproj b/Software/Visual_Studio/Utilities/Tango.Stubs.Installer/Tango.Stubs.Installer.vdproj index a3e7a9f0d..94fe4a1bf 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.Installer/Tango.Stubs.Installer.vdproj +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.Installer/Tango.Stubs.Installer.vdproj @@ -13,66 +13,6 @@ "SccProvider" = "8:" "Hierarchy" { - "Entry" - { - "MsmKey" = "8:_011E4FBBC5C8A2D0B69D7396BB68E588" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_011E4FBBC5C8A2D0B69D7396BB68E588" - "OwnerKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_011E4FBBC5C8A2D0B69D7396BB68E588" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_011E4FBBC5C8A2D0B69D7396BB68E588" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_02894B9DAB8C1E69F665E0408C9901BF" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_04774E07A11AB771AEB1E00CF69FE931" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_04774E07A11AB771AEB1E00CF69FE931" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_04774E07A11AB771AEB1E00CF69FE931" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_04774E07A11AB771AEB1E00CF69FE931" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" - "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" - "MsmSig" = "8:_UNDEFINED" - } "Entry" { "MsmKey" = "8:_0712ECEB4DE24D8B9E9936D94BDC61B4" @@ -81,206 +21,74 @@ } "Entry" { - "MsmKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" - "OwnerKey" = "8:_0712ECEB4DE24D8B9E9936D94BDC61B4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" - "OwnerKey" = "8:_73A191186BF426331AD533F7B8FE7B35" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "OwnerKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "OwnerKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_0CFB833EC8758FDDB415984703D96A78" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_1237B704F91F5863D7A8712599F76BEF" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_206A4DF263C6795E8B431691A1797973" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_24CF3526503A71076261C556A8D2B0F6" - "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_24CF3526503A71076261C556A8D2B0F6" - "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_24CF3526503A71076261C556A8D2B0F6" - "OwnerKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_24CF3526503A71076261C556A8D2B0F6" - "OwnerKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_27A0728EBCD8D8D764810B9089B94964" - "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_28B55C31B3EDD1E5B51ADE3DF9ED2EBE" - "OwnerKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" + "MsmKey" = "8:_2DC8C87C2D90158064A700C697B49957" "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" + "MsmKey" = "8:_2DC8C87C2D90158064A700C697B49957" "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" - "OwnerKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" - "OwnerKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" - "OwnerKey" = "8:_FD63FD7AD44D6BD26EED625F3EA5DAA9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_34792E5BC01BD47CBA3200D0EC40E0D6" - "OwnerKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_34792E5BC01BD47CBA3200D0EC40E0D6" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_34792E5BC01BD47CBA3200D0EC40E0D6" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3AECB6C039716AC5DBC0F3D16C97DD87" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3AECB6C039716AC5DBC0F3D16C97DD87" - "OwnerKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" + "MsmKey" = "8:_2DC8C87C2D90158064A700C697B49957" + "OwnerKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3AECB6C039716AC5DBC0F3D16C97DD87" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" + "MsmKey" = "8:_2DC8C87C2D90158064A700C697B49957" + "OwnerKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3AECB6C039716AC5DBC0F3D16C97DD87" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" + "MsmKey" = "8:_2DC8C87C2D90158064A700C697B49957" + "OwnerKey" = "8:_5397E5B2CD05015FD556CF7136D97D21" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3AECB6C039716AC5DBC0F3D16C97DD87" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" + "MsmKey" = "8:_2DC8C87C2D90158064A700C697B49957" + "OwnerKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3AECB6C039716AC5DBC0F3D16C97DD87" - "OwnerKey" = "8:_6A593C6C7F92CA0166D5863B200AA05D" + "MsmKey" = "8:_37EC5D1BE221C8E104929A1B70B2661E" + "OwnerKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3BA9A53EB9BA38CAE59AE79DD57216DA" - "OwnerKey" = "8:_FD63FD7AD44D6BD26EED625F3EA5DAA9" + "MsmKey" = "8:_5397E5B2CD05015FD556CF7136D97D21" + "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" - "OwnerKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" + "MsmKey" = "8:_5397E5B2CD05015FD556CF7136D97D21" + "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" - "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" + "MsmKey" = "8:_5397E5B2CD05015FD556CF7136D97D21" + "OwnerKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" - "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" + "MsmKey" = "8:_5397E5B2CD05015FD556CF7136D97D21" + "OwnerKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -291,212 +99,146 @@ } "Entry" { - "MsmKey" = "8:_6A593C6C7F92CA0166D5863B200AA05D" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6EDA9B68CBA90E9D08C225E64882A91A" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_73A191186BF426331AD533F7B8FE7B35" - "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_83838CE7A607B1C85B1D3E962EBF13AD" - "OwnerKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_950EEF994AA25A7143EC3BCC121B5474" + "MsmKey" = "8:_6290C6253BE08D5AEAF445DC538F5A32" "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_950EEF994AA25A7143EC3BCC121B5474" - "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_950EEF994AA25A7143EC3BCC121B5474" - "OwnerKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_950EEF994AA25A7143EC3BCC121B5474" - "OwnerKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_950EEF994AA25A7143EC3BCC121B5474" - "OwnerKey" = "8:_24CF3526503A71076261C556A8D2B0F6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_950EEF994AA25A7143EC3BCC121B5474" - "OwnerKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9B73A2245EE7C4F9AB0977E14A7687AB" - "OwnerKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9B73A2245EE7C4F9AB0977E14A7687AB" - "OwnerKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" + "MsmKey" = "8:_65CE51F98CEBE9E3D46589DB414FAA93" + "OwnerKey" = "8:_9E54529BF03690F97BEE24C45258265B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9B73A2245EE7C4F9AB0977E14A7687AB" - "OwnerKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" + "MsmKey" = "8:_65CE51F98CEBE9E3D46589DB414FAA93" + "OwnerKey" = "8:_72B65244C4FF9BF01D372402C3CE52C5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9B73A2245EE7C4F9AB0977E14A7687AB" - "OwnerKey" = "8:_27A0728EBCD8D8D764810B9089B94964" + "MsmKey" = "8:_72B65244C4FF9BF01D372402C3CE52C5" + "OwnerKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A304CEC70994BBC8BE642A6D2A00C301" + "MsmKey" = "8:_78C9B7DB89C8CFF3E6F812DBDAF18DC7" "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" + "MsmKey" = "8:_8B8BABD8173D326B3175B52925968439" + "OwnerKey" = "8:_78C9B7DB89C8CFF3E6F812DBDAF18DC7" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" + "MsmKey" = "8:_8F0D060313A40E3D6C4B196C5819AA1F" + "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "OwnerKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" + "MsmKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" + "OwnerKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A763E0945B5DF943AFC202393056F34F" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" + "MsmKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" + "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BF01E96BB3B7FA07DDE0651D59B2C1C8" - "OwnerKey" = "8:_A304CEC70994BBC8BE642A6D2A00C301" + "MsmKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" + "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BF62E984AB706A9532C332E9E71B18BC" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" + "MsmKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" + "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C00C2B072AD4B5A2E97117F31DA5BF4D" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" + "MsmKey" = "8:_9E54529BF03690F97BEE24C45258265B" + "OwnerKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C00C2B072AD4B5A2E97117F31DA5BF4D" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" + "MsmKey" = "8:_9E54529BF03690F97BEE24C45258265B" + "OwnerKey" = "8:_72B65244C4FF9BF01D372402C3CE52C5" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C3653413D52CF13A3AC1C694364A8882" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" + "MsmKey" = "8:_A09EFD9A2681B7EEE293BB3C3E00C524" + "OwnerKey" = "8:_E8DB13B92FF4C290BF9E84F6AD1DE386" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C938B65796CF5490A0CC3DA14C718F01" + "MsmKey" = "8:_B903CCAAE77F80B733B5FF7D00A8E88A" "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C938B65796CF5490A0CC3DA14C718F01" + "MsmKey" = "8:_B903CCAAE77F80B733B5FF7D00A8E88A" "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C938B65796CF5490A0CC3DA14C718F01" - "OwnerKey" = "8:_E9E779ABD8B7FA0322F597FC3FE5269E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C938B65796CF5490A0CC3DA14C718F01" - "OwnerKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" + "MsmKey" = "8:_B903CCAAE77F80B733B5FF7D00A8E88A" + "OwnerKey" = "8:_8B8BABD8173D326B3175B52925968439" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "OwnerKey" = "8:_09D3C4AB243038764D7428FA4ECD321C" + "MsmKey" = "8:_B903CCAAE77F80B733B5FF7D00A8E88A" + "OwnerKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "OwnerKey" = "8:_73A191186BF426331AD533F7B8FE7B35" + "MsmKey" = "8:_BFCEC942CF3BF1B9FB6AEACA2A8753C3" + "OwnerKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "OwnerKey" = "8:_0712ECEB4DE24D8B9E9936D94BDC61B4" + "MsmKey" = "8:_BFCEC942CF3BF1B9FB6AEACA2A8753C3" + "OwnerKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DAF686C3DE2DEABE3DC046748C50DB00" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" + "MsmKey" = "8:_BFCEC942CF3BF1B9FB6AEACA2A8753C3" + "OwnerKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E1E1D5FF266348A818C0D62B861455F1" - "OwnerKey" = "8:_FCDFDB9DDDD58E80F781871548F781B4" + "MsmKey" = "8:_BFCEC942CF3BF1B9FB6AEACA2A8753C3" + "OwnerKey" = "8:_78C9B7DB89C8CFF3E6F812DBDAF18DC7" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E1E1D5FF266348A818C0D62B861455F1" - "OwnerKey" = "8:_28B55C31B3EDD1E5B51ADE3DF9ED2EBE" + "MsmKey" = "8:_D2FFB7AB335C92855094B6988900F58C" + "OwnerKey" = "8:_8F0D060313A40E3D6C4B196C5819AA1F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E24C6D577AF7FF009D66CA15C21E0A7C" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" + "MsmKey" = "8:_DE92CA29E3DCD5F35FD39C7351489051" + "OwnerKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -507,62 +249,38 @@ } "Entry" { - "MsmKey" = "8:_E9059FA100DE1C98726DA9227C08734B" - "OwnerKey" = "8:_0CFB833EC8758FDDB415984703D96A78" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E9E779ABD8B7FA0322F597FC3FE5269E" - "OwnerKey" = "8:_27A0728EBCD8D8D764810B9089B94964" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F3984995940A979BD200F6C155905708" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F3984995940A979BD200F6C155905708" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F3F18112295FF17BD182DB86D6EB1133" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" + "MsmKey" = "8:_E8DB13B92FF4C290BF9E84F6AD1DE386" + "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F924359C0BCB71C0806EF440F78E897E" - "OwnerKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" + "MsmKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" + "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F9F9CEF184152F7DD4271F8E16A99306" - "OwnerKey" = "8:_6A593C6C7F92CA0166D5863B200AA05D" + "MsmKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" + "OwnerKey" = "8:_E6DED22BB43E475B9794561C384D2713" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FCDFDB9DDDD58E80F781871548F781B4" - "OwnerKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" + "MsmKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" + "OwnerKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FCDFDB9DDDD58E80F781871548F781B4" - "OwnerKey" = "8:_28B55C31B3EDD1E5B51ADE3DF9ED2EBE" + "MsmKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" + "OwnerKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FD63FD7AD44D6BD26EED625F3EA5DAA9" - "OwnerKey" = "8:_61BDC9339D1440BCBC454CC904BCE79C" + "MsmKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" + "OwnerKey" = "8:_8F0D060313A40E3D6C4B196C5819AA1F" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -580,115 +298,115 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_065F6BA03C582BF7C3553DB9B3F563A5" + "OwnerKey" = "8:_94CDF51D67BB69C2699CEC4485EBCA30" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_455470118F61E20DD1B47E1B5F2CD07E" + "OwnerKey" = "8:_92474495A2F0D65A21D2BFF4587358D8" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_28B55C31B3EDD1E5B51ADE3DF9ED2EBE" + "OwnerKey" = "8:_72B65244C4FF9BF01D372402C3CE52C5" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_FCDFDB9DDDD58E80F781871548F781B4" + "OwnerKey" = "8:_9E54529BF03690F97BEE24C45258265B" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E1E1D5FF266348A818C0D62B861455F1" + "OwnerKey" = "8:_65CE51F98CEBE9E3D46589DB414FAA93" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_FD63FD7AD44D6BD26EED625F3EA5DAA9" + "OwnerKey" = "8:_8F0D060313A40E3D6C4B196C5819AA1F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3BA9A53EB9BA38CAE59AE79DD57216DA" + "OwnerKey" = "8:_D2FFB7AB335C92855094B6988900F58C" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_27A0728EBCD8D8D764810B9089B94964" + "OwnerKey" = "8:_78C9B7DB89C8CFF3E6F812DBDAF18DC7" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E9E779ABD8B7FA0322F597FC3FE5269E" + "OwnerKey" = "8:_8B8BABD8173D326B3175B52925968439" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_73A191186BF426331AD533F7B8FE7B35" + "OwnerKey" = "8:_6290C6253BE08D5AEAF445DC538F5A32" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_24CF3526503A71076261C556A8D2B0F6" + "OwnerKey" = "8:_5397E5B2CD05015FD556CF7136D97D21" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2A544C3030504E69BE77BBA9737E74A0" + "OwnerKey" = "8:_F35F069FCC8C9B6808AAD45B8039A4FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_9B73A2245EE7C4F9AB0977E14A7687AB" + "OwnerKey" = "8:_BFCEC942CF3BF1B9FB6AEACA2A8753C3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F924359C0BCB71C0806EF440F78E897E" + "OwnerKey" = "8:_DE92CA29E3DCD5F35FD39C7351489051" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_83838CE7A607B1C85B1D3E962EBF13AD" + "OwnerKey" = "8:_37EC5D1BE221C8E104929A1B70B2661E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C938B65796CF5490A0CC3DA14C718F01" + "OwnerKey" = "8:_B903CCAAE77F80B733B5FF7D00A8E88A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A304CEC70994BBC8BE642A6D2A00C301" + "OwnerKey" = "8:_E8DB13B92FF4C290BF9E84F6AD1DE386" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BF01E96BB3B7FA07DDE0651D59B2C1C8" + "OwnerKey" = "8:_A09EFD9A2681B7EEE293BB3C3E00C524" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_950EEF994AA25A7143EC3BCC121B5474" + "OwnerKey" = "8:_2DC8C87C2D90158064A700C697B49957" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -697,950 +415,115 @@ "OwnerKey" = "8:_0712ECEB4DE24D8B9E9936D94BDC61B4" "MsmSig" = "8:_UNDEFINED" } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E24C6D577AF7FF009D66CA15C21E0A7C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" + } + "Configurations" + { + "Debug" { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:..\\..\\Build\\Debug\\Installers\\Tango Stubs Installer v1.0.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1" + { + "Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.6.1" + } + } + } } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D4DD93908C793CC94F4F8F78409F3100" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F3F18112295FF17BD182DB86D6EB1133" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0ADE9351CA1303DF987E24747A4181FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_6EDA9B68CBA90E9D08C225E64882A91A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_206A4DF263C6795E8B431691A1797973" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C3653413D52CF13A3AC1C694364A8882" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_011E4FBBC5C8A2D0B69D7396BB68E588" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F3984995940A979BD200F6C155905708" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F9F9CEF184152F7DD4271F8E16A99306" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C00C2B072AD4B5A2E97117F31DA5BF4D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_34792E5BC01BD47CBA3200D0EC40E0D6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A6DD21EE032731C3E2B52FCE0C3E1CB8" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1237B704F91F5863D7A8712599F76BEF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A763E0945B5DF943AFC202393056F34F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BF62E984AB706A9532C332E9E71B18BC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3AECB6C039716AC5DBC0F3D16C97DD87" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_04774E07A11AB771AEB1E00CF69FE931" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E9059FA100DE1C98726DA9227C08734B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_02894B9DAB8C1E69F665E0408C9901BF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DAF686C3DE2DEABE3DC046748C50DB00" - "MsmSig" = "8:_UNDEFINED" - } - } - "Configurations" - { - "Debug" - { - "DisplayName" = "8:Debug" - "IsDebugOnly" = "11:TRUE" - "IsReleaseOnly" = "11:FALSE" - "OutputFilename" = "8:..\\..\\Build\\Debug\\Installers\\Tango Stubs Installer v1.0.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - "Items" - { - "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1" - { - "Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)" - "ProductCode" = "8:.NETFramework,Version=v4.6.1" - } - } - } - } - "Release" + "Release" { "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\Tango.Stubs.Installer.msi" + "OutputFilename" = "8:..\\..\\Build\\Release\\Installers\\Tango Stubs Installer v1.0.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - } - } - } - "Deployable" - { - "CustomAction" - { - } - "DefaultFeature" - { - "Name" = "8:DefaultFeature" - "Title" = "8:" - "Description" = "8:" - } - "ExternalPersistence" - { - "LaunchCondition" - { - "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_56B82687FDF4453D9724832E4F8B0014" - { - "Name" = "8:.NET Framework" - "Message" = "8:[VSDNETMSG]" - "FrameworkVersion" = "8:.NETFramework,Version=v4.6.1" - "AllowLaterVersions" = "11:FALSE" - "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=671728" - } - } - } - "File" - { - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_011E4FBBC5C8A2D0B69D7396BB68E588" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Tools, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_011E4FBBC5C8A2D0B69D7396BB68E588" - { - "Name" = "8:System.Diagnostics.Tools.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Diagnostics.Tools.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_02894B9DAB8C1E69F665E0408C9901BF" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Debug, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_02894B9DAB8C1E69F665E0408C9901BF" - { - "Name" = "8:System.Diagnostics.Debug.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Diagnostics.Debug.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_04774E07A11AB771AEB1E00CF69FE931" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_04774E07A11AB771AEB1E00CF69FE931" - { - "Name" = "8:System.Linq.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Linq.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_065F6BA03C582BF7C3553DB9B3F563A5" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Stubs, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_065F6BA03C582BF7C3553DB9B3F563A5" - { - "Name" = "8:Tango.Stubs.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.Stubs.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0712ECEB4DE24D8B9E9936D94BDC61B4" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Scripting, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_0712ECEB4DE24D8B9E9936D94BDC61B4" - { - "Name" = "8:Tango.Scripting.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:..\\..\\Build\\Debug\\Tango.Scripting.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_09D3C4AB243038764D7428FA4ECD321C" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.CodeAnalysis.CSharp.Scripting, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_09D3C4AB243038764D7428FA4ECD321C" - { - "Name" = "8:Microsoft.CodeAnalysis.CSharp.Scripting.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Microsoft.CodeAnalysis.CSharp.Scripting.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0ADE9351CA1303DF987E24747A4181FB" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.CodeAnalysis.CSharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_0ADE9351CA1303DF987E24747A4181FB" - { - "Name" = "8:Microsoft.CodeAnalysis.CSharp.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Microsoft.CodeAnalysis.CSharp.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0CFB833EC8758FDDB415984703D96A78" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_0CFB833EC8758FDDB415984703D96A78" - { - "Name" = "8:System.Collections.Immutable.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Collections.Immutable.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1237B704F91F5863D7A8712599F76BEF" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Threading, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_1237B704F91F5863D7A8712599F76BEF" - { - "Name" = "8:System.Threading.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Threading.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_206A4DF263C6795E8B431691A1797973" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_206A4DF263C6795E8B431691A1797973" - { - "Name" = "8:System.Security.Cryptography.Algorithms.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Security.Cryptography.Algorithms.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_24CF3526503A71076261C556A8D2B0F6" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.PMR, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_24CF3526503A71076261C556A8D2B0F6" - { - "Name" = "8:Tango.PMR.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.PMR.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_27A0728EBCD8D8D764810B9089B94964" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Settings, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_27A0728EBCD8D8D764810B9089B94964" - { - "Name" = "8:Tango.Settings.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.Settings.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_28B55C31B3EDD1E5B51ADE3DF9ED2EBE" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reactive.Linq, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_28B55C31B3EDD1E5B51ADE3DF9ED2EBE" - { - "Name" = "8:System.Reactive.Linq.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Reactive.Linq.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2A544C3030504E69BE77BBA9737E74A0" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Core, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_2A544C3030504E69BE77BBA9737E74A0" - { - "Name" = "8:Tango.Core.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.Core.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_34792E5BC01BD47CBA3200D0EC40E0D6" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Reflection.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_34792E5BC01BD47CBA3200D0EC40E0D6" - { - "Name" = "8:System.Reflection.Extensions.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Reflection.Extensions.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3AECB6C039716AC5DBC0F3D16C97DD87" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Resources.ResourceManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_3AECB6C039716AC5DBC0F3D16C97DD87" - { - "Name" = "8:System.Resources.ResourceManager.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Resources.ResourceManager.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3BA9A53EB9BA38CAE59AE79DD57216DA" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:ICSharpCode.AvalonEdit, Version=4.3.1.9429, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_3BA9A53EB9BA38CAE59AE79DD57216DA" - { - "Name" = "8:ICSharpCode.AvalonEdit.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:ICSharpCode.AvalonEdit.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_455470118F61E20DD1B47E1B5F2CD07E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Transport, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_455470118F61E20DD1B47E1B5F2CD07E" - { - "Name" = "8:Tango.Transport.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.Transport.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_61BDC9339D1440BCBC454CC904BCE79C" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:StubsExecutionGUI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_61BDC9339D1440BCBC454CC904BCE79C" - { - "Name" = "8:StubsExecutionGUI.exe" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:..\\..\\Build\\Debug\\StubsExecutionGUI.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6A593C6C7F92CA0166D5863B200AA05D" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Text.Encoding.CodePages, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" { - "_6A593C6C7F92CA0166D5863B200AA05D" + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1" { - "Name" = "8:System.Text.Encoding.CodePages.DLL" - "Attributes" = "3:512" + "Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.6.1" } } - "SourcePath" = "8:System.Text.Encoding.CodePages.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6EDA9B68CBA90E9D08C225E64882A91A" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Security.Cryptography.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_56B82687FDF4453D9724832E4F8B0014" { - "_6EDA9B68CBA90E9D08C225E64882A91A" - { - "Name" = "8:System.Security.Cryptography.Primitives.dll" - "Attributes" = "3:512" - } + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "FrameworkVersion" = "8:.NETFramework,Version=v4.6.1" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=671728" } - "SourcePath" = "8:System.Security.Cryptography.Primitives.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_73A191186BF426331AD533F7B8FE7B35" + } + "File" + { + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0712ECEB4DE24D8B9E9936D94BDC61B4" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" "AssemblyAsmDisplayName" = "8:Tango.Scripting, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_73A191186BF426331AD533F7B8FE7B35" + "_0712ECEB4DE24D8B9E9936D94BDC61B4" { - "Name" = "8:Tango.Scripting.DLL" + "Name" = "8:Tango.Scripting.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Scripting.DLL" + "SourcePath" = "8:..\\..\\Build\\Debug\\Tango.Scripting.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1654,24 +537,19 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_83838CE7A607B1C85B1D3E962EBF13AD" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0CFB833EC8758FDDB415984703D96A78" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_83838CE7A607B1C85B1D3E962EBF13AD" - { - "Name" = "8:Microsoft.Practices.ServiceLocation.DLL" - "Attributes" = "3:512" - } } - "SourcePath" = "8:Microsoft.Practices.ServiceLocation.DLL" + "SourcePath" = "8:System.Collections.Immutable.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1689,14 +567,14 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_950EEF994AA25A7143EC3BCC121B5474" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2DC8C87C2D90158064A700C697B49957" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" "AssemblyAsmDisplayName" = "8:Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL" "ScatterAssemblies" { - "_950EEF994AA25A7143EC3BCC121B5474" + "_2DC8C87C2D90158064A700C697B49957" { "Name" = "8:Google.Protobuf.DLL" "Attributes" = "3:512" @@ -1720,20 +598,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9B73A2245EE7C4F9AB0977E14A7687AB" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_37EC5D1BE221C8E104929A1B70B2661E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Logging, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_9B73A2245EE7C4F9AB0977E14A7687AB" + "_37EC5D1BE221C8E104929A1B70B2661E" { - "Name" = "8:Tango.Logging.DLL" + "Name" = "8:Microsoft.Practices.ServiceLocation.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Logging.DLL" + "SourcePath" = "8:Microsoft.Practices.ServiceLocation.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1751,20 +629,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A304CEC70994BBC8BE642A6D2A00C301" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5397E5B2CD05015FD556CF7136D97D21" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.PMR, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_A304CEC70994BBC8BE642A6D2A00C301" + "_5397E5B2CD05015FD556CF7136D97D21" { - "Name" = "8:MahApps.Metro.DLL" + "Name" = "8:Tango.PMR.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:MahApps.Metro.DLL" + "SourcePath" = "8:Tango.PMR.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1782,51 +660,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A6DD21EE032731C3E2B52FCE0C3E1CB8" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_61BDC9339D1440BCBC454CC904BCE79C" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.CodeAnalysis, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_A6DD21EE032731C3E2B52FCE0C3E1CB8" - { - "Name" = "8:Microsoft.CodeAnalysis.DLL" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Microsoft.CodeAnalysis.DLL" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A763E0945B5DF943AFC202393056F34F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:StubsExecutionGUI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_A763E0945B5DF943AFC202393056F34F" + "_61BDC9339D1440BCBC454CC904BCE79C" { - "Name" = "8:System.Runtime.dll" + "Name" = "8:StubsExecutionGUI.exe" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.dll" + "SourcePath" = "8:..\\..\\Build\\Debug\\StubsExecutionGUI.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1840,24 +687,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BF01E96BB3B7FA07DDE0651D59B2C1C8" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6290C6253BE08D5AEAF445DC538F5A32" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Scripting, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_BF01E96BB3B7FA07DDE0651D59B2C1C8" + "_6290C6253BE08D5AEAF445DC538F5A32" { - "Name" = "8:System.Windows.Interactivity.DLL" + "Name" = "8:Tango.Scripting.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Windows.Interactivity.DLL" + "SourcePath" = "8:Tango.Scripting.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1875,20 +722,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BF62E984AB706A9532C332E9E71B18BC" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_65CE51F98CEBE9E3D46589DB414FAA93" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Reactive.Interfaces, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" "ScatterAssemblies" { - "_BF62E984AB706A9532C332E9E71B18BC" + "_65CE51F98CEBE9E3D46589DB414FAA93" { - "Name" = "8:System.Runtime.Extensions.dll" + "Name" = "8:System.Reactive.Interfaces.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.Extensions.dll" + "SourcePath" = "8:System.Reactive.Interfaces.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1906,20 +753,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C00C2B072AD4B5A2E97117F31DA5BF4D" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_72B65244C4FF9BF01D372402C3CE52C5" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Reflection.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Reactive.Linq, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C00C2B072AD4B5A2E97117F31DA5BF4D" + "_72B65244C4FF9BF01D372402C3CE52C5" { - "Name" = "8:System.Reflection.Primitives.dll" + "Name" = "8:System.Reactive.Linq.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reflection.Primitives.dll" + "SourcePath" = "8:System.Reactive.Linq.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1937,20 +784,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C3653413D52CF13A3AC1C694364A8882" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_78C9B7DB89C8CFF3E6F812DBDAF18DC7" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.Settings, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C3653413D52CF13A3AC1C694364A8882" + "_78C9B7DB89C8CFF3E6F812DBDAF18DC7" { - "Name" = "8:System.Runtime.Numerics.dll" + "Name" = "8:Tango.Settings.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.Numerics.dll" + "SourcePath" = "8:Tango.Settings.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1968,20 +815,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C938B65796CF5490A0CC3DA14C718F01" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8B8BABD8173D326B3175B52925968439" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Serialization, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C938B65796CF5490A0CC3DA14C718F01" + "_8B8BABD8173D326B3175B52925968439" { - "Name" = "8:Newtonsoft.Json.DLL" + "Name" = "8:Tango.Serialization.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:Newtonsoft.Json.DLL" + "SourcePath" = "8:Tango.Serialization.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -1999,20 +846,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D4DD93908C793CC94F4F8F78409F3100" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8F0D060313A40E3D6C4B196C5819AA1F" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.CodeAnalysis.Scripting, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.SharedUI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D4DD93908C793CC94F4F8F78409F3100" + "_8F0D060313A40E3D6C4B196C5819AA1F" { - "Name" = "8:Microsoft.CodeAnalysis.Scripting.DLL" + "Name" = "8:Tango.SharedUI.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:Microsoft.CodeAnalysis.Scripting.DLL" + "SourcePath" = "8:Tango.SharedUI.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2030,20 +877,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DAF686C3DE2DEABE3DC046748C50DB00" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_92474495A2F0D65A21D2BFF4587358D8" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.Transport, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_DAF686C3DE2DEABE3DC046748C50DB00" + "_92474495A2F0D65A21D2BFF4587358D8" { - "Name" = "8:System.Collections.dll" + "Name" = "8:Tango.Transport.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Collections.dll" + "SourcePath" = "8:Tango.Transport.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2061,20 +908,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E1E1D5FF266348A818C0D62B861455F1" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_94CDF51D67BB69C2699CEC4485EBCA30" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reactive.Interfaces, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Stubs, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_E1E1D5FF266348A818C0D62B861455F1" + "_94CDF51D67BB69C2699CEC4485EBCA30" { - "Name" = "8:System.Reactive.Interfaces.DLL" + "Name" = "8:Tango.Stubs.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reactive.Interfaces.DLL" + "SourcePath" = "8:Tango.Stubs.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2092,20 +939,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E24C6D577AF7FF009D66CA15C21E0A7C" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9E54529BF03690F97BEE24C45258265B" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Console, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Reactive.Core, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" "ScatterAssemblies" { - "_E24C6D577AF7FF009D66CA15C21E0A7C" + "_9E54529BF03690F97BEE24C45258265B" { - "Name" = "8:System.Console.dll" + "Name" = "8:System.Reactive.Core.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Console.dll" + "SourcePath" = "8:System.Reactive.Core.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2123,51 +970,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E6DED22BB43E475B9794561C384D2713" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A09EFD9A2681B7EEE293BB3C3E00C524" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:stubexec, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_E6DED22BB43E475B9794561C384D2713" - { - "Name" = "8:stubexec.exe" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:..\\..\\Build\\Debug\\stubexec.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E9059FA100DE1C98726DA9227C08734B" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Globalization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_E9059FA100DE1C98726DA9227C08734B" + "_A09EFD9A2681B7EEE293BB3C3E00C524" { - "Name" = "8:System.Globalization.dll" + "Name" = "8:System.Windows.Interactivity.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Globalization.dll" + "SourcePath" = "8:System.Windows.Interactivity.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2185,20 +1001,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E9E779ABD8B7FA0322F597FC3FE5269E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B903CCAAE77F80B733B5FF7D00A8E88A" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Serialization, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" "ScatterAssemblies" { - "_E9E779ABD8B7FA0322F597FC3FE5269E" + "_B903CCAAE77F80B733B5FF7D00A8E88A" { - "Name" = "8:Tango.Serialization.DLL" + "Name" = "8:Newtonsoft.Json.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Serialization.DLL" + "SourcePath" = "8:Newtonsoft.Json.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2216,20 +1032,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F3984995940A979BD200F6C155905708" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BFCEC942CF3BF1B9FB6AEACA2A8753C3" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Logging, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_F3984995940A979BD200F6C155905708" + "_BFCEC942CF3BF1B9FB6AEACA2A8753C3" { - "Name" = "8:System.Xml.ReaderWriter.DLL" + "Name" = "8:Tango.Logging.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Xml.ReaderWriter.DLL" + "SourcePath" = "8:Tango.Logging.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2247,20 +1063,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F3F18112295FF17BD182DB86D6EB1133" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D2FFB7AB335C92855094B6988900F58C" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Threading.Tasks.Parallel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:ICSharpCode.AvalonEdit, Version=4.3.1.9429, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_F3F18112295FF17BD182DB86D6EB1133" + "_D2FFB7AB335C92855094B6988900F58C" { - "Name" = "8:System.Threading.Tasks.Parallel.dll" + "Name" = "8:ICSharpCode.AvalonEdit.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Threading.Tasks.Parallel.dll" + "SourcePath" = "8:ICSharpCode.AvalonEdit.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2278,14 +1094,14 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F924359C0BCB71C0806EF440F78E897E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DE92CA29E3DCD5F35FD39C7351489051" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" "AssemblyAsmDisplayName" = "8:SimpleValidator, Version=0.6.1.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_F924359C0BCB71C0806EF440F78E897E" + "_DE92CA29E3DCD5F35FD39C7351489051" { "Name" = "8:SimpleValidator.DLL" "Attributes" = "3:512" @@ -2309,20 +1125,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F9F9CEF184152F7DD4271F8E16A99306" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E6DED22BB43E475B9794561C384D2713" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Handles, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:stubexec, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_F9F9CEF184152F7DD4271F8E16A99306" + "_E6DED22BB43E475B9794561C384D2713" { - "Name" = "8:System.Runtime.Handles.dll" + "Name" = "8:stubexec.exe" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.Handles.dll" + "SourcePath" = "8:..\\..\\Build\\Debug\\stubexec.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2336,24 +1152,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FCDFDB9DDDD58E80F781871548F781B4" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E8DB13B92FF4C290BF9E84F6AD1DE386" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reactive.Core, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL" "ScatterAssemblies" { - "_FCDFDB9DDDD58E80F781871548F781B4" + "_E8DB13B92FF4C290BF9E84F6AD1DE386" { - "Name" = "8:System.Reactive.Core.DLL" + "Name" = "8:MahApps.Metro.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reactive.Core.DLL" + "SourcePath" = "8:MahApps.Metro.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" @@ -2371,20 +1187,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FD63FD7AD44D6BD26EED625F3EA5DAA9" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F35F069FCC8C9B6808AAD45B8039A4FB" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.SharedUI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Core, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_FD63FD7AD44D6BD26EED625F3EA5DAA9" + "_F35F069FCC8C9B6808AAD45B8039A4FB" { - "Name" = "8:Tango.SharedUI.DLL" + "Name" = "8:Tango.Core.DLL" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.SharedUI.DLL" + "SourcePath" = "8:Tango.Core.DLL" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_D5AAD35A4ABE407AA40E02371659B408" diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Tango.Stubs.UI.csproj b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Tango.Stubs.UI.csproj index 24f9d6b40..c5819c1cb 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Tango.Stubs.UI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Tango.Stubs.UI.csproj @@ -30,7 +30,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 @@ -177,7 +177,7 @@ - $(TargetDir)linkgen.exe -s "$(TargetPath)" -d "$(TargetDir)Utilities\Stubs Execution GUI.lnk" + if $(ConfigurationName) == Debug $(TargetDir)linkgen.exe -s "$(TargetPath)" -d "$(TargetDir)Utilities\Stubs Execution GUI.lnk" diff --git a/Software/Visual_Studio/Utilities/Tango.TransportRouter.UI/Tango.TransportRouter.UI.csproj b/Software/Visual_Studio/Utilities/Tango.TransportRouter.UI/Tango.TransportRouter.UI.csproj index 0c039d0f9..57251e5ea 100644 --- a/Software/Visual_Studio/Utilities/Tango.TransportRouter.UI/Tango.TransportRouter.UI.csproj +++ b/Software/Visual_Studio/Utilities/Tango.TransportRouter.UI/Tango.TransportRouter.UI.csproj @@ -28,7 +28,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Release\ TRACE prompt 4 @@ -144,6 +144,6 @@ - $(TargetDir)linkgen.exe -s "$(TargetPath)" -d "$(TargetDir)Utilities\Transport Router.lnk" + if $(ConfigurationName) == Debug $(TargetDir)linkgen.exe -s "$(TargetPath)" -d "$(TargetDir)Utilities\Transport Router.lnk" \ No newline at end of file diff --git a/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj b/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj index e381ede6d..9efcfd9cf 100644 --- a/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj +++ b/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj @@ -28,7 +28,7 @@ AnyCPU pdbonly true - bin\Release\ + ..\..\Build\Debug\ TRACE prompt 4 -- cgit v1.3.1 From 4188ea39897f5aa3bc4be5a44358b79436baf0b4 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 11 Mar 2018 11:22:18 +0200 Subject: Fixed issue with MS publisher release build. --- .../MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml | 2 +- .../MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs | 2 +- Software/Visual_Studio/Tango.sln | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml index ab7e503ff..abbfa0aa6 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml @@ -5,7 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Tango.MachineStudio.Publisher" mc:Ignorable="d" - Title="Machine Studio Publisher" Height="400" Width="700" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow" ResizeMode="NoResize" Foreground="#202020" d:DataContext="{d:DesignInstance Type=local:MainWindowVM, IsDesignTimeCreatable=False}"> + Title="Machine Studio Publisher" Height="432" Width="700" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow" ResizeMode="NoResize" Foreground="#202020" d:DataContext="{d:DesignInstance Type=local:MainWindowVM, IsDesignTimeCreatable=False}"> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs index 34d2f1b1f..3b92ac686 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs @@ -21,7 +21,7 @@ namespace Tango.MachineStudio.Publisher { public class MainWindowVM : ViewModel { - private String _appPath = AppDomain.CurrentDomain.BaseDirectory; + private String _appPath = AppDomain.CurrentDomain.BaseDirectory + "..\\Release"; private ChannelFactory _service; private IMachineStudioUpdateService _client; diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index c7703ccf4..e8ae075d8 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -1703,7 +1703,7 @@ Global {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x64.Build.0 = Debug|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.DefaultBuild|x86.Build.0 = Debug|Any CPU - {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|Any CPU.ActiveCfg = Debug|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.ActiveCfg = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM.Build.0 = Release|Any CPU {E711CD86-89C1-432C-9C60-BFF30BBBFB3A}.Release|ARM64.ActiveCfg = Release|Any CPU -- cgit v1.3.1 From c923d6611ffa64605879779c490a979e03daa189 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 11 Mar 2018 14:03:02 +0200 Subject: Working on Users & Roles module ! --- .../Cascade Machine Delete To Configuration.sql | Bin 0 -> 2824 bytes .../Cascade User Delete To Contact and Address.sql | Bin 0 -> 3816 bytes Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1048576 -> 1048576 bytes .../ViewModels/MainViewVM.cs | 61 ++++++++++-- .../Views/UserManagementView.xaml | 103 +++++++++++++++++---- .../Tango.BL/EntitiesExtensions/Contact.cs | 16 ++++ .../Visual_Studio/Tango.BL/IObservableEntity.cs | 5 + .../Visual_Studio/Tango.BL/ObservableEntity.cs | 17 ++++ Software/Visual_Studio/Tango.BL/Tango.BL.csproj | 1 + .../ExtensionMethods/StringExtensions.cs | 22 +++++ 11 files changed, 201 insertions(+), 24 deletions(-) create mode 100644 Software/DB/Change Scripts/Cascade Machine Delete To Configuration.sql create mode 100644 Software/DB/Change Scripts/Cascade User Delete To Contact and Address.sql create mode 100644 Software/Visual_Studio/Tango.BL/EntitiesExtensions/Contact.cs (limited to 'Software/Visual_Studio') diff --git a/Software/DB/Change Scripts/Cascade Machine Delete To Configuration.sql b/Software/DB/Change Scripts/Cascade Machine Delete To Configuration.sql new file mode 100644 index 000000000..a0a38b6dc Binary files /dev/null and b/Software/DB/Change Scripts/Cascade Machine Delete To Configuration.sql differ diff --git a/Software/DB/Change Scripts/Cascade User Delete To Contact and Address.sql b/Software/DB/Change Scripts/Cascade User Delete To Contact and Address.sql new file mode 100644 index 000000000..052655968 Binary files /dev/null and b/Software/DB/Change Scripts/Cascade User Delete To Contact and Address.sql differ diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index 598a7c37e..cb00adf1a 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 1411d7c4e..972799de3 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs index fdb0f8983..9478014b7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs @@ -81,6 +81,14 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels public RelayCommand AddOrganizationCommand { get; set; } + public RelayCommand RemoveOrganizationCommand { get; set; } + + public RelayCommand BackToManagedOrganizationCommand { get; set; } + + public RelayCommand RemoveRoleCommand { get; set; } + + public RelayCommand SaveManagedUserCommand { get; set; } + public MainViewVM(UsersAndRolesNavigationManager navigation, INotificationProvider notification) { _navigation = navigation; @@ -88,11 +96,15 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels LoadOrganizations(); - ManageOrganizationCommand = new RelayCommand(ManageOrganization, () => SelectedOrganization != null); + ManageOrganizationCommand = new RelayCommand(LoadSelectedOrganization, () => SelectedOrganization != null); BackToOrganizationsCommand = new RelayCommand(BackToOrganizations); ManageUserCommand = new RelayCommand(ManageUser, () => SelectedUser != null); SaveOrganizationCommand = new RelayCommand(SaveOrganization); AddOrganizationCommand = new RelayCommand(AddOrganization); + RemoveOrganizationCommand = new RelayCommand(RemoveOrganization, () => SelectedOrganization != null); + BackToManagedOrganizationCommand = new RelayCommand(BackToManagedOrganization); + RemoveRoleCommand = new RelayCommand(RemoveUserRole); + SaveManagedUserCommand = new RelayCommand(SaveManagedUser); } private async void AddOrganization() @@ -111,7 +123,19 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels await org.SaveAsync(_organizationsContext); Organizations = _organizationsContext.Organizations.ToObservableCollection(); SelectedOrganization = org; - ManageOrganization(); + LoadSelectedOrganization(); + } + } + } + + private async void RemoveOrganization() + { + if (_notification.ShowQuestion("Are you sure you want to remove " + SelectedOrganization.Name + " organization?")) + { + using (_notification.PushTaskItem("Removing organization...")) + { + await SelectedOrganization.DeleteCascadeAsync(_organizationsContext); + LoadOrganizations(); } } } @@ -120,7 +144,7 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels { using (_notification.PushTaskItem("Saving organization address and contact...")) { - ManagedOrganization.Contact.FullName = ManagedOrganization.Contact.FirstName + " " + ManagedOrganization.Contact.LastName; + ManagedOrganization.Contact.SetFullName(); await ManagedOrganization.SaveAsync(_manageContext); LoadOrganizations(); SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid); @@ -134,8 +158,8 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels Task.Factory.StartNew(() => { _userContext = ObservablesContext.CreateDefault(); - Roles = _manageContext.Roles.ToObservableCollection(); - ManagedUser = _manageContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid); + Roles = _userContext.Roles.ToObservableCollection(); + ManagedUser = _userContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid); ManagedUserRoles = ManagedUser.Roles.ToObservableCollection(); InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView)); @@ -148,7 +172,32 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationSelectionView); } - private void ManageOrganization() + private void BackToManagedOrganization() + { + _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView); + } + + private void RemoveUserRole(Role role) + { + ManagedUserRoles.Remove(role); + + foreach (var userRole in ManagedUser.UsersRoles.Where(x => x.Role == role).ToList()) + { + userRole.DefferedDelete(_userContext); + } + } + + private async void SaveManagedUser() + { + using (_notification.PushTaskItem("Saving user details...")) + { + ManagedUser.Contact.SetFullName(); + await ManagedUser.SaveAsync(_userContext); + LoadSelectedOrganization(); + } + } + + private void LoadSelectedOrganization() { using (_notification.PushTaskItem("Loading organization...")) { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml index eaeb180ab..b92682b84 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml @@ -20,7 +20,7 @@ - + @@ -29,21 +29,27 @@ - - + + + - + ADDRESS - - + + CONTACT - - + + @@ -51,7 +57,7 @@ - @@ -105,7 +145,7 @@ - + @@ -117,6 +157,21 @@ + + + + + + + + + + + + + + + @@ -128,21 +183,31 @@ - + - + + - - + + + + + + + + + + + @@ -151,6 +216,8 @@ + + diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Contact.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Contact.cs new file mode 100644 index 000000000..6ededa330 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Contact.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class Contact + { + public void SetFullName() + { + FullName = FirstName + " " + LastName; + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/IObservableEntity.cs b/Software/Visual_Studio/Tango.BL/IObservableEntity.cs index 9e0a8801d..586d4da21 100644 --- a/Software/Visual_Studio/Tango.BL/IObservableEntity.cs +++ b/Software/Visual_Studio/Tango.BL/IObservableEntity.cs @@ -78,5 +78,10 @@ namespace Tango.BL /// Deletes this entity from the database. /// Task DeleteAsync(ObservablesContext context); + + /// + /// Deletes this entity using an SQL statement which will cause the database delete cascade effect. + /// + Task DeleteCascadeAsync(ObservablesContext context); } } diff --git a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs index add6877cb..43d5c06de 100644 --- a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs +++ b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs @@ -123,6 +123,18 @@ namespace Tango.BL { if (context == ObservablesEntitiesAdapter.Instance.Context) { + var tableName = this.GetType().GetCustomAttribute().Name; + + String propName = tableName.FromDalNameToTitleCase(); + + DbSet set = ObservablesEntitiesAdapter.Instance.Context.GetType().GetProperty(propName, BindingFlags.Instance | BindingFlags.Public).GetValue(context) as DbSet; + ObservableCollection obs = ObservablesEntitiesAdapter.Instance.GetType().GetProperty(propName, BindingFlags.Instance | BindingFlags.Public).GetValue(ObservablesEntitiesAdapter.Instance) as ObservableCollection; + + if (!obs.Contains(this as T)) + { + set.Add(this as T); + } + ObservablesEntitiesAdapter.Instance.SaveChanges(); } else @@ -284,6 +296,11 @@ Maybe you have deleted an entity that was no yet inserted into database?", LogCa return me == other; } + public Task DeleteCascadeAsync(ObservablesContext context) + { + return context.Database.ExecuteSqlCommandAsync(String.Format("DELETE FROM {0} WHERE GUID='{1}'", this.GetType().GetCustomAttribute().Name, Guid)); + } + #region Operator Overloading //public static bool operator ==(ObservableEntity observable1, ObservableEntity observable2) diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index b9565630d..8159e0f3b 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -85,6 +85,7 @@ + diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs index 048e942d5..e31456871 100644 --- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs +++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/StringExtensions.cs @@ -1,9 +1,11 @@ using System; using System.Collections.Generic; using System.Data.Entity.Design.PluralizationServices; +using System.Globalization; using System.Linq; using System.Text; using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; /// @@ -54,6 +56,26 @@ public static class StringExtensions return titleRegEx.Replace(str, " "); } + /// + /// Formats the string as title case. + /// + /// The string. + /// + public static String ToTitleCase(this String str) + { + return Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(str.ToLower()); + } + + /// + /// Converts the specified database conventional name to the observables conventional name. + /// + /// DAL name. + /// + public static String FromDalNameToTitleCase(this String dalName) + { + return String.Join("", dalName.Split('_').Select(x => ToTitleCase(x))); + } + /// /// Singularizes the string. /// -- cgit v1.3.1 From e75cf513acb73558e948d6012b45f221c718dcf7 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 12 Mar 2018 17:03:38 +0200 Subject: Added cascade delete for Machine -> Jobs. Added addresses auto complete to users & roles. Maybe Users & Roles module is complete.. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1048576 -> 1048576 bytes .../Views/JobView.xaml.cs | 1 + .../Providers/Place.cs | 31 +++++ .../Providers/PlaceAddress.cs | 53 +++++++++ .../Providers/PlacesProvider.cs | 47 ++++++++ .../Tango.MachineStudio.UsersAndRoles.csproj | 14 +++ .../ViewModels/MainViewVM.cs | 132 ++++++++++++++++++++- .../Views/AddressView.xaml | 8 +- .../Views/OrganizationManagementView.xaml | 10 +- .../Views/OrganizationManagementView.xaml.cs | 8 +- .../Views/UserManagementView.xaml | 27 ++++- .../Views/UserManagementView.xaml.cs | 8 +- .../Views/UserView.xaml | 23 ++++ .../Views/UserView.xaml.cs | 28 +++++ .../Tango.MachineStudio.UsersAndRoles/app.config | 11 ++ .../packages.config | 1 + .../Tango.MachineStudio.UI/Views/MainView.xaml.cs | 1 + .../Tango.AutoComplete/Editors/Themes/Generic.xaml | 3 +- .../Tango.BL/EntitiesExtensions/Contact.cs | 38 +++++- .../Tango.BL/EntitiesExtensions/User.cs | 31 +++++ .../Visual_Studio/Tango.BL/IObservableEntity.cs | 7 ++ .../Visual_Studio/Tango.BL/ObservableEntity.cs | 17 ++- Software/Visual_Studio/Tango.BL/Tango.BL.csproj | 3 + Software/Visual_Studio/Tango.BL/packages.config | 1 + .../Tango.SharedUI/Helpers/PasswordHelper.cs | 98 +++++++++++++++ .../Tango.SharedUI/Tango.SharedUI.csproj | 1 + 27 files changed, 583 insertions(+), 19 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/Place.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlaceAddress.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlacesProvider.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/app.config create mode 100644 Software/Visual_Studio/Tango.SharedUI/Helpers/PasswordHelper.cs (limited to 'Software/Visual_Studio') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index cb00adf1a..a1dced350 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 972799de3..2b587c81f 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs index 0c99dfe5f..044046450 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs @@ -82,6 +82,7 @@ namespace Tango.MachineStudio.Developer.Views } jobBrushList.ItemsSource = segments; + UpdateGradientBrushDisplay(); } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/Place.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/Place.cs new file mode 100644 index 000000000..a2ac2a9b7 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/Place.cs @@ -0,0 +1,31 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Serialization; + +namespace Tango.MachineStudio.UsersAndRoles.Providers +{ + public class Place + { + [XmlElement("address")] + [JsonProperty("address")] + public PlaceAddress Address { get; set; } + + [XmlAttribute("display_name")] + [JsonProperty("display_name")] + public String DisplayName { get; set; } + + public Place() + { + Address = new PlaceAddress(); + } + + public override string ToString() + { + return DisplayName; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlaceAddress.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlaceAddress.cs new file mode 100644 index 000000000..5b25794d1 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlaceAddress.cs @@ -0,0 +1,53 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Serialization; + +namespace Tango.MachineStudio.UsersAndRoles.Providers +{ + public class PlaceAddress + { + [XmlElement("road")] + [JsonProperty("road")] + public String Road { get; set; } + + [XmlElement("village")] + [JsonProperty("village")] + public String Village + { + get { return City; } + set { City = value; } + } + + [XmlElement("town")] + [JsonProperty("town")] + public String Town + { + get { return City; } + set { City = value; } + } + + [XmlElement("city")] + [JsonProperty("city")] + public String City { get; set; } + + [XmlElement("state")] + [JsonProperty("state")] + public String State { get; set; } + + [XmlElement("postcode")] + [JsonProperty("postcode")] + public String PostalCode { get; set; } + + [XmlElement("country")] + [JsonProperty("country")] + public String Country { get; set; } + + [XmlElement("country_code")] + [JsonProperty("country_code")] + public String CountryCode { get; set; } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlacesProvider.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlacesProvider.cs new file mode 100644 index 000000000..681815d4c --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Providers/PlacesProvider.cs @@ -0,0 +1,47 @@ +using Newtonsoft.Json; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Tango.AutoComplete.Editors; +using Tango.Logging; + +namespace Tango.MachineStudio.UsersAndRoles.Providers +{ + public class PlacesProvider : ISuggestionProvider + { + public IEnumerable GetSuggestions(string filter) + { + List places = new List(); + + using (WebClient web = new WebClient()) + { + try + { + String json = null; + + web.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"); + web.Headers.Add(HttpRequestHeader.ContentType, "application/json"); + web.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-US"); + + json = web.DownloadString(String.Format("https://nominatim.openstreetmap.org/search?q={0}&format=json&addressdetails=1", filter)); + + if (json != null) + { + List results = JsonConvert.DeserializeObject>(json); + places.AddRange(results); + } + } + catch (Exception ex) + { + LogManager.Default.Log(ex, LogCategory.Debug); + } + } + + return places; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj index a64c536ed..9064519c0 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj @@ -58,6 +58,9 @@ ..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll + + ..\..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + @@ -83,6 +86,9 @@ + + + @@ -104,6 +110,9 @@ UserManagementView.xaml + + UserView.xaml + @@ -123,6 +132,7 @@ ResXFileCodeGenerator Resources.Designer.cs + SettingsSingleFileGenerator @@ -188,6 +198,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs index 9478014b7..7d82cbbbc 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs @@ -10,6 +10,7 @@ using Tango.BL.Entities; using Tango.Core.Commands; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.UsersAndRoles.Navigation; +using Tango.MachineStudio.UsersAndRoles.Providers; using Tango.SharedUI; namespace Tango.MachineStudio.UsersAndRoles.ViewModels @@ -71,6 +72,36 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels set { _managedUser = value; RaisePropertyChangedAuto(); } } + private Place _selectedUserPlace; + public Place SelectedUserPlace + { + get { return _selectedUserPlace; } + set + { + _selectedUserPlace = value; + + if (_selectedUserPlace != null && _selectedUserPlace.Address != null) + { + SetUserPlace(value); + } + } + } + + private Place _selectedOrganizationPlace; + public Place SelectedOrganizationPlace + { + get { return _selectedOrganizationPlace; } + set + { + _selectedOrganizationPlace = value; + + if (_selectedOrganizationPlace != null && _selectedOrganizationPlace.Address != null) + { + SetOrganizationPlace(value); + } + } + } + public RelayCommand ManageOrganizationCommand { get; set; } public RelayCommand BackToOrganizationsCommand { get; set; } @@ -89,6 +120,10 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels public RelayCommand SaveManagedUserCommand { get; set; } + public RelayCommand AddUserCommand { get; set; } + + public RelayCommand RemoveUserCommand { get; set; } + public MainViewVM(UsersAndRolesNavigationManager navigation, INotificationProvider notification) { _navigation = navigation; @@ -98,13 +133,15 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels ManageOrganizationCommand = new RelayCommand(LoadSelectedOrganization, () => SelectedOrganization != null); BackToOrganizationsCommand = new RelayCommand(BackToOrganizations); - ManageUserCommand = new RelayCommand(ManageUser, () => SelectedUser != null); + ManageUserCommand = new RelayCommand(LoadSelectedUser, () => SelectedUser != null); SaveOrganizationCommand = new RelayCommand(SaveOrganization); AddOrganizationCommand = new RelayCommand(AddOrganization); RemoveOrganizationCommand = new RelayCommand(RemoveOrganization, () => SelectedOrganization != null); BackToManagedOrganizationCommand = new RelayCommand(BackToManagedOrganization); RemoveRoleCommand = new RelayCommand(RemoveUserRole); SaveManagedUserCommand = new RelayCommand(SaveManagedUser); + AddUserCommand = new RelayCommand(AddNewUser); + RemoveUserCommand = new RelayCommand(RemoveSelectedUser, () => SelectedUser != null); } private async void AddOrganization() @@ -144,14 +181,13 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels { using (_notification.PushTaskItem("Saving organization address and contact...")) { - ManagedOrganization.Contact.SetFullName(); await ManagedOrganization.SaveAsync(_manageContext); LoadOrganizations(); SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid); } } - private void ManageUser() + private void LoadSelectedUser() { using (_notification.PushTaskItem("Loading user details...")) { @@ -189,9 +225,18 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels private async void SaveManagedUser() { + try + { + ManagedUser.Validate(_userContext); + } + catch (Exception ex) + { + _notification.ShowError(ex.Message); + return; + } + using (_notification.PushTaskItem("Saving user details...")) { - ManagedUser.Contact.SetFullName(); await ManagedUser.SaveAsync(_userContext); LoadSelectedOrganization(); } @@ -237,6 +282,85 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels ManagedUserRoles.Add(role); } + private async void RemoveSelectedUser() + { + if (_notification.ShowQuestion("Are you sure you want to remove the selected user?")) + { + using (_notification.PushTaskItem("Removing user...")) + { + await SelectedUser.DeleteCascadeAsync(_manageContext); + LoadSelectedOrganization(); + } + } + } + + private async void AddNewUser() + { + String email = _notification.ShowTextInput("Enter user email", "email"); + + if (!String.IsNullOrWhiteSpace(email)) + { + User user = new User(); + user.Email = email; + user.Password = "1111"; + user.Contact = new Contact() + { + FirstName = "Twine", + LastName = "User", + Email = email, + }; + + user.UsersRoles.Add(new UsersRole() + { + User = user, + Role = _manageContext.Roles.SingleOrDefault(x => x.Code == (int)BL.Enumerations.Roles.User) + }); + + try + { + user.Validate(_manageContext); + } + catch (Exception ex) + { + _notification.ShowError(ex.Message); + return; + } + + user.Address = new Address(); + + ManagedOrganization.Users.Add(user); + + using (_notification.PushTaskItem("Adding new user...")) + { + await ManagedOrganization.SaveAsync(_manageContext); + LoadOrganizations(); + SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid); + } + } + } + + private void SetUserPlace(Place place) + { + ManagedUser.Address.AddressString = place.Address.Road; + ManagedUser.Address.City = place.Address.City; + ManagedUser.Address.Country = place.Address.Country; + ManagedUser.Address.CountryCode = place.Address.CountryCode; + ManagedUser.Address.Locality = place.Address.CountryCode; + ManagedUser.Address.PostalCode = place.Address.PostalCode; + ManagedUser.Address.State = place.Address.State; + } + + private void SetOrganizationPlace(Place place) + { + ManagedOrganization.Address.AddressString = place.Address.Road; + ManagedOrganization.Address.City = place.Address.City; + ManagedOrganization.Address.Country = place.Address.Country; + ManagedOrganization.Address.CountryCode = place.Address.CountryCode; + ManagedOrganization.Address.Locality = place.Address.CountryCode; + ManagedOrganization.Address.PostalCode = place.Address.PostalCode; + ManagedOrganization.Address.State = place.Address.State; + } + protected override void RaisePropertyChangedAuto([CallerMemberName] string caller = null) { base.RaisePropertyChangedAuto(caller); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/AddressView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/AddressView.xaml index 41f7871e2..937cf14dd 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/AddressView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/AddressView.xaml @@ -15,17 +15,17 @@ - + - + - + - + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml index 7769f65ed..64b05769a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml @@ -9,6 +9,7 @@ xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" xmlns:mahApps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:providers="clr-namespace:Tango.MachineStudio.UsersAndRoles.Providers" xmlns:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:local="clr-namespace:Tango.MachineStudio.UsersAndRoles.Views" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" @@ -17,6 +18,7 @@ + @@ -38,7 +40,13 @@ ADDRESS - + + + + + + + CONTACT diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml.cs index 76b256d62..e2c44a584 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml.cs @@ -12,17 +12,23 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using static Tango.SharedUI.Controls.MultiTransitionControl; namespace Tango.MachineStudio.UsersAndRoles.Views { /// /// Interaction logic for OrganizationManagementView.xaml /// - public partial class OrganizationManagementView : UserControl + public partial class OrganizationManagementView : UserControl , ITransitionView { public OrganizationManagementView() { InitializeComponent(); } + + public void OnTransitionCompleted() + { + address_auto.Text = ""; + } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml index b92682b84..ccb38b198 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml @@ -5,6 +5,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:global="clr-namespace:Tango.MachineStudio.UsersAndRoles" xmlns:vm="clr-namespace:Tango.MachineStudio.UsersAndRoles.ViewModels" + xmlns:providers="clr-namespace:Tango.MachineStudio.UsersAndRoles.Providers" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" @@ -16,6 +17,10 @@ mc:Ignorable="d" d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + + + + @@ -39,19 +44,31 @@ - + - ADDRESS - - + LOGIN + + CONTACT - + + + ADDRESS + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs index b26f0ea03..f2ff25637 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml.cs @@ -15,13 +15,14 @@ using System.Windows.Shapes; using Tango.BL.Entities; using Tango.DragAndDrop; using Tango.MachineStudio.UsersAndRoles.ViewModels; +using static Tango.SharedUI.Controls.MultiTransitionControl; namespace Tango.MachineStudio.UsersAndRoles.Views { /// /// Interaction logic for UserManagementView.xaml /// - public partial class UserManagementView : UserControl + public partial class UserManagementView : UserControl, ITransitionView { private MainViewVM _vm; @@ -47,5 +48,10 @@ namespace Tango.MachineStudio.UsersAndRoles.Views _vm.OnDropRole(e.Draggable.DataContext as Role); } } + + public void OnTransitionCompleted() + { + address_auto.Text = ""; + } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml new file mode 100644 index 000000000..6c7596015 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml.cs new file mode 100644 index 000000000..b617bdbc4 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.MachineStudio.UsersAndRoles.Views +{ + /// + /// Interaction logic for UserView.xaml + /// + public partial class UserView : UserControl + { + public UserView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/app.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/app.config new file mode 100644 index 000000000..cacd4cd77 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/packages.config index cf0df03c8..6b8afad69 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/packages.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/packages.config @@ -6,4 +6,5 @@ + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs index c40904173..e0ae60b87 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs @@ -76,6 +76,7 @@ namespace Tango.MachineStudio.UI.Views { Tag = module.Name, Content = grid, + Visibility = Visibility.Hidden, }); _loader.UserModules.Add(module); diff --git a/Software/Visual_Studio/SideChains/Tango.AutoComplete/Editors/Themes/Generic.xaml b/Software/Visual_Studio/SideChains/Tango.AutoComplete/Editors/Themes/Generic.xaml index a3c124841..25667d1d1 100644 --- a/Software/Visual_Studio/SideChains/Tango.AutoComplete/Editors/Themes/Generic.xaml +++ b/Software/Visual_Studio/SideChains/Tango.AutoComplete/Editors/Themes/Generic.xaml @@ -93,7 +93,8 @@ x.Role).ToList().SelectMany(x => x.RolesPermissions).Select(x => x.Permission).ToList(); } } + + public override void Validate(ObservablesContext context) + { + var users = context.Users.ToList(); + + if (users.Exists(x => x.Guid != Guid && x.Email.ToLower() == Email.ToLower())) + { + throw new ArgumentException("The specified email is already taken by another account."); + } + + if (!Email.IsEmail()) + { + throw new ArgumentException("The specified email address is invalid."); + } + + if (!Password.IsBetweenLength(4, 30)) + { + throw new ArgumentException("A user password must be at least 4 characters long and maximum 30."); + } + + if (Contact != null) + { + Contact.Validate(context); + } + + if (Address != null) + { + Address.Validate(context); + } + } } } diff --git a/Software/Visual_Studio/Tango.BL/IObservableEntity.cs b/Software/Visual_Studio/Tango.BL/IObservableEntity.cs index 586d4da21..265b51179 100644 --- a/Software/Visual_Studio/Tango.BL/IObservableEntity.cs +++ b/Software/Visual_Studio/Tango.BL/IObservableEntity.cs @@ -83,5 +83,12 @@ namespace Tango.BL /// Deletes this entity using an SQL statement which will cause the database delete cascade effect. /// Task DeleteCascadeAsync(ObservablesContext context); + + /// + /// Performs entity field validation. + /// Will throw an exception with the proper message if one of the fields is invalid. + /// + /// The context. + void Validate(ObservablesContext context); } } diff --git a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs index 43d5c06de..e46e54ad3 100644 --- a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs +++ b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs @@ -166,7 +166,7 @@ namespace Tango.BL /// public Task SaveAsync(ObservablesContext context) { - return Task.Factory.StartNew(() => + return Task.Factory.StartNew(() => { Save(context); }); @@ -296,11 +296,26 @@ Maybe you have deleted an entity that was no yet inserted into database?", LogCa return me == other; } + /// + /// Deletes this entity using an SQL statement which will cause the database delete cascade effect. + /// + /// + /// public Task DeleteCascadeAsync(ObservablesContext context) { return context.Database.ExecuteSqlCommandAsync(String.Format("DELETE FROM {0} WHERE GUID='{1}'", this.GetType().GetCustomAttribute().Name, Guid)); } + /// + /// Performs entity field validation. + /// Will throw an exception with the proper message if one of the fields is invalid. + /// + /// The context. + public virtual void Validate(ObservablesContext context) + { + + } + #region Operator Overloading //public static bool operator ==(ObservableEntity observable1, ObservableEntity observable2) diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 8159e0f3b..a3f952644 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -45,6 +45,9 @@ ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\SimpleValidator.0.6.1.0\lib\net40\SimpleValidator.dll + diff --git a/Software/Visual_Studio/Tango.BL/packages.config b/Software/Visual_Studio/Tango.BL/packages.config index dcc94a0a3..ed5d800c9 100644 --- a/Software/Visual_Studio/Tango.BL/packages.config +++ b/Software/Visual_Studio/Tango.BL/packages.config @@ -3,6 +3,7 @@ + diff --git a/Software/Visual_Studio/Tango.SharedUI/Helpers/PasswordHelper.cs b/Software/Visual_Studio/Tango.SharedUI/Helpers/PasswordHelper.cs new file mode 100644 index 000000000..b87faf08f --- /dev/null +++ b/Software/Visual_Studio/Tango.SharedUI/Helpers/PasswordHelper.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; + +namespace Tango.SharedUI.Helpers +{ + public class PasswordHelper + { + public static readonly DependencyProperty PasswordProperty = + DependencyProperty.RegisterAttached("Password", + typeof(string), typeof(PasswordHelper), + new FrameworkPropertyMetadata(string.Empty, OnPasswordPropertyChanged)); + + public static readonly DependencyProperty AttachProperty = + DependencyProperty.RegisterAttached("Attach", + typeof(bool), typeof(PasswordHelper), new PropertyMetadata(false, Attach)); + + private static readonly DependencyProperty IsUpdatingProperty = + DependencyProperty.RegisterAttached("IsUpdating", typeof(bool), + typeof(PasswordHelper)); + + + public static void SetAttach(DependencyObject dp, bool value) + { + dp.SetValue(AttachProperty, value); + } + + public static bool GetAttach(DependencyObject dp) + { + return (bool)dp.GetValue(AttachProperty); + } + + public static string GetPassword(DependencyObject dp) + { + return (string)dp.GetValue(PasswordProperty); + } + + public static void SetPassword(DependencyObject dp, string value) + { + dp.SetValue(PasswordProperty, value); + } + + private static bool GetIsUpdating(DependencyObject dp) + { + return (bool)dp.GetValue(IsUpdatingProperty); + } + + private static void SetIsUpdating(DependencyObject dp, bool value) + { + dp.SetValue(IsUpdatingProperty, value); + } + + private static void OnPasswordPropertyChanged(DependencyObject sender, + DependencyPropertyChangedEventArgs e) + { + PasswordBox passwordBox = sender as PasswordBox; + passwordBox.PasswordChanged -= PasswordChanged; + + if (!(bool)GetIsUpdating(passwordBox)) + { + passwordBox.Password = (string)e.NewValue; + } + passwordBox.PasswordChanged += PasswordChanged; + } + + private static void Attach(DependencyObject sender, + DependencyPropertyChangedEventArgs e) + { + PasswordBox passwordBox = sender as PasswordBox; + + if (passwordBox == null) + return; + + if ((bool)e.OldValue) + { + passwordBox.PasswordChanged -= PasswordChanged; + } + + if ((bool)e.NewValue) + { + passwordBox.PasswordChanged += PasswordChanged; + } + } + + private static void PasswordChanged(object sender, RoutedEventArgs e) + { + PasswordBox passwordBox = sender as PasswordBox; + SetIsUpdating(passwordBox, true); + SetPassword(passwordBox, passwordBox.Password); + SetIsUpdating(passwordBox, false); + } + } + +} diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj index 1a751fda2..49590dcf5 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj +++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj @@ -120,6 +120,7 @@ ParameterizedEditor.xaml + -- cgit v1.3.1 From 37b740c1d128d694b9dcbc3669808435b5d88fec Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 13 Mar 2018 15:27:16 +0200 Subject: Implemented Gauge Control & Technician module controller item ! Auto generated diagnostics monitors & controllers PMR. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1048576 -> 1048576 bytes Software/Graphics/controller.png | Bin 0 -> 1667 bytes Software/PMR/Messages/ColorLab/ColorSpace.proto | 12 +- Software/PMR/Messages/ColorLab/LiquidType.proto | 12 +- Software/PMR/Messages/Common/MessageType.proto | 2 + .../Messages/Diagnostics/DiagnosticsMonitors.proto | 129 ++ .../Diagnostics/PushDiagnosticsResponse.proto | 32 +- .../Diagnostics/SetComponentValueRequest.proto | 12 + .../Diagnostics/SetComponentValueResponse.proto | 9 + .../PMR/Messages/Diagnostics/ValueComponent.proto | 25 + .../Messages/Diagnostics/ValueComponentState.proto | 12 + .../PMR/Messages/Hardware/HardwareDancer.proto | 12 +- .../PMR/Messages/Hardware/HardwareDancerType.proto | 15 +- .../PMR/Messages/Hardware/HardwareDispenser.proto | 12 +- .../Messages/Hardware/HardwareDispenserType.proto | 12 +- Software/PMR/Messages/Hardware/HardwareMotor.proto | 12 +- .../PMR/Messages/Hardware/HardwareMotorType.proto | 16 +- .../PMR/Messages/Hardware/HardwarePidControl.proto | 12 +- .../Messages/Hardware/HardwarePidControlType.proto | 26 +- .../PMR/Messages/Hardware/HardwareWinder.proto | 12 +- .../PMR/Messages/Hardware/HardwareWinderType.proto | 13 +- .../Messages/Printing/DispenserLiquidType.proto | 12 +- Software/PMR/Messages/Printing/JobSpool.proto | 12 +- Software/PMR/Messages/Printing/JobSpoolType.proto | 12 +- .../PMR/Messages/Printing/JobWindingMethod.proto | 14 +- .../PMR/Messages/Printing/ProcessParameters.proto | 12 +- .../Editors/ControllerElementEditor.xaml | 140 ++ .../Editors/ControllerElementEditor.xaml.cs | 90 ++ .../Images/controller.png | Bin 0 -> 1667 bytes .../PropertiesTemplates/ControllerTemplate.xaml | 41 + .../PropertiesTemplates/ControllerTemplate.xaml.cs | 28 + .../Tango.MachineStudio.Technician.csproj | 22 + .../TechItems/ControllerItem.cs | 121 ++ .../TechItems/TechItem.cs | 1 + .../ViewModels/MachineTechViewVM.cs | 72 +- .../Views/MachineTechView.xaml | 3 + .../Tango.BL/Entities/TechController.cs | 144 ++ .../Visual_Studio/Tango.BL/Entities/TechHeater.cs | 84 -- Software/Visual_Studio/Tango.BL/Entities/User.cs | 20 + .../Visual_Studio/Tango.BL/Enumerations/Sensors.cs | 181 --- .../Tango.BL/Enumerations/TechControllers.cs | 25 + .../Visual_Studio/Tango.BL/ObservablesContext.cs | 8 +- .../Tango.BL/ObservablesEntitiesAdapter.cs | 2 +- .../ObservablesEntitiesAdapterExtension.cs | 44 +- Software/Visual_Studio/Tango.BL/Tango.BL.csproj | 3 +- .../Tango.CircularGauge/CircularGaugeControl.cs | 1419 ++++++++++++++++++++ .../Tango.CircularGauge/Properties/AssemblyInfo.cs | 18 + .../Properties/Resources.Designer.cs | 63 + .../Tango.CircularGauge/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../Tango.CircularGauge/Tango.CircularGauge.csproj | 128 ++ .../Tango.CircularGauge/Themes/Generic.xaml | 174 +++ .../Tango.CircularGauge/TypeConverters.cs | 277 ++++ .../Tango.CodeGeneration/ProtoMessageFile.cs | 6 +- .../Tango.CodeGeneration/ProtoProperty.cs | 26 + .../Tango.CodeGeneration.csproj | 1 + .../Templates/ProtoEnumFile.cshtml | 13 +- .../Templates/ProtoMessageFile.cshtml | 15 +- .../Tango.DAL.Remote/DB/RemoteADO.Context.cs | 2 +- .../Tango.DAL.Remote/DB/RemoteADO.edmx | 68 +- .../Tango.DAL.Remote/DB/RemoteADO.edmx.diagram | 132 +- .../Tango.DAL.Remote/DB/TECH_CONTROLLERS.cs | 27 + .../Tango.DAL.Remote/DB/TECH_HEATERS.cs | 24 - Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs | 1 + .../Tango.DAL.Remote/Tango.DAL.Remote.csproj | 4 +- .../Tango.Emulations/Emulators/MachineEmulator.cs | 75 +- .../Operation/IMachineOperator.cs | 7 + .../Tango.Integration/Operation/MachineOperator.cs | 10 + .../Visual_Studio/Tango.PMR/Common/MessageType.cs | 21 +- .../Tango.PMR/Diagnostics/DiagnosticsMonitors.cs | 1017 ++++++++++++++ .../Diagnostics/PushDiagnosticsResponse.cs | 353 ++--- .../Diagnostics/SetComponentValueRequest.cs | 189 +++ .../Diagnostics/SetComponentValueResponse.cs | 131 ++ .../Tango.PMR/Diagnostics/ValueComponent.cs | 52 + .../Tango.PMR/Diagnostics/ValueComponentState.cs | 189 +++ .../Visual_Studio/Tango.PMR/ExtensionMethods.cs | 2 +- .../Tango.PMR/Hardware/HardwareDancerType.cs | 9 + .../Tango.PMR/Hardware/HardwareMotorType.cs | 12 + .../Tango.PMR/Hardware/HardwarePidControlType.cs | 42 + .../Tango.PMR/Hardware/HardwareWinderType.cs | 3 + .../Tango.PMR/Printing/JobWindingMethod.cs | 6 + Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj | 5 + Software/Visual_Studio/Tango.sln | 32 + .../Utilities/Tango.PMRGenerator.CLI/Program.cs | 91 +- 86 files changed, 5480 insertions(+), 792 deletions(-) create mode 100644 Software/Graphics/controller.png create mode 100644 Software/PMR/Messages/Diagnostics/DiagnosticsMonitors.proto create mode 100644 Software/PMR/Messages/Diagnostics/SetComponentValueRequest.proto create mode 100644 Software/PMR/Messages/Diagnostics/SetComponentValueResponse.proto create mode 100644 Software/PMR/Messages/Diagnostics/ValueComponent.proto create mode 100644 Software/PMR/Messages/Diagnostics/ValueComponentState.proto create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/controller.png create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs create mode 100644 Software/Visual_Studio/Tango.BL/Entities/TechController.cs delete mode 100644 Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs delete mode 100644 Software/Visual_Studio/Tango.BL/Enumerations/Sensors.cs create mode 100644 Software/Visual_Studio/Tango.BL/Enumerations/TechControllers.cs create mode 100644 Software/Visual_Studio/Tango.CircularGauge/CircularGaugeControl.cs create mode 100644 Software/Visual_Studio/Tango.CircularGauge/Properties/AssemblyInfo.cs create mode 100644 Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.Designer.cs create mode 100644 Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.resx create mode 100644 Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.Designer.cs create mode 100644 Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.settings create mode 100644 Software/Visual_Studio/Tango.CircularGauge/Tango.CircularGauge.csproj create mode 100644 Software/Visual_Studio/Tango.CircularGauge/Themes/Generic.xaml create mode 100644 Software/Visual_Studio/Tango.CircularGauge/TypeConverters.cs create mode 100644 Software/Visual_Studio/Tango.CodeGeneration/ProtoProperty.cs create mode 100644 Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_CONTROLLERS.cs delete mode 100644 Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs create mode 100644 Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs create mode 100644 Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueRequest.cs create mode 100644 Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueResponse.cs create mode 100644 Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponent.cs create mode 100644 Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponentState.cs (limited to 'Software/Visual_Studio') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index a1dced350..632ab86ed 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 2b587c81f..1265c49c9 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Graphics/controller.png b/Software/Graphics/controller.png new file mode 100644 index 000000000..5794f6cd8 Binary files /dev/null and b/Software/Graphics/controller.png differ diff --git a/Software/PMR/Messages/ColorLab/ColorSpace.proto b/Software/PMR/Messages/ColorLab/ColorSpace.proto index e25e935f4..f7f162d10 100644 --- a/Software/PMR/Messages/ColorLab/ColorSpace.proto +++ b/Software/PMR/Messages/ColorLab/ColorSpace.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.ColorLab; option java_package = "com.twine.tango.pmr.colorlab"; diff --git a/Software/PMR/Messages/ColorLab/LiquidType.proto b/Software/PMR/Messages/ColorLab/LiquidType.proto index 88ea24c82..255d9607b 100644 --- a/Software/PMR/Messages/ColorLab/LiquidType.proto +++ b/Software/PMR/Messages/ColorLab/LiquidType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.ColorLab; option java_package = "com.twine.tango.pmr.colorlab"; diff --git a/Software/PMR/Messages/Common/MessageType.proto b/Software/PMR/Messages/Common/MessageType.proto index 8ba5158ff..6f7848c9e 100644 --- a/Software/PMR/Messages/Common/MessageType.proto +++ b/Software/PMR/Messages/Common/MessageType.proto @@ -107,6 +107,8 @@ enum MessageType ThreadJoggingResponse = 2021; ThreadAbortJoggingRequest = 2022; ThreadAbortJoggingResponse = 2023; + SetComponentValueRequest = 2024; + SetComponentValueResponse = 2025; //Printing diff --git a/Software/PMR/Messages/Diagnostics/DiagnosticsMonitors.proto b/Software/PMR/Messages/Diagnostics/DiagnosticsMonitors.proto new file mode 100644 index 000000000..6bba594d5 --- /dev/null +++ b/Software/PMR/Messages/Diagnostics/DiagnosticsMonitors.proto @@ -0,0 +1,129 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ + +syntax = "proto3"; + +import "DoubleArray.proto"; + +package Tango.PMR.Diagnostics; +option java_package = "com.twine.tango.pmr.diagnostics"; + +message DiagnosticsMonitors +{ + + //Dancer 1 (Min = 0, Max = 255, PPF = 10) + repeated double Dancer1Angle = 1; + + //Dancer 2 (Min = 0, Max = 1200, PPF = 1) + repeated double Dancer2Angle = 2; + + //Dancer 3 (Min = 0, Max = 1200, PPF = 1) + repeated double Dancer3Angle = 3; + + //Feeder Motor (Min = 0, Max = 100, PPF = 1) + repeated double FeederMotorFrequency = 4; + + //Dryer Motor (Min = 0, Max = 100, PPF = 1) + repeated double DryerMotor = 5; + + //Poller Motor (Min = 0, Max = 100, PPF = 1) + repeated double PollerMotor = 6; + + //Winder Motor (Min = 0, Max = 100, PPF = 1) + repeated double WinderMotor = 7; + + //Screw Motor (Min = 0, Max = 100, PPF = 1) + repeated double ScrewMotor = 8; + + //Thread Speed (Min = 0, Max = 100, PPF = 1) + repeated double ThreadSpeed = 9; + + //Mixer (Min = 0, Max = 100, PPF = 1) + repeated double MixerTemperature = 10; + + //Head Zone 1 (Min = 0, Max = 100, PPF = 1) + repeated double HeadZone1Temperature = 11; + + //Head Zone 2 (Min = 0, Max = 100, PPF = 1) + repeated double HeadZone2Temperature = 12; + + //Head Zone 3 (Min = 0, Max = 100, PPF = 1) + repeated double HeadZone3Temperature = 13; + + //Head Air Flow (Min = 0, Max = 100, PPF = 1) + repeated double HeadAirFlow = 14; + + //Feeder Tension (Min = 0, Max = 100, PPF = 1) + repeated double FeederTension = 15; + + //Puller Tension (Min = 0, Max = 100, PPF = 1) + repeated double PullerTension = 16; + + //Dryer Zone 1 (Min = 0, Max = 100, PPF = 1) + repeated double DryerZone1Temperature = 17; + + //Dryer Zone 2 (Min = 0, Max = 100, PPF = 1) + repeated double DryerZone2Temperature = 18; + + //Dryer Zone 3 (Min = 0, Max = 100, PPF = 1) + repeated double DryerZone3Temperature = 19; + + //Dryer Air Flow (Min = 0, Max = 100, PPF = 1) + repeated double DryerAirFlow = 20; + + //Winder Tension (Min = 0, Max = 100, PPF = 1) + repeated double WinderTension = 21; + + //Dispensers Motors (Min = 0, Max = 1080, PPF = 10) Channel Count = 8 + repeated DoubleArray DispensersMotorsFrequency = 22; + + //Dispensers Angular Encoders (Min = 0, Max = 100, PPF = 1) Channel Count = 8 + repeated DoubleArray DispensersAngularEncoders = 23; + + //Dispensers Linear Positions (Min = 0, Max = 100, PPF = 1) Channel Count = 8 + repeated DoubleArray DispensersLinearPositions = 24; + + //Dispensers Pressure (Min = 0, Max = 100, PPF = 1) Channel Count = 8 + repeated DoubleArray DispensersPressure = 25; + + //Mid Tank Pressure (Min = 0, Max = 100, PPF = 1) + repeated double MidTankPressure = 26; + + //Filter Delta Pressure (Min = 0, Max = 100, PPF = 1) + repeated double FilterDeltaPressure = 27; + + //Chiller Temperature (Min = 0, Max = 100, PPF = 1) + repeated double ChillerTemperature = 28; + + //Dispenser 1 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser1MotorFrequency = 29; + + //Dispenser 2 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser2MotorFrequency = 30; + + //Dispenser 3 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser3MotorFrequency = 31; + + //Dispenser 4 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser4MotorFrequency = 32; + + //Dispenser 5 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser5MotorFrequency = 33; + + //Dispenser 6 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser6MotorFrequency = 34; + + //Dispenser 7 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser7MotorFrequency = 35; + + //Dispenser 8 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + repeated double Dispenser8MotorFrequency = 36; + +} diff --git a/Software/PMR/Messages/Diagnostics/PushDiagnosticsResponse.proto b/Software/PMR/Messages/Diagnostics/PushDiagnosticsResponse.proto index c6af16fce..5a0940b78 100644 --- a/Software/PMR/Messages/Diagnostics/PushDiagnosticsResponse.proto +++ b/Software/PMR/Messages/Diagnostics/PushDiagnosticsResponse.proto @@ -1,35 +1,25 @@ syntax = "proto3"; -import "DoubleArray.proto"; import "DigitalPin.proto"; +import "ValueComponentState.proto"; +import "DiagnosticsMonitors.proto"; package Tango.PMR.Diagnostics; option java_package = "com.twine.tango.pmr.diagnostics"; message PushDiagnosticsResponse { - repeated double Dancer1Angle = 1; - repeated double Dancer2Angle = 2; - repeated double Dancer3Angle = 3; - - //Dispensers Motors Frequency Multi - repeated DoubleArray DispensersMotorsFrequency = 4; - - //Dispensers Motors Frequency Singles - repeated double Dispenser1MotorFrequency = 5; - repeated double Dispenser2MotorFrequency = 6; - repeated double Dispenser3MotorFrequency = 7; - repeated double Dispenser4MotorFrequency = 8; - repeated double Dispenser5MotorFrequency = 9; - repeated double Dispenser6MotorFrequency = 10; - repeated double Dispenser7MotorFrequency = 11; - repeated double Dispenser8MotorFrequency = 12; + //Monitors + DiagnosticsMonitors Monitors = 1; //Digital Pins States - repeated DigitalPin DigitalPins = 13; + repeated DigitalPin DigitalPins = 2; + + //Value Components Effective Values + repeated ValueComponentState ComponentsStates = 3; //Software Information - string Version = 14; - string VersionName = 15; - string VersionBuildDate = 16; + string Version = 4; + string VersionName = 5; + string VersionBuildDate = 6; } \ No newline at end of file diff --git a/Software/PMR/Messages/Diagnostics/SetComponentValueRequest.proto b/Software/PMR/Messages/Diagnostics/SetComponentValueRequest.proto new file mode 100644 index 000000000..c38ec90d6 --- /dev/null +++ b/Software/PMR/Messages/Diagnostics/SetComponentValueRequest.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +import "ValueComponent.proto"; + +package Tango.PMR.Diagnostics; +option java_package = "com.twine.tango.pmr.diagnostics"; + +message SetComponentValueRequest +{ + ValueComponent Component = 1; + double Value = 2; +} \ No newline at end of file diff --git a/Software/PMR/Messages/Diagnostics/SetComponentValueResponse.proto b/Software/PMR/Messages/Diagnostics/SetComponentValueResponse.proto new file mode 100644 index 000000000..e590d0778 --- /dev/null +++ b/Software/PMR/Messages/Diagnostics/SetComponentValueResponse.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +package Tango.PMR.Diagnostics; +option java_package = "com.twine.tango.pmr.diagnostics"; + +message SetComponentValueResponse +{ + +} \ No newline at end of file diff --git a/Software/PMR/Messages/Diagnostics/ValueComponent.proto b/Software/PMR/Messages/Diagnostics/ValueComponent.proto new file mode 100644 index 000000000..a6bc1a50a --- /dev/null +++ b/Software/PMR/Messages/Diagnostics/ValueComponent.proto @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ + +syntax = "proto3"; + +package Tango.PMR.Diagnostics; +option java_package = "com.twine.tango.pmr.diagnostics"; + +enum ValueComponent +{ + + //Heater 1 Temperature (Min = 0, Max = 100) + Heater1Temp = 0; + + //Heater 2 Temperature (Min = 0, Max = 100) + Heater2Temp = 1; + +} diff --git a/Software/PMR/Messages/Diagnostics/ValueComponentState.proto b/Software/PMR/Messages/Diagnostics/ValueComponentState.proto new file mode 100644 index 000000000..d22c7ba97 --- /dev/null +++ b/Software/PMR/Messages/Diagnostics/ValueComponentState.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +import "ValueComponent.proto"; + +package Tango.PMR.Diagnostics; +option java_package = "com.twine.tango.pmr.diagnostics"; + +message ValueComponentState +{ + ValueComponent Component = 1; + double Value = 2; +} \ No newline at end of file diff --git a/Software/PMR/Messages/Hardware/HardwareDancer.proto b/Software/PMR/Messages/Hardware/HardwareDancer.proto index 43b9435ee..5933b7cb4 100644 --- a/Software/PMR/Messages/Hardware/HardwareDancer.proto +++ b/Software/PMR/Messages/Hardware/HardwareDancer.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; import "HardwareDancerType.proto"; diff --git a/Software/PMR/Messages/Hardware/HardwareDancerType.proto b/Software/PMR/Messages/Hardware/HardwareDancerType.proto index f61b00ec3..b51f10c7a 100644 --- a/Software/PMR/Messages/Hardware/HardwareDancerType.proto +++ b/Software/PMR/Messages/Hardware/HardwareDancerType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Hardware; option java_package = "com.twine.tango.pmr.hardware"; @@ -8,10 +16,13 @@ option java_package = "com.twine.tango.pmr.hardware"; enum HardwareDancerType { + //Left Dancer LeftDancer = 0; + //Middle Dancer MiddleDancer = 1; + //Right Dancer RightDancer = 2; } diff --git a/Software/PMR/Messages/Hardware/HardwareDispenser.proto b/Software/PMR/Messages/Hardware/HardwareDispenser.proto index 7e8461193..ab5d766df 100644 --- a/Software/PMR/Messages/Hardware/HardwareDispenser.proto +++ b/Software/PMR/Messages/Hardware/HardwareDispenser.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; import "HardwareDispenserType.proto"; diff --git a/Software/PMR/Messages/Hardware/HardwareDispenserType.proto b/Software/PMR/Messages/Hardware/HardwareDispenserType.proto index fd723f896..21dc87530 100644 --- a/Software/PMR/Messages/Hardware/HardwareDispenserType.proto +++ b/Software/PMR/Messages/Hardware/HardwareDispenserType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Hardware; option java_package = "com.twine.tango.pmr.hardware"; diff --git a/Software/PMR/Messages/Hardware/HardwareMotor.proto b/Software/PMR/Messages/Hardware/HardwareMotor.proto index accc2a5ff..dbce226c7 100644 --- a/Software/PMR/Messages/Hardware/HardwareMotor.proto +++ b/Software/PMR/Messages/Hardware/HardwareMotor.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; import "HardwareMotorType.proto"; diff --git a/Software/PMR/Messages/Hardware/HardwareMotorType.proto b/Software/PMR/Messages/Hardware/HardwareMotorType.proto index 46c6911f9..d67bb5b0a 100644 --- a/Software/PMR/Messages/Hardware/HardwareMotorType.proto +++ b/Software/PMR/Messages/Hardware/HardwareMotorType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Hardware; option java_package = "com.twine.tango.pmr.hardware"; @@ -8,12 +16,16 @@ option java_package = "com.twine.tango.pmr.hardware"; enum HardwareMotorType { + //Winder Motor WinderMotor = 0; + //Feeder Motor FeederMotor = 1; + //Dryer Motor DryerMotor = 2; + //Pooler Motor PoolerMotor = 3; } diff --git a/Software/PMR/Messages/Hardware/HardwarePidControl.proto b/Software/PMR/Messages/Hardware/HardwarePidControl.proto index 49f1928cd..d02ea14d1 100644 --- a/Software/PMR/Messages/Hardware/HardwarePidControl.proto +++ b/Software/PMR/Messages/Hardware/HardwarePidControl.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; import "HardwarePidControlType.proto"; diff --git a/Software/PMR/Messages/Hardware/HardwarePidControlType.proto b/Software/PMR/Messages/Hardware/HardwarePidControlType.proto index e9fa9fd30..38785e85b 100644 --- a/Software/PMR/Messages/Hardware/HardwarePidControlType.proto +++ b/Software/PMR/Messages/Hardware/HardwarePidControlType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Hardware; option java_package = "com.twine.tango.pmr.hardware"; @@ -8,32 +16,46 @@ option java_package = "com.twine.tango.pmr.hardware"; enum HardwarePidControlType { + //Dryer Heater 1000w DryerHeater1000w = 0; + //Dryer Heater 200w 1 DryerHeater200w1 = 1; + //Dryer Heater 200w 2 DryerHeater200w2 = 2; + //Head Heater Zone 1 HeadHeaterZ1 = 3; + //Head Heater Zone 2 HeadHeaterZ2 = 4; + //Head Heater Zone 3 HeadHeaterZ3 = 5; + //Head Heater Zone 4 HeadHeaterZ4 = 6; + //Mixer Heater MixerHeater = 7; + //Waste Control WasteControl = 8; + //Dryer Motor MotorDryer = 9; + //Feeder Motor MotorFeeder = 10; + //Pooler Motor MotorPooler = 11; + //Winder Motor MotorWinder = 12; + //Dryer Heater 400 DryerHeater400 = 13; } diff --git a/Software/PMR/Messages/Hardware/HardwareWinder.proto b/Software/PMR/Messages/Hardware/HardwareWinder.proto index a9ba73af2..c00b56c83 100644 --- a/Software/PMR/Messages/Hardware/HardwareWinder.proto +++ b/Software/PMR/Messages/Hardware/HardwareWinder.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; import "HardwareWinderType.proto"; diff --git a/Software/PMR/Messages/Hardware/HardwareWinderType.proto b/Software/PMR/Messages/Hardware/HardwareWinderType.proto index 4064c96af..d3cc0a74e 100644 --- a/Software/PMR/Messages/Hardware/HardwareWinderType.proto +++ b/Software/PMR/Messages/Hardware/HardwareWinderType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Hardware; option java_package = "com.twine.tango.pmr.hardware"; @@ -8,6 +16,7 @@ option java_package = "com.twine.tango.pmr.hardware"; enum HardwareWinderType { + //Internal Winder InternalWinder = 0; } diff --git a/Software/PMR/Messages/Printing/DispenserLiquidType.proto b/Software/PMR/Messages/Printing/DispenserLiquidType.proto index 27757a92d..0288ee949 100644 --- a/Software/PMR/Messages/Printing/DispenserLiquidType.proto +++ b/Software/PMR/Messages/Printing/DispenserLiquidType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Printing; option java_package = "com.twine.tango.pmr.printing"; diff --git a/Software/PMR/Messages/Printing/JobSpool.proto b/Software/PMR/Messages/Printing/JobSpool.proto index a431ff9f8..ba2fb4112 100644 --- a/Software/PMR/Messages/Printing/JobSpool.proto +++ b/Software/PMR/Messages/Printing/JobSpool.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; import "JobSpoolType.proto"; diff --git a/Software/PMR/Messages/Printing/JobSpoolType.proto b/Software/PMR/Messages/Printing/JobSpoolType.proto index c9bc45ed8..afe6b3331 100644 --- a/Software/PMR/Messages/Printing/JobSpoolType.proto +++ b/Software/PMR/Messages/Printing/JobSpoolType.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Printing; option java_package = "com.twine.tango.pmr.printing"; diff --git a/Software/PMR/Messages/Printing/JobWindingMethod.proto b/Software/PMR/Messages/Printing/JobWindingMethod.proto index a567915b7..32c354458 100644 --- a/Software/PMR/Messages/Printing/JobWindingMethod.proto +++ b/Software/PMR/Messages/Printing/JobWindingMethod.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Printing; option java_package = "com.twine.tango.pmr.printing"; @@ -8,8 +16,10 @@ option java_package = "com.twine.tango.pmr.printing"; enum JobWindingMethod { + //Embroidery Winding Embroidery = 0; + //Calibration Winding Calibration = 1; } diff --git a/Software/PMR/Messages/Printing/ProcessParameters.proto b/Software/PMR/Messages/Printing/ProcessParameters.proto index 9f4209571..7fd398fa0 100644 --- a/Software/PMR/Messages/Printing/ProcessParameters.proto +++ b/Software/PMR/Messages/Printing/ProcessParameters.proto @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; package Tango.PMR.Printing; option java_package = "com.twine.tango.pmr.printing"; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml new file mode 100644 index 000000000..60b96bc9d --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml.cs new file mode 100644 index 000000000..4d183dac6 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.Editors; +using Tango.BL.Entities; +using Tango.MachineStudio.Technician.TechItems; + +namespace Tango.MachineStudio.Technician.Editors +{ + [ContentProperty("InnerContent")] + public partial class ControllerElementEditor : ElementEditor + { + public ControllerElementEditor() + : base() + { + InitializeComponent(); + } + + public ControllerElementEditor(ControllerItem controllerItem) + : this() + { + ControllerItem = controllerItem; + DataContext = ControllerItem; + } + + public ControllerElementEditor(ControllerItem controllerItem, Rect bounds) + : this(controllerItem) + { + Left = bounds.Left; + Top = bounds.Top; + Width = bounds.Width; + Height = bounds.Height; + } + + private ControllerItem _controllerItem; + + public ControllerItem ControllerItem + { + get { return _controllerItem; } + set { _controllerItem = value; RaisePropertyChanged(nameof(ControllerItem)); } + } + + + /// + /// Clones this instance. + /// + /// + public override IElementEditor Clone() + { + try + { + var clonedItem = ControllerItem.Clone() as ControllerItem; + ControllerElementEditor cloned = new ControllerElementEditor(clonedItem); + cloned.Top = Top; + cloned.Left = Left; + cloned.Width = Width; + cloned.Height = Height; + cloned.Angle = Angle; + return cloned; + } + catch (Exception ex) + { + throw new InvalidOperationException("Could not clone this editor. You may have to create a custom editor and implement a custom Clone method.", ex); + } + } + + /// + /// Gets the hosted element. + /// + [ParameterIgnore] + public override Object HostedElement + { + get { return ControllerItem; } + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/controller.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/controller.png new file mode 100644 index 000000000..5794f6cd8 Binary files /dev/null and b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Images/controller.png differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml new file mode 100644 index 000000000..57d807b09 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + Selected Input + + + Update Interval + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml.cs new file mode 100644 index 000000000..624eef296 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ControllerTemplate.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.MachineStudio.Technician.PropertiesTemplates +{ + /// + /// Interaction logic for MonitorTemplate.xaml + /// + public partial class ControllerTemplate : UserControl + { + public ControllerTemplate() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj index 56bab4135..ecc235d02 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj @@ -102,6 +102,9 @@ + + ControllerElementEditor.xaml + DigitalInElementEditor.xaml @@ -146,6 +149,9 @@ DispenserTemplate.xaml + + ControllerTemplate.xaml + MotorGroupTemplate.xaml @@ -164,6 +170,7 @@ SingleGraphTemplate.xaml + @@ -202,6 +209,10 @@ GlobalVersionInfo.cs + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -258,6 +269,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -342,6 +357,10 @@ {f441feee-322a-4943-b566-110e12fd3b72} Tango.BL + + {6efd5895-177b-4bbb-af52-29f4d53b3fbd} + Tango.CircularGauge + {a2f5af44-29ff-45d6-9d25-ecda5cce88b5} Tango.ColorPicker @@ -460,5 +479,8 @@ + + + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs new file mode 100644 index 000000000..67266ee66 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ControllerItem.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using System.Xml.Serialization; +using Tango.BL.Entities; +using Tango.SharedUI.Helpers; + +namespace Tango.MachineStudio.Technician.TechItems +{ + /// + /// Represents a single component value controller and monitor. + /// + /// + [TechItem(10)] + public class ControllerItem : TechItem + { + /// + /// Occurs when the controller value has changed. + /// + public event EventHandler ValueChanged; + + private TechController _techController; + /// + /// Gets or sets the DB controller item. + /// + [XmlIgnore] + public TechController TechController + { + get { return _techController; } + set { _techController = value; RaisePropertyChangedAuto(); TechName = _techController != null ? _techController.Description : null; ItemGuid = value != null ? value.Guid : null; } + } + + private double _value; + /// + /// Gets or sets the component value. + /// + [XmlIgnore] + public double Value + { + get { return _value; } + set + { + _value = value; RaisePropertyChangedAuto(); + ValueChanged?.Invoke(this, _value); + } + } + + private int _updateInterval; + /// + /// Gets or sets the update interval. + /// + public int UpdateInterval + { + get { return _updateInterval; } + set { _updateInterval = value; RaisePropertyChangedAuto(); } + } + + /// + /// Gets or sets the last update time. + /// + [XmlIgnore] + public DateTime LastUpdateTime { get; set; } + + + private double _effectiveValue; + /// + /// Gets or sets the effective value received from the embedded device. + /// + [XmlIgnore] + public double EffectiveValue + { + get { return _effectiveValue; } + set + { + LastUpdateTime = DateTime.Now; + + if (_effectiveValue != value) + { + _effectiveValue = value; + RaisePropertyChangedAuto(); + } + } + } + + /// + /// Initializes a new instance of the class. + /// + public ControllerItem() : base() + { + Name = "Value Controller"; + Description = "Single component value controller"; + Image = ResourceHelper.GetImageFromResources("Images/controller.png"); + Color = Colors.DodgerBlue; + LastUpdateTime = DateTime.Now; + UpdateInterval = 10; + } + + /// + /// Initializes a new instance of the class. + /// + /// The db tech controller. + public ControllerItem(TechController techController) : this() + { + TechController = techController; + } + + /// + /// Clones this instance. + /// + /// + public override TechItem Clone() + { + ControllerItem cloned = base.Clone() as ControllerItem; + cloned.TechController = TechController; + return cloned; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs index 44d5d2c5a..e18250594 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs @@ -29,6 +29,7 @@ namespace Tango.MachineStudio.Technician.TechItems [XmlInclude(typeof(ThreadMotionItem))] [XmlInclude(typeof(MotorGroupItem))] [XmlInclude(typeof(DigitalInItem))] + [XmlInclude(typeof(ControllerItem))] public abstract class TechItem : ExtendedObject { /// diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs index a5a95fc35..63aca3e70 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs @@ -39,7 +39,7 @@ namespace Tango.MachineStudio.Technician.ViewModels /// public class MachineTechViewVM : ViewModel, IShutdownListener { - private List _diagnoticsDataProperties; + private List _diagnoticsMonitorsDataProperties; private Dictionary _singleControllers; private Dictionary _multiControllers; private static object _elementsLock = new object(); @@ -178,7 +178,7 @@ namespace Tango.MachineStudio.Technician.ViewModels _multiControllers = new Dictionary(); AvailableTechItems = TechItem.GetAvailableTechItems().ToObservableCollection(); SelectedTechItem = AvailableTechItems.FirstOrDefault(); - _diagnoticsDataProperties = typeof(PushDiagnosticsResponse).GetProperties(BindingFlags.Public | BindingFlags.Instance).ToList(); + _diagnoticsMonitorsDataProperties = typeof(DiagnosticsMonitors).GetProperties(BindingFlags.Public | BindingFlags.Instance).ToList(); ApplicationManager = applicationManager; ApplicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; @@ -252,11 +252,11 @@ namespace Tango.MachineStudio.Technician.ViewModels if (DateTime.Now > monitorItem.LastUpdateTime.AddMilliseconds(monitorItem.UpdateInterval)) { - var prop = _diagnoticsDataProperties.SingleOrDefault(x => x.Name == monitorItem.TechMonitor.Name); + var prop = _diagnoticsMonitorsDataProperties.SingleOrDefault(x => x.Name == monitorItem.TechMonitor.Name); if (prop != null) { - monitorItem.Value = GetDataLastValue(monitorItem.TechMonitor, prop.GetValue(data)); + monitorItem.Value = GetDataLastValue(monitorItem.TechMonitor, prop.GetValue(data.Monitors)); } } } @@ -266,11 +266,11 @@ namespace Tango.MachineStudio.Technician.ViewModels if (DateTime.Now > meterItem.LastUpdateTime.AddMilliseconds(meterItem.UpdateInterval)) { - var prop = _diagnoticsDataProperties.SingleOrDefault(x => x.Name == meterItem.TechMonitor.Name); + var prop = _diagnoticsMonitorsDataProperties.SingleOrDefault(x => x.Name == meterItem.TechMonitor.Name); if (prop != null) { - meterItem.Value = GetDataLastValue(meterItem.TechMonitor, prop.GetValue(data)); + meterItem.Value = GetDataLastValue(meterItem.TechMonitor, prop.GetValue(data.Monitors)); } } } @@ -278,7 +278,7 @@ namespace Tango.MachineStudio.Technician.ViewModels { SingleGraphItem graphItem = item as SingleGraphItem; - var prop = _diagnoticsDataProperties.SingleOrDefault(x => x.Name == graphItem.TechMonitor.Name); + var prop = _diagnoticsMonitorsDataProperties.SingleOrDefault(x => x.Name == graphItem.TechMonitor.Name); if (prop != null) { @@ -286,7 +286,7 @@ namespace Tango.MachineStudio.Technician.ViewModels if (_singleControllers.TryGetValue(graphItem, out controller)) { - controller.PushData(GetDataArray(graphItem.TechMonitor, prop.GetValue(data))); + controller.PushData(GetDataArray(graphItem.TechMonitor, prop.GetValue(data.Monitors))); } } } @@ -294,7 +294,7 @@ namespace Tango.MachineStudio.Technician.ViewModels { MultiGraphItem graphItem = item as MultiGraphItem; - var prop = _diagnoticsDataProperties.SingleOrDefault(x => x.Name == graphItem.TechMonitor.Name); + var prop = _diagnoticsMonitorsDataProperties.SingleOrDefault(x => x.Name == graphItem.TechMonitor.Name); if (prop != null) { @@ -302,7 +302,7 @@ namespace Tango.MachineStudio.Technician.ViewModels if (_multiControllers.TryGetValue(graphItem, out controller)) { - controller.PushData(GetDataMatrix(graphItem.TechMonitor, prop.GetValue(data))); + controller.PushData(GetDataMatrix(graphItem.TechMonitor, prop.GetValue(data.Monitors))); } } } @@ -328,6 +328,20 @@ namespace Tango.MachineStudio.Technician.ViewModels digitalInItem.Value = digitalPin.Value; } } + else if (item.GetType() == typeof(ControllerItem)) + { + ControllerItem controllerItem = item as ControllerItem; + + if (DateTime.Now > controllerItem.LastUpdateTime.AddMilliseconds(controllerItem.UpdateInterval)) + { + var componentState = data.ComponentsStates.SingleOrDefault(x => (int)x.Component == controllerItem.TechController.Code); + + if (componentState != null) + { + controllerItem.EffectiveValue = componentState.Value; + } + } + } } } } @@ -466,6 +480,11 @@ namespace Tango.MachineStudio.Technician.ViewModels { CreateElement(bounds, Adapter.TechIos.Where(x => x.Type == IOType.DigitalInput.ToInt32()).FirstOrDefault()); } + else if (item is ControllerItem) + { + var editor = CreateElement(bounds, Adapter.TechControllers.FirstOrDefault()); + InitControllerItem(editor.ControllerItem); + } } /// @@ -559,6 +578,11 @@ namespace Tango.MachineStudio.Technician.ViewModels (item as DigitalInItem).TechIo = Adapter.TechIos.FirstOrDefault(x => x.Guid == item.ItemGuid); CreateElement(item); } + else if (item is ControllerItem) + { + (item as ControllerItem).TechController = Adapter.TechControllers.FirstOrDefault(x => x.Guid == item.ItemGuid); + CreateElement(item); + } } /// @@ -651,6 +675,11 @@ namespace Tango.MachineStudio.Technician.ViewModels var motorGroupItem = element.HostedElement as MotorGroupItem; InitMotorGroupItem(motorGroupItem); } + else if (element is ControllerItem) + { + var controllerItem = element.HostedElement as ControllerItem; + InitControllerItem(controllerItem); + } } } @@ -971,6 +1000,29 @@ namespace Tango.MachineStudio.Technician.ViewModels }; } + /// + /// Initializes the controller item. + /// + /// The controller item. + private void InitControllerItem(ControllerItem item) + { + item.ValueChanged += async (x, value) => + { + try + { + await MachineOperator.SetComponentValue(new SetComponentValueRequest() + { + Component = (ValueComponent)item.TechController.Code, + Value = value + }); + } + catch (Exception ex) + { + //TODO: Show Exception. + } + }; + } + #endregion #region Public Methods diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml index 5996c351b..3d4ecdac1 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml @@ -363,6 +363,9 @@ + + + diff --git a/Software/Visual_Studio/Tango.BL/Entities/TechController.cs b/Software/Visual_Studio/Tango.BL/Entities/TechController.cs new file mode 100644 index 000000000..5f6b14463 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Entities/TechController.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Xml.Serialization; +using Newtonsoft.Json; +using System.Linq; +using Tango.DAL.Remote.DB; + +namespace Tango.BL.Entities +{ + [Table("TECH_CONTROLLERS")] + public partial class TechController : ObservableEntity + { + + protected Int32 _code; + /// + /// Gets or sets the techcontroller code. + /// + [Column("CODE")] + + public Int32 Code + { + get + { + return _code; + } + + set + { + _code = value; RaisePropertyChanged(nameof(Code)); + } + + } + + protected String _name; + /// + /// Gets or sets the techcontroller name. + /// + [Column("NAME")] + + public String Name + { + get + { + return _name; + } + + set + { + _name = value; RaisePropertyChanged(nameof(Name)); + } + + } + + protected String _description; + /// + /// Gets or sets the techcontroller description. + /// + [Column("DESCRIPTION")] + + public String Description + { + get + { + return _description; + } + + set + { + _description = value; RaisePropertyChanged(nameof(Description)); + } + + } + + protected Double _min; + /// + /// Gets or sets the techcontroller min. + /// + [Column("MIN")] + + public Double Min + { + get + { + return _min; + } + + set + { + _min = value; RaisePropertyChanged(nameof(Min)); + } + + } + + protected Double _max; + /// + /// Gets or sets the techcontroller max. + /// + [Column("MAX")] + + public Double Max + { + get + { + return _max; + } + + set + { + _max = value; RaisePropertyChanged(nameof(Max)); + } + + } + + protected String _units; + /// + /// Gets or sets the techcontroller units. + /// + [Column("UNITS")] + + public String Units + { + get + { + return _units; + } + + set + { + _units = value; RaisePropertyChanged(nameof(Units)); + } + + } + + /// + /// Initializes a new instance of the class. + /// + public TechController() : base() + { + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs b/Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs deleted file mode 100644 index dff290eb1..000000000 --- a/Software/Visual_Studio/Tango.BL/Entities/TechHeater.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Xml.Serialization; -using Newtonsoft.Json; -using System.Linq; -using Tango.DAL.Remote.DB; - -namespace Tango.BL.Entities -{ - [Table("TECH_HEATERS")] - public partial class TechHeater : ObservableEntity - { - - protected Int32 _code; - /// - /// Gets or sets the techheater code. - /// - [Column("CODE")] - - public Int32 Code - { - get - { - return _code; - } - - set - { - _code = value; RaisePropertyChanged(nameof(Code)); - } - - } - - protected String _name; - /// - /// Gets or sets the techheater name. - /// - [Column("NAME")] - - public String Name - { - get - { - return _name; - } - - set - { - _name = value; RaisePropertyChanged(nameof(Name)); - } - - } - - protected String _description; - /// - /// Gets or sets the techheater description. - /// - [Column("DESCRIPTION")] - - public String Description - { - get - { - return _description; - } - - set - { - _description = value; RaisePropertyChanged(nameof(Description)); - } - - } - - /// - /// Initializes a new instance of the class. - /// - public TechHeater() : base() - { - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/Entities/User.cs b/Software/Visual_Studio/Tango.BL/Entities/User.cs index 4d1cc4c54..546ff4a1a 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/User.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/User.cs @@ -137,6 +137,26 @@ namespace Tango.BL.Entities } + protected Nullable _lastlogin; + /// + /// Gets or sets the user last login. + /// + [Column("LAST_LOGIN")] + + public Nullable LastLogin + { + get + { + return _lastlogin; + } + + set + { + _lastlogin = value; RaisePropertyChanged(nameof(LastLogin)); + } + + } + protected Address _address; /// /// Gets or sets the user address. diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/Sensors.cs b/Software/Visual_Studio/Tango.BL/Enumerations/Sensors.cs deleted file mode 100644 index 9d80595d2..000000000 --- a/Software/Visual_Studio/Tango.BL/Enumerations/Sensors.cs +++ /dev/null @@ -1,181 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.ComponentModel; - -namespace Tango.BL.Entities -{ - public enum Sensors - { - - /// - /// (Dancer 1) - /// - [Description("Dancer 1")] - Dancer1Angle = 0, - - /// - /// (Dancer 2) - /// - [Description("Dancer 2")] - Dancer2Angle = 1, - - /// - /// (Dancer 3) - /// - [Description("Dancer 3")] - Dancer3Angle = 2, - - /// - /// (Feeder Motor) - /// - [Description("Feeder Motor")] - FeederMotorFrequency = 3, - - /// - /// (Dryer Motor) - /// - [Description("Dryer Motor")] - DryerMotor = 4, - - /// - /// (Poller Motor) - /// - [Description("Poller Motor")] - PollerMotor = 5, - - /// - /// (Winder Motor) - /// - [Description("Winder Motor")] - WinderMotor = 6, - - /// - /// (Screw Motor) - /// - [Description("Screw Motor")] - ScrewMotor = 7, - - /// - /// (Thread Speed) - /// - [Description("Thread Speed")] - ThreadSpeed = 8, - - /// - /// (Mixer) - /// - [Description("Mixer")] - MixerTemperature = 9, - - /// - /// (Head Zone 1) - /// - [Description("Head Zone 1")] - HeadZone1Temperature = 10, - - /// - /// (Head Zone 2) - /// - [Description("Head Zone 2")] - HeadZone2Temperature = 11, - - /// - /// (Head Zone 3) - /// - [Description("Head Zone 3")] - HeadZone3Temperature = 12, - - /// - /// (Head Air Flow) - /// - [Description("Head Air Flow")] - HeadAirFlow = 13, - - /// - /// (Feeder Tension) - /// - [Description("Feeder Tension")] - FeederTension = 14, - - /// - /// (Puller Tension) - /// - [Description("Puller Tension")] - PullerTension = 15, - - /// - /// (Dryer Zone 1) - /// - [Description("Dryer Zone 1")] - DryerZone1Temperature = 16, - - /// - /// (Dryer Zone 2) - /// - [Description("Dryer Zone 2")] - DryerZone2Temperature = 17, - - /// - /// (Dryer Zone 3) - /// - [Description("Dryer Zone 3")] - DryerZone3Temperature = 18, - - /// - /// (Dryer Air Flow) - /// - [Description("Dryer Air Flow")] - DryerAirFlow = 19, - - /// - /// (Winder Tension) - /// - [Description("Winder Tension")] - WinderTension = 20, - - /// - /// (Dispensers Motors) - /// - [Description("Dispensers Motors")] - DispensersMotorsFrequency = 21, - - /// - /// (Dispensers Angular Encoders) - /// - [Description("Dispensers Angular Encoders")] - DispensersAngularEncoders = 22, - - /// - /// (Dispensers Linear Positions) - /// - [Description("Dispensers Linear Positions")] - DispensersLinearPositions = 23, - - /// - /// (Dispensers Pressure) - /// - [Description("Dispensers Pressure")] - DispensersPressure = 24, - - /// - /// (Mid Tank Pressure) - /// - [Description("Mid Tank Pressure")] - MidTankPressure = 25, - - /// - /// (Filter Delta Pressure) - /// - [Description("Filter Delta Pressure")] - FilterDeltaPressure = 26, - - /// - /// (Chiller Temperature) - /// - [Description("Chiller Temperature")] - ChillerTemperature = 27, - - } -} diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/TechControllers.cs b/Software/Visual_Studio/Tango.BL/Enumerations/TechControllers.cs new file mode 100644 index 000000000..570f647c0 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Enumerations/TechControllers.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.ComponentModel; + +namespace Tango.BL.Enumerations +{ + public enum TechControllers + { + + /// + /// (Heater 1 Temperature) + /// + [Description("Heater 1 Temperature")] + Heater1Temp = 0, + + /// + /// (Heater 2 Temperature) + /// + [Description("Heater 2 Temperature")] + Heater2Temp = 1, + + } +} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs index aa64cebcb..20eabd0ae 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs @@ -469,17 +469,17 @@ namespace Tango.BL } /// - /// Gets or sets the TechDispensers. + /// Gets or sets the TechControllers. /// - public DbSet TechDispensers + public DbSet TechControllers { get; set; } /// - /// Gets or sets the TechHeaters. + /// Gets or sets the TechDispensers. /// - public DbSet TechHeaters + public DbSet TechDispensers { get; set; } diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs index 297de3b88..59f5d31fa 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs @@ -274,7 +274,7 @@ namespace Tango.BL TechIos = Context.TechIos.ToObservableCollection(); - TechHeaters = Context.TechHeaters.ToObservableCollection(); + TechControllers = Context.TechControllers.ToObservableCollection(); IdsPackFormulas = Context.IdsPackFormulas.ToObservableCollection(); diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs index 0964f29f7..97265b8a8 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs @@ -2059,74 +2059,74 @@ namespace Tango.BL } - private ObservableCollection _techdispensers; + private ObservableCollection _techcontrollers; /// - /// Gets or sets the TechDispensers. + /// Gets or sets the TechControllers. /// - public ObservableCollection TechDispensers + public ObservableCollection TechControllers { get { - return _techdispensers; + return _techcontrollers; } set { - _techdispensers = value; RaisePropertyChanged(nameof(TechDispensers)); + _techcontrollers = value; RaisePropertyChanged(nameof(TechControllers)); } } - private ICollectionView _techdispensersViewSource; + private ICollectionView _techcontrollersViewSource; /// - /// Gets or sets the TechDispensers View Source. + /// Gets or sets the TechControllers View Source. /// - public ICollectionView TechDispensersViewSource + public ICollectionView TechControllersViewSource { get { - return _techdispensersViewSource; + return _techcontrollersViewSource; } set { - _techdispensersViewSource = value; RaisePropertyChanged(nameof(TechDispensersViewSource)); + _techcontrollersViewSource = value; RaisePropertyChanged(nameof(TechControllersViewSource)); } } - private ObservableCollection _techheaters; + private ObservableCollection _techdispensers; /// - /// Gets or sets the TechHeaters. + /// Gets or sets the TechDispensers. /// - public ObservableCollection TechHeaters + public ObservableCollection TechDispensers { get { - return _techheaters; + return _techdispensers; } set { - _techheaters = value; RaisePropertyChanged(nameof(TechHeaters)); + _techdispensers = value; RaisePropertyChanged(nameof(TechDispensers)); } } - private ICollectionView _techheatersViewSource; + private ICollectionView _techdispensersViewSource; /// - /// Gets or sets the TechHeaters View Source. + /// Gets or sets the TechDispensers View Source. /// - public ICollectionView TechHeatersViewSource + public ICollectionView TechDispensersViewSource { get { - return _techheatersViewSource; + return _techdispensersViewSource; } set { - _techheatersViewSource = value; RaisePropertyChanged(nameof(TechHeatersViewSource)); + _techdispensersViewSource = value; RaisePropertyChanged(nameof(TechDispensersViewSource)); } } @@ -2503,9 +2503,9 @@ namespace Tango.BL SyncConfigurationsViewSource = CreateCollectionView(SyncConfigurations); - TechDispensersViewSource = CreateCollectionView(TechDispensers); + TechControllersViewSource = CreateCollectionView(TechControllers); - TechHeatersViewSource = CreateCollectionView(TechHeaters); + TechDispensersViewSource = CreateCollectionView(TechDispensers); TechIosViewSource = CreateCollectionView(TechIos); diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index a3f952644..714d74b77 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -89,6 +89,7 @@ + @@ -149,7 +150,6 @@ - @@ -174,7 +174,6 @@ - diff --git a/Software/Visual_Studio/Tango.CircularGauge/CircularGaugeControl.cs b/Software/Visual_Studio/Tango.CircularGauge/CircularGaugeControl.cs new file mode 100644 index 000000000..1d1d598c6 --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/CircularGaugeControl.cs @@ -0,0 +1,1419 @@ +/*Copyright (c) 2009 T.Evelyn (evescode@gmail.com) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + +DAMAGE.*/ + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Media.Animation; + +namespace Tango.CircularGauge +{ + /// + /// Represents a Circular Gauge control + /// + [TemplatePart(Name = "LayoutRoot", Type = typeof(Grid))] + [TemplatePart(Name = "Pointer", Type = typeof(Path))] + [TemplatePart(Name = "RangeIndicatorLight", Type = typeof(Ellipse))] + [TemplatePart(Name = "PointerCap", Type = typeof(Ellipse))] + public class CircularGaugeControl : Control + { + #region Private variables + + //Private variables + private Grid rootGrid; + private Path rangeIndicator; + private Path pointer; + private Ellipse pointerCap; + private Ellipse lightIndicator; + private bool isInitialValueSet = false; + private Double arcradius1; + private Double arcradius2; + private int animatingSpeedFactor = 6; + + #endregion + + #region Dependency properties + + /// + /// Dependency property to Get/Set the current value + /// + public static readonly DependencyProperty CurrentValueProperty = + DependencyProperty.Register("CurrentValue", typeof(double), typeof(CircularGaugeControl), + new PropertyMetadata(Double.MinValue, new PropertyChangedCallback(CircularGaugeControl.OnCurrentValuePropertyChanged))); + + /// + /// Dependency property to Get/Set the Minimum Value + /// + public static readonly DependencyProperty MinValueProperty = + DependencyProperty.Register("MinValue", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Maximum Value + /// + public static readonly DependencyProperty MaxValueProperty = + DependencyProperty.Register("MaxValue", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Radius of the gauge + /// + public static readonly DependencyProperty RadiusProperty = + DependencyProperty.Register("Radius", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Pointer cap Radius + /// + public static readonly DependencyProperty PointerCapRadiusProperty = + DependencyProperty.Register("PointerCapRadius", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the pointer length + /// + public static readonly DependencyProperty PointerLengthProperty = + DependencyProperty.Register("PointerLength", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the scale Radius + /// + public static readonly DependencyProperty ScaleRadiusProperty = + DependencyProperty.Register("ScaleRadius", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the starting angle of scale + /// + public static readonly DependencyProperty ScaleStartAngleProperty = + DependencyProperty.Register("ScaleStartAngle", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the sweep angle of scale + /// + public static readonly DependencyProperty ScaleSweepAngleProperty = + DependencyProperty.Register("ScaleSweepAngle", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the number of major divisions on the scale + /// + public static readonly DependencyProperty MajorDivisionsCountProperty = + DependencyProperty.Register("MajorDivisionsCount", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the number of minor divisions on the scale + /// + public static readonly DependencyProperty MinorDivisionsCountProperty = + DependencyProperty.Register("MinorDivisionsCount", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set Optimal Range End Value + /// + public static readonly DependencyProperty OptimalRangeEndValueProperty = + DependencyProperty.Register("OptimalRangeEndValue", typeof(double), typeof(CircularGaugeControl), new PropertyMetadata(new PropertyChangedCallback(CircularGaugeControl.OnOptimalRangeEndValuePropertyChanged))); + + /// + /// Dependency property to Get/Set Optimal Range Start Value + /// + public static readonly DependencyProperty OptimalRangeStartValueProperty = + DependencyProperty.Register("OptimalRangeStartValue", typeof(double), typeof(CircularGaugeControl), new PropertyMetadata(new PropertyChangedCallback(CircularGaugeControl.OnOptimalRangeStartValuePropertyChanged))); + + /// + /// Dependency property to Get/Set the image source + /// + public static readonly DependencyProperty ImageSourceProperty = + DependencyProperty.Register("ImageSource", typeof(ImageSource), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the image offset + /// + public static readonly DependencyProperty ImageOffsetProperty = + DependencyProperty.Register("ImageOffset", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the range indicator light offset + /// + public static readonly DependencyProperty RangeIndicatorLightOffsetProperty = + DependencyProperty.Register("RangeIndicatorLightOffset", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the image Size + /// + public static readonly DependencyProperty ImageSizeProperty = + DependencyProperty.Register("ImageSize", typeof(Size), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Range Indicator Radius + /// + public static readonly DependencyProperty RangeIndicatorRadiusProperty = + DependencyProperty.Register("RangeIndicatorRadius", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Range Indicator Thickness + /// + public static readonly DependencyProperty RangeIndicatorThicknessProperty = + DependencyProperty.Register("RangeIndicatorThickness", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the scale label Radius + /// + public static readonly DependencyProperty ScaleLabelRadiusProperty = + DependencyProperty.Register("ScaleLabelRadius", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Scale Label Size + /// + public static readonly DependencyProperty ScaleLabelSizeProperty = + DependencyProperty.Register("ScaleLabelSize", typeof(Size), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Scale Label FontSize + /// + public static readonly DependencyProperty ScaleLabelFontSizeProperty = + DependencyProperty.Register("ScaleLabelFontSize", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Scale Label Foreground + /// + + public static readonly DependencyProperty ScaleLabelForegroundProperty = + DependencyProperty.Register("ScaleLabelForeground", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Major Tick Size + /// + public static readonly DependencyProperty MajorTickSizeProperty = + DependencyProperty.Register("MajorTickRectSize", typeof(Size), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Minor Tick Size + /// + public static readonly DependencyProperty MinorTickSizeProperty = + DependencyProperty.Register("MinorTickSize", typeof(Size), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Major Tick Color + /// + public static readonly DependencyProperty MajorTickColorProperty = + DependencyProperty.Register("MajorTickColor", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Minor Tick Color + /// + public static readonly DependencyProperty MinorTickColorProperty = + DependencyProperty.Register("MinorTickColor", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Gauge Background Color + /// + public static readonly DependencyProperty GaugeBackgroundColorProperty = + DependencyProperty.Register("GaugeBackgroundColor", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Pointer Thickness + /// + public static readonly DependencyProperty PointerThicknessProperty = + DependencyProperty.Register("PointerThickness", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the an option to reset the pointer on start up to the minimum value + /// + public static readonly DependencyProperty ResetPointerOnStartUpProperty = + DependencyProperty.Register("ResetPointerOnStartUp", typeof(bool), typeof(CircularGaugeControl), new PropertyMetadata(false, null)); + + /// + /// Dependency property to Get/Set the Scale Value Precision + /// + public static readonly DependencyProperty ScaleValuePrecisionProperty = + DependencyProperty.Register("ScaleValuePrecision", typeof(int), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Below Optimal Range Color + /// + + public static readonly DependencyProperty BelowOptimalRangeColorProperty = + DependencyProperty.Register("BelowOptimalRangeColor", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Optimal Range Color + /// + + public static readonly DependencyProperty OptimalRangeColorProperty = + DependencyProperty.Register("OptimalRangeColor", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Above Optimal Range Color + /// + + public static readonly DependencyProperty AboveOptimalRangeColorProperty = + DependencyProperty.Register("AboveOptimalRangeColor", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Dial Text + /// + + public static readonly DependencyProperty DialTextProperty = + DependencyProperty.Register("DialText", typeof(string), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Dial Text Color + /// + + public static readonly DependencyProperty DialTextColorProperty = + DependencyProperty.Register("DialTextColor", typeof(Color), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Dial Text Font Size + /// + + public static readonly DependencyProperty DialTextFontSizeProperty = + DependencyProperty.Register("DialTextFontSize", typeof(int), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Dial Text Offset + /// + + public static readonly DependencyProperty DialTextOffsetProperty = + DependencyProperty.Register("DialTextOffset", typeof(double), typeof(CircularGaugeControl), null); + + /// + /// Dependency property to Get/Set the Range Indicator light Radius + /// + + public static readonly DependencyProperty RangeIndicatorLightRadiusProperty = + DependencyProperty.Register("RangeIndicatorLightRadius", typeof(double), typeof(CircularGaugeControl), null); + + + #endregion + + #region Wrapper properties + + /// + /// Gets/Sets the current value + /// + public double CurrentValue + { + get + { + return (double)GetValue(CurrentValueProperty); + } + set + { + SetValue(CurrentValueProperty, value); + } + } + + /// + /// Gets/Sets the Minimum Value + /// + public double MinValue + { + get + { + return (double)GetValue(MinValueProperty); + } + set + { + SetValue(MinValueProperty, value); + } + } + + /// + /// Gets/Sets the Maximum Value + /// + public double MaxValue + { + get + { + return (double)GetValue(MaxValueProperty); + } + set + { + SetValue(MaxValueProperty, value); + } + } + + /// + /// Gets/Sets the Minimum Value + /// + public double Radius + { + get + { + return (double)GetValue(RadiusProperty); + } + set + { + SetValue(RadiusProperty, value); + } + } + + /// + /// Gets/Sets the Pointer cap radius + /// + public double PointerCapRadius + { + get + { + return (double)GetValue(PointerCapRadiusProperty); + } + set + { + SetValue(PointerCapRadiusProperty, value); + } + } + + /// + /// Gets/Sets the Pointer Length + /// + public double PointerLength + { + get + { + return (double)GetValue(PointerLengthProperty); + } + set + { + SetValue(PointerLengthProperty, value); + } + } + + /// + /// Gets/Sets the Pointer Thickness + /// + public double PointerThickness + { + get + { + return (double)GetValue(PointerThicknessProperty); + } + set + { + SetValue(PointerThicknessProperty, value); + } + } + + /// + /// Gets/Sets the Scale radius + /// + public double ScaleRadius + { + get + { + return (double)GetValue(ScaleRadiusProperty); + } + set + { + SetValue(ScaleRadiusProperty, value); + } + } + + /// + /// Gets/Sets the scale start angle + /// + public double ScaleStartAngle + { + get + { + return (double)GetValue(ScaleStartAngleProperty); + } + set + { + SetValue(ScaleStartAngleProperty, value); + } + } + + /// + /// Gets/Sets the scale sweep angle + /// + public double ScaleSweepAngle + { + get + { + return (double)GetValue(ScaleSweepAngleProperty); + } + set + { + SetValue(ScaleSweepAngleProperty, value); + } + } + + /// + /// Gets/Sets the number of major divisions on the scale + /// + public double MajorDivisionsCount + { + get + { + return (double)GetValue(MajorDivisionsCountProperty); + } + set + { + SetValue(MajorDivisionsCountProperty, value); + } + } + + /// + /// Gets/Sets the number of minor divisions on the scale + /// + public double MinorDivisionsCount + { + get + { + return (double)GetValue(MinorDivisionsCountProperty); + } + set + { + SetValue(MinorDivisionsCountProperty, value); + } + } + + /// + /// Gets/Sets the Optimal range end value + /// + public double OptimalRangeEndValue + { + get + { + return (double)GetValue(OptimalRangeEndValueProperty); + } + set + { + SetValue(OptimalRangeEndValueProperty, value); + } + } + /// + /// Gets/Sets the Optimal Range Start Value + /// + public double OptimalRangeStartValue + { + get + { + return (double)GetValue(OptimalRangeStartValueProperty); + } + set + { + SetValue(OptimalRangeStartValueProperty, value); + } + } + + /// + /// Gets/Sets the Gauge image source + /// + public ImageSource ImageSource + { + get + { + return (ImageSource)GetValue(ImageSourceProperty); + } + set + { + SetValue(ImageSourceProperty, value); + } + } + + + /// + /// Gets/Sets the Image offset + /// + public double ImageOffset + { + get + { + return (double)GetValue(ImageOffsetProperty); + } + set + { + SetValue(ImageOffsetProperty, value); + } + } + + /// + /// Gets/Sets the Range Indicator Light offset + /// + public double RangeIndicatorLightOffset + { + get + { + return (double)GetValue(RangeIndicatorLightOffsetProperty); + } + set + { + SetValue(RangeIndicatorLightOffsetProperty, value); + } + } + + + /// + /// Gets/Sets the Image width and height + /// + public Size ImageSize + { + get + { + return (Size)GetValue(ImageSizeProperty); + } + set + { + SetValue(ImageSizeProperty, value); + } + } + /// + /// Gets/Sets the Range Indicator Radius + /// + public double RangeIndicatorRadius + { + get + { + return (double)GetValue(RangeIndicatorRadiusProperty); + } + set + { + SetValue(RangeIndicatorRadiusProperty, value); + } + } + + /// + /// Gets/Sets the Range Indicator Thickness + /// + public double RangeIndicatorThickness + { + get + { + return (double)GetValue(RangeIndicatorThicknessProperty); + } + set + { + SetValue(RangeIndicatorThicknessProperty, value); + } + } + /// + /// Gets/Sets the Scale Label Radius + /// + public double ScaleLabelRadius + { + get + { + return (double)GetValue(ScaleLabelRadiusProperty); + } + set + { + SetValue(ScaleLabelRadiusProperty, value); + } + } + /// + /// Gets/Sets the Scale Label Size + /// + public Size ScaleLabelSize + { + get + { + return (Size)GetValue(ScaleLabelSizeProperty); + } + set + { + SetValue(ScaleLabelSizeProperty, value); + } + } + /// + /// Gets/Sets the Scale Label Font Size + /// + public double ScaleLabelFontSize + { + get + { + return (double)GetValue(ScaleLabelFontSizeProperty); + } + set + { + SetValue(ScaleLabelFontSizeProperty, value); + } + } + /// + /// Gets/Sets the Scale Label Foreground + /// + public Color ScaleLabelForeground + { + get + { + return (Color)GetValue(ScaleLabelForegroundProperty); + } + set + { + SetValue(ScaleLabelForegroundProperty, value); + } + } + /// + /// Gets/Sets the Major Tick Size + /// + public Size MajorTickSize + { + get + { + return (Size)GetValue(MajorTickSizeProperty); + } + set + { + SetValue(MajorTickSizeProperty, value); + } + } + + /// + /// Gets/Sets the Minor Tick Size + /// + public Size MinorTickSize + { + get + { + return (Size)GetValue(MinorTickSizeProperty); + } + set + { + SetValue(MinorTickSizeProperty, value); + } + } + /// + /// Gets/Sets the Major Tick Color + /// + public Color MajorTickColor + { + get + { + return (Color)GetValue(MajorTickColorProperty); + } + set + { + SetValue(MajorTickColorProperty, value); + } + } + /// + /// Gets/Sets the Minor Tick Color + /// + public Color MinorTickColor + { + get + { + return (Color)GetValue(MinorTickColorProperty); + } + set + { + SetValue(MinorTickColorProperty, value); + } + } + + /// + /// Gets/Sets the Gauge Background color + /// + public Color GaugeBackgroundColor + { + get + { + return (Color)GetValue(GaugeBackgroundColorProperty); + } + set + { + SetValue(GaugeBackgroundColorProperty, value); + } + } + + + /// + /// Gets/Sets option to reset the pointer to minimum on start up, Default is true + /// + public bool ResetPointerOnStartUp + { + get + { + return (bool)GetValue(ResetPointerOnStartUpProperty); + } + set + { + SetValue(ResetPointerOnStartUpProperty, value); + } + } + + /// + /// Gets/Sets scale value precision + /// + public int ScaleValuePrecision + { + get + { + return (int)GetValue(ScaleValuePrecisionProperty); + } + set + { + SetValue(ScaleValuePrecisionProperty, value); + } + } + /// + /// Gets/Sets Below Optimal Range Color + /// + public Color BelowOptimalRangeColor + { + get + { + return (Color)GetValue(BelowOptimalRangeColorProperty); + } + set + { + SetValue(BelowOptimalRangeColorProperty, value); + } + } + + /// + /// Gets/Sets Optimal Range Color + /// + public Color OptimalRangeColor + { + get + { + return (Color)GetValue(OptimalRangeColorProperty); + } + set + { + SetValue(OptimalRangeColorProperty, value); + } + } + + /// + /// Gets/Sets Above Optimal Range Color + /// + public Color AboveOptimalRangeColor + { + get + { + return (Color)GetValue(AboveOptimalRangeColorProperty); + } + set + { + SetValue(AboveOptimalRangeColorProperty, value); + } + } + /// + /// Gets/Sets Dial Text + /// + public string DialText + { + get + { + return (string)GetValue(DialTextProperty); + } + set + { + SetValue(DialTextProperty, value); + } + } + /// + /// Gets/Sets Dial Text Color + /// + public Color DialTextColor + { + get + { + return (Color)GetValue(DialTextColorProperty); + } + set + { + SetValue(DialTextColorProperty, value); + } + } + /// + /// Gets/Sets Dial Text Font Size + /// + public int DialTextFontSize + { + get + { + return (int)GetValue(DialTextFontSizeProperty); + } + set + { + SetValue(DialTextFontSizeProperty, value); + } + } + /// + /// Gets/Sets Dial Text Offset + /// + public double DialTextOffset + { + get + { + return (double)GetValue(DialTextOffsetProperty); + } + set + { + SetValue(DialTextOffsetProperty, value); + } + } + + /// + /// Gets/Sets Range Indicator Light Radius + /// + public double RangeIndicatorLightRadius + { + get + { + return (double)GetValue(RangeIndicatorLightRadiusProperty); + } + set + { + SetValue(RangeIndicatorLightRadiusProperty, value); + } + } + + #endregion + + #region Constructor + static CircularGaugeControl() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(CircularGaugeControl), new FrameworkPropertyMetadata(typeof(CircularGaugeControl))); + } + #endregion + + #region Methods + private static void OnCurrentValuePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + //Get access to the instance of CircularGaugeConrol whose property value changed + CircularGaugeControl gauge = d as CircularGaugeControl; + gauge.OnCurrentValueChanged(e); + + } + + private static void OnOptimalRangeEndValuePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + //Get access to the instance of CircularGaugeConrol whose property value changed + CircularGaugeControl gauge = d as CircularGaugeControl; + if ((double)e.NewValue > gauge.MaxValue) + { + gauge.OptimalRangeEndValue = gauge.MaxValue; + } + + } + private static void OnOptimalRangeStartValuePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + //Get access to the instance of CircularGaugeConrol whose property value changed + CircularGaugeControl gauge = d as CircularGaugeControl; + if ((double)e.NewValue < gauge.MinValue) + { + gauge.OptimalRangeStartValue = gauge.MinValue; + } + + + } + + public virtual void OnCurrentValueChanged(DependencyPropertyChangedEventArgs e) + { + //Validate and set the new value + double newValue = (double)e.NewValue; + double oldValue = (double)e.OldValue; + + if (newValue > this.MaxValue) + { + newValue = this.MaxValue; + } + else if (newValue < this.MinValue) + { + newValue = this.MinValue; + } + + if (oldValue > this.MaxValue) + { + oldValue = this.MaxValue; + } + else if (oldValue < this.MinValue) + { + oldValue = this.MinValue; + } + + if (pointer != null) + { + double db1 = 0; + Double oldcurr_realworldunit = 0; + Double newcurr_realworldunit = 0; + Double realworldunit = (ScaleSweepAngle / (MaxValue - MinValue)); + //Resetting the old value to min value the very first time. + if (oldValue == 0 && !isInitialValueSet) + { + oldValue = MinValue; + isInitialValueSet = true; + + } + if (oldValue < 0) + { + db1 = MinValue + Math.Abs(oldValue); + oldcurr_realworldunit = ((double)(Math.Abs(db1 * realworldunit))); + } + else + { + db1 = Math.Abs(MinValue) + oldValue; + oldcurr_realworldunit = ((double)(db1 * realworldunit)); + } + if (newValue < 0) + { + db1 = MinValue + Math.Abs(newValue); + newcurr_realworldunit = ((double)(Math.Abs(db1 * realworldunit))); + } + else + { + db1 = Math.Abs(MinValue) + newValue; + newcurr_realworldunit = ((double)(db1 * realworldunit)); + } + + Double oldcurrentvalueAngle = (ScaleStartAngle + oldcurr_realworldunit); + Double newcurrentvalueAngle = (ScaleStartAngle + newcurr_realworldunit); + + //Animate the pointer from the old value to the new value + AnimatePointer(oldcurrentvalueAngle, newcurrentvalueAngle); + + } + + } + + /// + /// Animates the pointer to the current value to the new one + /// + /// + /// + void AnimatePointer(double oldcurrentvalueAngle, double newcurrentvalueAngle) + { + if (pointer != null) + { + DoubleAnimation da = new DoubleAnimation(); + da.From = oldcurrentvalueAngle; + da.To = newcurrentvalueAngle; + + double animDuration = Math.Abs(oldcurrentvalueAngle - newcurrentvalueAngle) * animatingSpeedFactor; + da.Duration = new Duration(TimeSpan.FromMilliseconds(animDuration)); + + Storyboard sb = new Storyboard(); + sb.Completed += new EventHandler(sb_Completed); + sb.Children.Add(da); + Storyboard.SetTarget(da, pointer); + Storyboard.SetTargetProperty(da, new PropertyPath("(Path.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)")); + + if (newcurrentvalueAngle != oldcurrentvalueAngle) + { + sb.Begin(); + } + } + } + + /// + /// Move pointer without animating + /// + /// + void MovePointer(double angleValue) + { + if (pointer != null) + { + TransformGroup tg = pointer.RenderTransform as TransformGroup; + RotateTransform rt = tg.Children[0] as RotateTransform; + rt.Angle = angleValue; + + } + } + + /// + /// Switch on the Range indicator light after the pointer completes animating + /// + /// + /// + void sb_Completed(object sender, EventArgs e) + { + if (this.CurrentValue > OptimalRangeEndValue) + { + lightIndicator.Fill = GetRangeIndicatorGradEffect(AboveOptimalRangeColor); + + } + else if (this.CurrentValue <= OptimalRangeEndValue && this.CurrentValue >= OptimalRangeStartValue) + { + lightIndicator.Fill = GetRangeIndicatorGradEffect(OptimalRangeColor); + + } + else if (this.CurrentValue < OptimalRangeStartValue) + { + lightIndicator.Fill = GetRangeIndicatorGradEffect(BelowOptimalRangeColor); + } + + } + + /// + /// Get gradient brush effect for the range indicator light + /// + /// + /// + private GradientBrush GetRangeIndicatorGradEffect(Color gradientColor) + { + + LinearGradientBrush gradient = new LinearGradientBrush(); + gradient.StartPoint = new Point(0, 0); + gradient.EndPoint = new Point(1, 1); + GradientStop color1 = new GradientStop(); + if (gradientColor == Colors.Transparent) + { + color1.Color = gradientColor; + } + else + color1.Color = Colors.LightGray; + + color1.Offset = 0.2; + gradient.GradientStops.Add(color1); + GradientStop color2 = new GradientStop(); + color2.Color = gradientColor; color2.Offset = 0.5; + gradient.GradientStops.Add(color2); + GradientStop color3 = new GradientStop(); + color3.Color = gradientColor; color3.Offset = 0.8; + gradient.GradientStops.Add(color3); + return gradient; + } + + + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + //Get reference to known elements on the control template + rootGrid = GetTemplateChild("LayoutRoot") as Grid; + pointer = GetTemplateChild("Pointer") as Path; + pointerCap = GetTemplateChild("PointerCap") as Ellipse; + lightIndicator = GetTemplateChild("RangeIndicatorLight") as Ellipse; + + //Draw scale and range indicator + DrawScale(); + DrawRangeIndicator(); + + //Set Zindex of pointer and pointer cap to a really high number so that it stays on top of the + //scale and the range indicator + Canvas.SetZIndex(pointer, 100000); + Canvas.SetZIndex(pointerCap, 100001); + + if (ResetPointerOnStartUp) + { + //Reset Pointer + MovePointer(ScaleStartAngle); + } + + + + } + + + //Drawing the scale with the Scale Radius + private void DrawScale() + { + //Calculate one major tick angle + Double majorTickUnitAngle = ScaleSweepAngle / MajorDivisionsCount; + + //Obtaining One minor tick angle + Double minorTickUnitAngle = ScaleSweepAngle / MinorDivisionsCount; + + //Obtaining One major ticks value + Double majorTicksUnitValue = (MaxValue - MinValue) / MajorDivisionsCount; + majorTicksUnitValue = Math.Round(majorTicksUnitValue, ScaleValuePrecision); + + Double minvalue = MinValue; ; + + // Drawing Major scale ticks + for (Double i = ScaleStartAngle; i <= (ScaleStartAngle + ScaleSweepAngle); i = i + majorTickUnitAngle) + { + + //Majortick is drawn as a rectangle + Rectangle majortickrect = new Rectangle(); + majortickrect.Height = MajorTickSize.Height; + majortickrect.Width = MajorTickSize.Width; + majortickrect.Fill = new SolidColorBrush(MajorTickColor); + Point p = new Point(0.5, 0.5); + majortickrect.RenderTransformOrigin = p; + majortickrect.HorizontalAlignment = HorizontalAlignment.Center; + majortickrect.VerticalAlignment = VerticalAlignment.Center; + + TransformGroup majortickgp = new TransformGroup(); + RotateTransform majortickrt = new RotateTransform(); + + //Obtaining the angle in radians for calulating the points + Double i_radian = (i * Math.PI) / 180; + majortickrt.Angle = i; + majortickgp.Children.Add(majortickrt); + TranslateTransform majorticktt = new TranslateTransform(); + + //Finding the point on the Scale where the major ticks are drawn + //here drawing the points with center as (0,0) + majorticktt.X = (int)((ScaleRadius) * Math.Cos(i_radian)); + majorticktt.Y = (int)((ScaleRadius) * Math.Sin(i_radian)); + + //Points for the textblock which hold the scale value + TranslateTransform majorscalevaluett = new TranslateTransform(); + //here drawing the points with center as (0,0) + majorscalevaluett.X = (int)((ScaleLabelRadius) * Math.Cos(i_radian)); + majorscalevaluett.Y = (int)((ScaleLabelRadius) * Math.Sin(i_radian)); + + //Defining the properties of the scale value textbox + TextBlock tb = new TextBlock(); + + tb.Height = ScaleLabelSize.Height; + tb.Width = ScaleLabelSize.Width; + tb.FontSize = ScaleLabelFontSize; + tb.Foreground = new SolidColorBrush(ScaleLabelForeground); + tb.TextAlignment = TextAlignment.Center; + tb.VerticalAlignment = VerticalAlignment.Center; + tb.HorizontalAlignment = HorizontalAlignment.Center; + + //Writing and appending the scale value + + //checking minvalue < maxvalue w.r.t scale precion value + if (Math.Round(minvalue, ScaleValuePrecision) <= Math.Round(MaxValue, ScaleValuePrecision)) + { + minvalue = Math.Round(minvalue, ScaleValuePrecision); + tb.Text = minvalue.ToString(); + minvalue = minvalue + majorTicksUnitValue; + + } + else + { + break; + } + majortickgp.Children.Add(majorticktt); + majortickrect.RenderTransform = majortickgp; + tb.RenderTransform = majorscalevaluett; + rootGrid.Children.Add(majortickrect); + rootGrid.Children.Add(tb); + + + //Drawing the minor axis ticks + Double onedegree = ((i + majorTickUnitAngle) - i) / (MinorDivisionsCount); + + if ((i < (ScaleStartAngle + ScaleSweepAngle)) && (Math.Round(minvalue, ScaleValuePrecision) <= Math.Round(MaxValue, ScaleValuePrecision))) + { + //Drawing the minor scale + for (Double mi = i + onedegree; mi < (i + majorTickUnitAngle); mi = mi + onedegree) + { + //here the minortick is drawn as a rectangle + Rectangle mr = new Rectangle(); + mr.Height = MinorTickSize.Height; + mr.Width = MinorTickSize.Width; + mr.Fill = new SolidColorBrush(MinorTickColor); + mr.HorizontalAlignment = HorizontalAlignment.Center; + mr.VerticalAlignment = VerticalAlignment.Center; + Point p1 = new Point(0.5, 0.5); + mr.RenderTransformOrigin = p1; + + TransformGroup minortickgp = new TransformGroup(); + RotateTransform minortickrt = new RotateTransform(); + minortickrt.Angle = mi; + minortickgp.Children.Add(minortickrt); + TranslateTransform minorticktt = new TranslateTransform(); + + //Obtaining the angle in radians for calulating the points + Double mi_radian = (mi * Math.PI) / 180; + //Finding the point on the Scale where the minor ticks are drawn + minorticktt.X = (int)((ScaleRadius) * Math.Cos(mi_radian)); + minorticktt.Y = (int)((ScaleRadius) * Math.Sin(mi_radian)); + + minortickgp.Children.Add(minorticktt); + mr.RenderTransform = minortickgp; + rootGrid.Children.Add(mr); + + + } + + } + + } + } + + /// + /// Obtaining the Point (x,y) in the circumference + /// + /// + /// + /// + private Point GetCircumferencePoint(Double angle, Double radius) + { + Double angle_radian = (angle * Math.PI) / 180; + //Radius-- is the Radius of the gauge + Double X = (Double)((Radius) + (radius) * Math.Cos(angle_radian)); + Double Y = (Double)((Radius) + (radius) * Math.Sin(angle_radian)); + Point p = new Point(X, Y); + return p; + } + + /// + /// Draw the range indicator + /// + private void DrawRangeIndicator() + { + Double realworldunit = (ScaleSweepAngle / (MaxValue - MinValue)); + Double optimalStartAngle; + Double optimalEndAngle; + double db; + + //Checking whether the OptimalRangeStartvalue is -ve + if (OptimalRangeStartValue < 0) + { + db = MinValue + Math.Abs(OptimalRangeStartValue); + optimalStartAngle = ((double)(Math.Abs(db * realworldunit))); + } + else + { + db = Math.Abs(MinValue) + OptimalRangeStartValue; + optimalStartAngle = ((double)(db * realworldunit)); + } + + //Checking whether the OptimalRangeEndvalue is -ve + if (OptimalRangeEndValue < 0) + { + db = MinValue + Math.Abs(OptimalRangeEndValue); + optimalEndAngle = ((double)(Math.Abs(db * realworldunit))); + } + else + { + db = Math.Abs(MinValue) + OptimalRangeEndValue; + optimalEndAngle = ((double)(db * realworldunit)); + } + // calculating the angle for optimal Start value + + Double optimalStartAngleFromStart = (ScaleStartAngle + optimalStartAngle); + + // calculating the angle for optimal Start value + + Double optimalEndAngleFromStart = (ScaleStartAngle + optimalEndAngle); + + //Calculating the Radius of the two arc for segment + arcradius1 = (RangeIndicatorRadius + RangeIndicatorThickness); + arcradius2 = RangeIndicatorRadius; + + double endAngle = ScaleStartAngle + ScaleSweepAngle; + + // Calculating the Points for the below Optimal Range segment from the center of the gauge + + Point A = GetCircumferencePoint(ScaleStartAngle, arcradius1); + Point B = GetCircumferencePoint(ScaleStartAngle, arcradius2); + Point C = GetCircumferencePoint(optimalStartAngleFromStart, arcradius2); + Point D = GetCircumferencePoint(optimalStartAngleFromStart, arcradius1); + + bool isReflexAngle = Math.Abs(optimalStartAngleFromStart - ScaleStartAngle) > 180.0; + DrawSegment(A, B, C, D, isReflexAngle, BelowOptimalRangeColor); + + // Calculating the Points for the Optimal Range segment from the center of the gauge + + Point A1 = GetCircumferencePoint(optimalStartAngleFromStart, arcradius1); + Point B1 = GetCircumferencePoint(optimalStartAngleFromStart, arcradius2); + Point C1 = GetCircumferencePoint(optimalEndAngleFromStart, arcradius2); + Point D1 = GetCircumferencePoint(optimalEndAngleFromStart, arcradius1); + bool isReflexAngle1 = Math.Abs(optimalEndAngleFromStart - optimalStartAngleFromStart) > 180.0; + DrawSegment(A1, B1, C1, D1, isReflexAngle1, OptimalRangeColor); + + // Calculating the Points for the Above Optimal Range segment from the center of the gauge + + Point A2 = GetCircumferencePoint(optimalEndAngleFromStart, arcradius1); + Point B2 = GetCircumferencePoint(optimalEndAngleFromStart, arcradius2); + Point C2 = GetCircumferencePoint(endAngle, arcradius2); + Point D2 = GetCircumferencePoint(endAngle, arcradius1); + bool isReflexAngle2 = Math.Abs(endAngle - optimalEndAngleFromStart) > 180.0; + DrawSegment(A2, B2, C2, D2, isReflexAngle2, AboveOptimalRangeColor); + } + + //Drawing the segment with two arc and two line + + private void DrawSegment(Point p1, Point p2, Point p3, Point p4, bool reflexangle, Color clr) + { + + // Segment Geometry + PathSegmentCollection segments = new PathSegmentCollection(); + + // First line segment from pt p1 - pt p2 + segments.Add(new LineSegment() { Point = p2 }); + + //Arc drawn from pt p2 - pt p3 with the RangeIndicatorRadius + segments.Add(new ArcSegment() + { + Size = new Size(arcradius2, arcradius2), + Point = p3, + SweepDirection = SweepDirection.Clockwise, + IsLargeArc = reflexangle + + }); + + // Second line segment from pt p3 - pt p4 + segments.Add(new LineSegment() { Point = p4 }); + + //Arc drawn from pt p4 - pt p1 with the Radius of arcradius1 + segments.Add(new ArcSegment() + { + Size = new Size(arcradius1, arcradius1), + Point = p1, + SweepDirection = SweepDirection.Counterclockwise, + IsLargeArc = reflexangle + + }); + + // Defining the segment path properties + Color rangestrokecolor; + if (clr == Colors.Transparent) + { + rangestrokecolor = clr; + } + else + rangestrokecolor = Colors.White; + + + + rangeIndicator = new Path() + { + StrokeLineJoin = PenLineJoin.Round, + Stroke = new SolidColorBrush(rangestrokecolor), + //Color.FromArgb(0xFF, 0xF5, 0x9A, 0x86) + Fill = new SolidColorBrush(clr), + Opacity = 0.65, + StrokeThickness = 0.25, + Data = new PathGeometry() + { + Figures = new PathFigureCollection() + { + new PathFigure() + { + IsClosed = true, + StartPoint = p1, + Segments = segments + } + } + } + }; + + //Set Z index of range indicator + rangeIndicator.SetValue(Canvas.ZIndexProperty, 150); + // Adding the segment to the root grid + rootGrid.Children.Add(rangeIndicator); + + } + + #endregion + } +} diff --git a/Software/Visual_Studio/Tango.CircularGauge/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.CircularGauge/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..eaecfc80d --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/Properties/AssemblyInfo.cs @@ -0,0 +1,18 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +[assembly: AssemblyTitle("Tango - Circular Gauge Control")] +[assembly: ComVisible(false)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.Designer.cs b/Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.Designer.cs new file mode 100644 index 000000000..92a65f881 --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.CircularGauge.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.CircularGauge.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.resx b/Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.Designer.cs b/Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.Designer.cs new file mode 100644 index 000000000..791f73266 --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.CircularGauge.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.settings b/Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.CircularGauge/Tango.CircularGauge.csproj b/Software/Visual_Studio/Tango.CircularGauge/Tango.CircularGauge.csproj new file mode 100644 index 000000000..1773852f7 --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/Tango.CircularGauge.csproj @@ -0,0 +1,128 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD} + library + Properties + Tango.CircularGauge + Tango.CircularGauge + v4.6 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + + + 3.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + true + full + false + ..\Build\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + ..\Build\Release\ + TRACE + prompt + 4 + false + + + + + 3.5 + + + + 3.5 + + + 3.5 + + + + + + + + + + MSBuild:Compile + Designer + + + GlobalVersionInfo.cs + + + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + False + .NET Framework 3.5 SP1 + true + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.CircularGauge/Themes/Generic.xaml b/Software/Visual_Studio/Tango.CircularGauge/Themes/Generic.xaml new file mode 100644 index 000000000..edef67f07 --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/Themes/Generic.xaml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Tango.CircularGauge/TypeConverters.cs b/Software/Visual_Studio/Tango.CircularGauge/TypeConverters.cs new file mode 100644 index 000000000..98ef8933c --- /dev/null +++ b/Software/Visual_Studio/Tango.CircularGauge/TypeConverters.cs @@ -0,0 +1,277 @@ +/*Copyright (c) 2009 T.Evelyn (evescode@gmail.com) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE.*/ + + +using System; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using System.Windows.Data; +using System.Globalization; + +namespace Tango.CircularGauge +{ + + /// + /// Converts the given color to a SolidColorBrush + /// + public class ColorToSolidColorBrushConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + Color c = (Color)value; + + return new SolidColorBrush(c); + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + + /// + /// A type converter for converting image offset into render transform + /// + public class ImageOffsetConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + double dblVal = (double)value; + TranslateTransform tt = new TranslateTransform(); + tt.Y = dblVal; + return tt; + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + + /// + /// Converts radius to diameter + /// + public class RadiusToDiameterConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + double dblVal = (double)value; + + return (dblVal *2); + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Calculates the pointer position + /// + public class PointerCenterConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + double dblVal = (double)value; + TransformGroup tg = new TransformGroup(); + RotateTransform rt = new RotateTransform(); + TranslateTransform tt = new TranslateTransform(); + + tt.X = dblVal / 2; + tg.Children.Add(rt); + tg.Children.Add(tt); + + return tg; + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Calculates the range indicator light position + /// + public class RangeIndicatorLightPositionConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + double dblVal = (double)value; + TransformGroup tg = new TransformGroup(); + RotateTransform rt = new RotateTransform(); + TranslateTransform tt = new TranslateTransform(); + + tt.Y = dblVal ; + tg.Children.Add(rt); + tg.Children.Add(tt); + + return tg; + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Converts the given Size to height and width + /// + public class SizeConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + double i = 0; + Size s = (Size)value; + if (parameter.ToString() == "Height") + { + i = s.Height; + } + else if (parameter.ToString() == "Width") + { + i = s.Width; + } + + return i; + + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Scaling factor for drawing the glass effect. + /// + public class GlassEffectWidthConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + double dbl = (double)value; + return (dbl*2) * 0.94; + + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Converts background color to Gradient effect + /// + public class BackgroundColorConverter : IValueConverter + { + public object Convert( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + Color c = (Color)value; + RadialGradientBrush radBrush = new RadialGradientBrush(); + GradientStop g1 = new GradientStop(); + g1.Offset = 0.982; + g1.Color = c; + GradientStop g2 = new GradientStop(); + g2.Color = Color.FromArgb(0xFF, 0xAF, 0xB2, 0xB0); + radBrush.GradientStops.Add(g1); + radBrush.GradientStops.Add(g2); + return radBrush; + + } + + public object ConvertBack( + object value, + Type targetType, + object parameter, + CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/ProtoMessageFile.cs b/Software/Visual_Studio/Tango.CodeGeneration/ProtoMessageFile.cs index 6d771099a..2bcdac8b4 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/ProtoMessageFile.cs +++ b/Software/Visual_Studio/Tango.CodeGeneration/ProtoMessageFile.cs @@ -6,14 +6,18 @@ using System.Threading.Tasks; namespace Tango.CodeGeneration { - public class ProtoMessageFile : Class + public class ProtoMessageFile : CodeObject { + public String Name { get; set; } public String Package { get; set; } public List Imports { get; set; } + public List Properties { get; set; } + public ProtoMessageFile() { Imports = new List(); + Properties = new List(); } } } diff --git a/Software/Visual_Studio/Tango.CodeGeneration/ProtoProperty.cs b/Software/Visual_Studio/Tango.CodeGeneration/ProtoProperty.cs new file mode 100644 index 000000000..d63348b6b --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/ProtoProperty.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.CodeGeneration +{ + public class ProtoProperty : Property + { + public bool Repeated { get; set; } + + public String Description { get; set; } + + public ProtoProperty() + { + + } + + public ProtoProperty(String name, String type) : this() + { + Name = name; + Type = type; + } + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj b/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj index 0c093659f..3c6c9d085 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj +++ b/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj @@ -70,6 +70,7 @@ + diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoEnumFile.cshtml b/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoEnumFile.cshtml index 790e5dd93..d659a028e 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoEnumFile.cshtml +++ b/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoEnumFile.cshtml @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; @foreach (var import in Model.Imports) { @@ -17,6 +25,7 @@ enum @(Model.Name) @foreach (var prop in Model.Fields) {
+ @(prop.Description != null ? ("//" + prop.Description) : "") @(prop.Name) = @(prop.Value);
} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoMessageFile.cshtml b/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoMessageFile.cshtml index 7452db6e6..c1aa28fb1 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoMessageFile.cshtml +++ b/Software/Visual_Studio/Tango.CodeGeneration/Templates/ProtoMessageFile.cshtml @@ -1,6 +1,14 @@ -syntax = "proto3"; +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Tango PMR Generator +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. Do not modify! +// +//------------------------------------------------------------------------------ -//This file is auto-generated. Do not modify! +syntax = "proto3"; @foreach (var import in Model.Imports) { @@ -18,7 +26,8 @@ message @(Model.Name) @for (int i = 0; i < Model.Properties.Count; i++) {
- @(Model.Properties[i].Type) @(Model.Properties[i].Name) = @(i + 1); + @(Model.Properties[i].Description != null ? ("//" + Model.Properties[i].Description) : "") + @(Model.Properties[i].Repeated ? "repeated" : "") @(Model.Properties[i].Type) @(Model.Properties[i].Name) = @(i + 1);
} } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs index a7a534dea..366561053 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs @@ -82,8 +82,8 @@ namespace Tango.DAL.Remote.DB public virtual DbSet SEGMENTS { get; set; } public virtual DbSet SPOOL_TYPES { get; set; } public virtual DbSet SYNC_CONFIGURATIONS { get; set; } + public virtual DbSet TECH_CONTROLLERS { get; set; } public virtual DbSet TECH_DISPENSERS { get; set; } - public virtual DbSet TECH_HEATERS { get; set; } public virtual DbSet TECH_IOS { get; set; } public virtual DbSet TECH_MONITORS { get; set; } public virtual DbSet TECH_MOTORS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index d60100532..739e2f6dc 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -784,7 +784,7 @@ - + @@ -794,8 +794,11 @@ + + + - + @@ -874,6 +877,7 @@ + @@ -1308,7 +1312,9 @@ - + + + @@ -1420,7 +1426,9 @@ - + + + @@ -1700,7 +1708,9 @@ - + + + @@ -1712,7 +1722,9 @@ - + + + @@ -1821,8 +1833,8 @@ + - @@ -2165,8 +2177,8 @@ + - @@ -3352,7 +3364,7 @@ - + @@ -3362,8 +3374,11 @@ + + + - + @@ -3442,6 +3457,7 @@ + @@ -3502,7 +3518,9 @@ - + + + @@ -3742,7 +3760,9 @@ - + + + @@ -3780,7 +3800,9 @@ - + + + @@ -4010,7 +4032,9 @@ - + + + @@ -5183,9 +5207,12 @@ - - - + + + + + + @@ -5195,9 +5222,9 @@ - - - + + + @@ -5269,6 +5296,7 @@ + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index 77b727914..0ab9b672b 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,72 +5,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_CONTROLLERS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_CONTROLLERS.cs new file mode 100644 index 000000000..d5e2119a4 --- /dev/null +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_CONTROLLERS.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.DAL.Remote.DB +{ + using System; + using System.Collections.Generic; + + public partial class TECH_CONTROLLERS + { + public int ID { get; set; } + public string GUID { get; set; } + public System.DateTime LAST_UPDATED { get; set; } + public int CODE { get; set; } + public string NAME { get; set; } + public string DESCRIPTION { get; set; } + public double MIN { get; set; } + public double MAX { get; set; } + public string UNITS { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs deleted file mode 100644 index b37a0c5a1..000000000 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/TECH_HEATERS.cs +++ /dev/null @@ -1,24 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated from a template. -// -// Manual changes to this file may cause unexpected behavior in your application. -// Manual changes to this file will be overwritten if the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Tango.DAL.Remote.DB -{ - using System; - using System.Collections.Generic; - - public partial class TECH_HEATERS - { - public int ID { get; set; } - public string GUID { get; set; } - public System.DateTime LAST_UPDATED { get; set; } - public int CODE { get; set; } - public string NAME { get; set; } - public string DESCRIPTION { get; set; } - } -} diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs index 28dc2a2b8..6f4c40811 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs @@ -32,6 +32,7 @@ namespace Tango.DAL.Remote.DB public string ORGANIZATION_GUID { get; set; } public string CONTACT_GUID { get; set; } public string ADDRESS_GUID { get; set; } + public Nullable LAST_LOGIN { get; set; } public virtual ADDRESS ADDRESS { get; set; } public virtual CONTACT CONTACT { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj index c9e2dbbed..83c839310 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj +++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj @@ -251,10 +251,10 @@ RemoteADO.tt - + RemoteADO.tt - + RemoteADO.tt diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs index 143a198eb..e6ad97427 100644 --- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs +++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs @@ -42,6 +42,7 @@ namespace Tango.Emulations.Emulators private List _digitalOutputPinsStates; private List _digitalInputPinsStates; private LogManager LogManager = LogManager.Default; + private List _componentsStates; #region Constructors @@ -74,6 +75,7 @@ namespace Tango.Emulations.Emulators _dispenserJoggingRequestCodes = new List(); _dispenserHomingRequestCodes = new List(); _digitalOutputPinsStates = new List(); + _componentsStates = new List(); var adapter = ObservablesEntitiesAdapter.Instance; adapter.Initialize(); @@ -88,6 +90,15 @@ namespace Tango.Emulations.Emulators Port = x.Port, }).ToList(); + foreach (var item in adapter.TechControllers) + { + _componentsStates.Add(new ValueComponentState() + { + Component = (ValueComponent)item.Code, + Value = item.Min + }); + } + ResetGraphFactors(); } @@ -164,6 +175,9 @@ namespace Tango.Emulations.Emulators case MessageType.UploadProcessParametersRequest: HandleUploadProcessParametersRequest(MessageFactory.ParseTangoMessageFromContainer(container)); break; + case MessageType.SetComponentValueRequest: + HandleSetComponentValueRequest(MessageFactory.ParseTangoMessageFromContainer(container)); + break; } } @@ -214,17 +228,19 @@ namespace Tango.Emulations.Emulators while (Transporter.State == TransportComponentState.Connected) { PushDiagnosticsResponse res = new PushDiagnosticsResponse(); + DiagnosticsMonitors monitors = new DiagnosticsMonitors(); + res.Monitors = monitors; if (_diagnosticsRequest.PushSensors) { for (int i = 0; i < 10; i++) { value++; - res.Dancer1Angle.Add((int)(150 + _graphAmplitude * Math.Sin(2 * 3.14 * ((int)_graphFrequency) * value))); + monitors.Dancer1Angle.Add((int)(150 + _graphAmplitude * Math.Sin(2 * 3.14 * ((int)_graphFrequency) * value))); } - res.Dancer2Angle.Add(Cursor.Position.Y); - res.Dancer3Angle.Add(Cursor.Position.Y); + monitors.Dancer2Angle.Add(Cursor.Position.Y); + monitors.Dancer3Angle.Add(Cursor.Position.Y); } if (_diagnosticsRequest.PushMotors) @@ -245,19 +261,20 @@ namespace Tango.Emulations.Emulators dispenserFrequencies.Add(singleDispenser); } - res.DispensersMotorsFrequency.AddRange(dispenserFrequencies); + monitors.DispensersMotorsFrequency.AddRange(dispenserFrequencies); - res.Dispenser1MotorFrequency.AddRange(dispenserFrequencies[0].Data); - res.Dispenser2MotorFrequency.AddRange(dispenserFrequencies[1].Data); - res.Dispenser3MotorFrequency.AddRange(dispenserFrequencies[2].Data); - res.Dispenser4MotorFrequency.AddRange(dispenserFrequencies[3].Data); - res.Dispenser5MotorFrequency.AddRange(dispenserFrequencies[4].Data); - res.Dispenser6MotorFrequency.AddRange(dispenserFrequencies[5].Data); - res.Dispenser7MotorFrequency.AddRange(dispenserFrequencies[6].Data); - res.Dispenser8MotorFrequency.AddRange(dispenserFrequencies[7].Data); + monitors.Dispenser1MotorFrequency.AddRange(dispenserFrequencies[0].Data); + monitors.Dispenser2MotorFrequency.AddRange(dispenserFrequencies[1].Data); + monitors.Dispenser3MotorFrequency.AddRange(dispenserFrequencies[2].Data); + monitors.Dispenser4MotorFrequency.AddRange(dispenserFrequencies[3].Data); + monitors.Dispenser5MotorFrequency.AddRange(dispenserFrequencies[4].Data); + monitors.Dispenser6MotorFrequency.AddRange(dispenserFrequencies[5].Data); + monitors.Dispenser7MotorFrequency.AddRange(dispenserFrequencies[6].Data); + monitors.Dispenser8MotorFrequency.AddRange(dispenserFrequencies[7].Data); } res.DigitalPins.AddRange(_digitalOutputPinsStates.Concat(_digitalInputPinsStates)); + res.ComponentsStates.AddRange(_componentsStates); res.Version = "1.0.0.0"; res.VersionBuildDate = DateTime.Now.ToString(); @@ -531,7 +548,7 @@ namespace Tango.Emulations.Emulators { LogManager.Log("Upload process parameters request received: " + Environment.NewLine + request.Message.ToJsonString()); - Task.Factory.StartNew(() => + Task.Factory.StartNew(() => { Thread.Sleep(1000); @@ -540,6 +557,38 @@ namespace Tango.Emulations.Emulators }); } + private void HandleSetComponentValueRequest(TangoMessage request) + { + LogManager.Log("Set component value request received: " + Environment.NewLine + request.Message.ToJsonString()); + + var componentState = _componentsStates.SingleOrDefault(x => x.Component == request.Message.Component); + + double startValue = componentState.Value; + double targetValue = request.Message.Value; + + Transporter.SendResponse(new SetComponentValueResponse(), request.Container.Token); + + Task.Factory.StartNew(() => + { + if (targetValue > startValue) + { + while (componentState.Value < targetValue) + { + componentState.Value++; + Thread.Sleep(30); + } + } + else + { + while (componentState.Value > targetValue) + { + componentState.Value--; + Thread.Sleep(30); + } + } + }); + } + #endregion } } diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs index e17f515cc..5dfc1a1f4 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs @@ -139,5 +139,12 @@ namespace Tango.Integration.Operation /// The request. /// Task StopThreadJogging(ThreadAbortJoggingRequest request); + + /// + /// Sets the specified component value. + /// + /// The request. + /// + Task SetComponentValue(SetComponentValueRequest request); } } diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 4f7ebbbdd..e65b67e26 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -473,6 +473,16 @@ namespace Tango.Integration.Operation return await SendRequest(request); } + /// + /// Sets the specified component value. + /// + /// The request. + /// + public async Task SetComponentValue(SetComponentValueRequest request) + { + return await SendRequest(request); + } + #endregion } } diff --git a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs index 04fb2c1c6..6301c2d03 100644 --- a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs +++ b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs @@ -22,7 +22,7 @@ namespace Tango.PMR.Common { static MessageTypeReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( - "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbiqEFwoLTWVz", + "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbirDFwoLTWVz", "c2FnZVR5cGUSCAoETm9uZRAAEhQKEENhbGN1bGF0ZVJlcXVlc3QQAxIVChFD", "YWxjdWxhdGVSZXNwb25zZRAEEhMKD1Byb2dyZXNzUmVxdWVzdBAFEhQKEFBy", "b2dyZXNzUmVzcG9uc2UQBhIcChhTdHViQ2FydHJpZGdlUmVhZFJlcXVlc3QQ", @@ -82,14 +82,15 @@ namespace Tango.PMR.Common { "aWdpdGFsT3V0UmVzcG9uc2UQ4w8SGQoUVGhyZWFkSm9nZ2luZ1JlcXVlc3QQ", "5A8SGgoVVGhyZWFkSm9nZ2luZ1Jlc3BvbnNlEOUPEh4KGVRocmVhZEFib3J0", "Sm9nZ2luZ1JlcXVlc3QQ5g8SHwoaVGhyZWFkQWJvcnRKb2dnaW5nUmVzcG9u", - "c2UQ5w8SDwoKSm9iUmVxdWVzdBC4FxIQCgtKb2JSZXNwb25zZRC5FxIUCg9B", - "Ym9ydEpvYlJlcXVlc3QQuhcSFQoQQWJvcnRKb2JSZXNwb25zZRC7FxIjCh5V", - "cGxvYWRQcm9jZXNzUGFyYW1ldGVyc1JlcXVlc3QQvBcSJAofVXBsb2FkUHJv", - "Y2Vzc1BhcmFtZXRlcnNSZXNwb25zZRC9FxIUCg9EZWJ1Z0xvZ1JlcXVlc3QQ", - "oB8SFQoQRGVidWdMb2dSZXNwb25zZRChHxInCiJVcGxvYWRIYXJkd2FyZUNv", - "bmZpZ3VyYXRpb25SZXF1ZXN0EIgnEigKI1VwbG9hZEhhcmR3YXJlQ29uZmln", - "dXJhdGlvblJlc3BvbnNlEIknQhwKGmNvbS50d2luZS50YW5nby5wbXIuY29t", - "bW9uYgZwcm90bzM=")); + "c2UQ5w8SHQoYU2V0Q29tcG9uZW50VmFsdWVSZXF1ZXN0EOgPEh4KGVNldENv", + "bXBvbmVudFZhbHVlUmVzcG9uc2UQ6Q8SDwoKSm9iUmVxdWVzdBC4FxIQCgtK", + "b2JSZXNwb25zZRC5FxIUCg9BYm9ydEpvYlJlcXVlc3QQuhcSFQoQQWJvcnRK", + "b2JSZXNwb25zZRC7FxIjCh5VcGxvYWRQcm9jZXNzUGFyYW1ldGVyc1JlcXVl", + "c3QQvBcSJAofVXBsb2FkUHJvY2Vzc1BhcmFtZXRlcnNSZXNwb25zZRC9FxIU", + "Cg9EZWJ1Z0xvZ1JlcXVlc3QQoB8SFQoQRGVidWdMb2dSZXNwb25zZRChHxIn", + "CiJVcGxvYWRIYXJkd2FyZUNvbmZpZ3VyYXRpb25SZXF1ZXN0EIgnEigKI1Vw", + "bG9hZEhhcmR3YXJlQ29uZmlndXJhdGlvblJlc3BvbnNlEIknQhwKGmNvbS50", + "d2luZS50YW5nby5wbXIuY29tbW9uYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MessageType), }, null)); @@ -203,6 +204,8 @@ namespace Tango.PMR.Common { [pbr::OriginalName("ThreadJoggingResponse")] ThreadJoggingResponse = 2021, [pbr::OriginalName("ThreadAbortJoggingRequest")] ThreadAbortJoggingRequest = 2022, [pbr::OriginalName("ThreadAbortJoggingResponse")] ThreadAbortJoggingResponse = 2023, + [pbr::OriginalName("SetComponentValueRequest")] SetComponentValueRequest = 2024, + [pbr::OriginalName("SetComponentValueResponse")] SetComponentValueResponse = 2025, /// ///Printing /// diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs new file mode 100644 index 000000000..3f558f414 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/DiagnosticsMonitors.cs @@ -0,0 +1,1017 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: DiagnosticsMonitors.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Diagnostics { + + /// Holder for reflection information generated from DiagnosticsMonitors.proto + public static partial class DiagnosticsMonitorsReflection { + + #region Descriptor + /// File descriptor for DiagnosticsMonitors.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static DiagnosticsMonitorsReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChlEaWFnbm9zdGljc01vbml0b3JzLnByb3RvEhVUYW5nby5QTVIuRGlhZ25v", + "c3RpY3MaEURvdWJsZUFycmF5LnByb3RvIpQJChNEaWFnbm9zdGljc01vbml0", + "b3JzEhQKDERhbmNlcjFBbmdsZRgBIAMoARIUCgxEYW5jZXIyQW5nbGUYAiAD", + "KAESFAoMRGFuY2VyM0FuZ2xlGAMgAygBEhwKFEZlZWRlck1vdG9yRnJlcXVl", + "bmN5GAQgAygBEhIKCkRyeWVyTW90b3IYBSADKAESEwoLUG9sbGVyTW90b3IY", + "BiADKAESEwoLV2luZGVyTW90b3IYByADKAESEgoKU2NyZXdNb3RvchgIIAMo", + "ARITCgtUaHJlYWRTcGVlZBgJIAMoARIYChBNaXhlclRlbXBlcmF0dXJlGAog", + "AygBEhwKFEhlYWRab25lMVRlbXBlcmF0dXJlGAsgAygBEhwKFEhlYWRab25l", + "MlRlbXBlcmF0dXJlGAwgAygBEhwKFEhlYWRab25lM1RlbXBlcmF0dXJlGA0g", + "AygBEhMKC0hlYWRBaXJGbG93GA4gAygBEhUKDUZlZWRlclRlbnNpb24YDyAD", + "KAESFQoNUHVsbGVyVGVuc2lvbhgQIAMoARIdChVEcnllclpvbmUxVGVtcGVy", + "YXR1cmUYESADKAESHQoVRHJ5ZXJab25lMlRlbXBlcmF0dXJlGBIgAygBEh0K", + "FURyeWVyWm9uZTNUZW1wZXJhdHVyZRgTIAMoARIUCgxEcnllckFpckZsb3cY", + "FCADKAESFQoNV2luZGVyVGVuc2lvbhgVIAMoARJFChlEaXNwZW5zZXJzTW90", + "b3JzRnJlcXVlbmN5GBYgAygLMiIuVGFuZ28uUE1SLkRpYWdub3N0aWNzLkRv", + "dWJsZUFycmF5EkUKGURpc3BlbnNlcnNBbmd1bGFyRW5jb2RlcnMYFyADKAsy", + "Ii5UYW5nby5QTVIuRGlhZ25vc3RpY3MuRG91YmxlQXJyYXkSRQoZRGlzcGVu", + "c2Vyc0xpbmVhclBvc2l0aW9ucxgYIAMoCzIiLlRhbmdvLlBNUi5EaWFnbm9z", + "dGljcy5Eb3VibGVBcnJheRI+ChJEaXNwZW5zZXJzUHJlc3N1cmUYGSADKAsy", + "Ii5UYW5nby5QTVIuRGlhZ25vc3RpY3MuRG91YmxlQXJyYXkSFwoPTWlkVGFu", + "a1ByZXNzdXJlGBogAygBEhsKE0ZpbHRlckRlbHRhUHJlc3N1cmUYGyADKAES", + "GgoSQ2hpbGxlclRlbXBlcmF0dXJlGBwgAygBEiAKGERpc3BlbnNlcjFNb3Rv", + "ckZyZXF1ZW5jeRgdIAMoARIgChhEaXNwZW5zZXIyTW90b3JGcmVxdWVuY3kY", + "HiADKAESIAoYRGlzcGVuc2VyM01vdG9yRnJlcXVlbmN5GB8gAygBEiAKGERp", + "c3BlbnNlcjRNb3RvckZyZXF1ZW5jeRggIAMoARIgChhEaXNwZW5zZXI1TW90", + "b3JGcmVxdWVuY3kYISADKAESIAoYRGlzcGVuc2VyNk1vdG9yRnJlcXVlbmN5", + "GCIgAygBEiAKGERpc3BlbnNlcjdNb3RvckZyZXF1ZW5jeRgjIAMoARIgChhE", + "aXNwZW5zZXI4TW90b3JGcmVxdWVuY3kYJCADKAFCIQofY29tLnR3aW5lLnRh", + "bmdvLnBtci5kaWFnbm9zdGljc2IGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DoubleArrayReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.DiagnosticsMonitors), global::Tango.PMR.Diagnostics.DiagnosticsMonitors.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "FeederMotorFrequency", "DryerMotor", "PollerMotor", "WinderMotor", "ScrewMotor", "ThreadSpeed", "MixerTemperature", "HeadZone1Temperature", "HeadZone2Temperature", "HeadZone3Temperature", "HeadAirFlow", "FeederTension", "PullerTension", "DryerZone1Temperature", "DryerZone2Temperature", "DryerZone3Temperature", "DryerAirFlow", "WinderTension", "DispensersMotorsFrequency", "DispensersAngularEncoders", "DispensersLinearPositions", "DispensersPressure", "MidTankPressure", "FilterDeltaPressure", "ChillerTemperature", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class DiagnosticsMonitors : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DiagnosticsMonitors()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Diagnostics.DiagnosticsMonitorsReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public DiagnosticsMonitors() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public DiagnosticsMonitors(DiagnosticsMonitors other) : this() { + dancer1Angle_ = other.dancer1Angle_.Clone(); + dancer2Angle_ = other.dancer2Angle_.Clone(); + dancer3Angle_ = other.dancer3Angle_.Clone(); + feederMotorFrequency_ = other.feederMotorFrequency_.Clone(); + dryerMotor_ = other.dryerMotor_.Clone(); + pollerMotor_ = other.pollerMotor_.Clone(); + winderMotor_ = other.winderMotor_.Clone(); + screwMotor_ = other.screwMotor_.Clone(); + threadSpeed_ = other.threadSpeed_.Clone(); + mixerTemperature_ = other.mixerTemperature_.Clone(); + headZone1Temperature_ = other.headZone1Temperature_.Clone(); + headZone2Temperature_ = other.headZone2Temperature_.Clone(); + headZone3Temperature_ = other.headZone3Temperature_.Clone(); + headAirFlow_ = other.headAirFlow_.Clone(); + feederTension_ = other.feederTension_.Clone(); + pullerTension_ = other.pullerTension_.Clone(); + dryerZone1Temperature_ = other.dryerZone1Temperature_.Clone(); + dryerZone2Temperature_ = other.dryerZone2Temperature_.Clone(); + dryerZone3Temperature_ = other.dryerZone3Temperature_.Clone(); + dryerAirFlow_ = other.dryerAirFlow_.Clone(); + winderTension_ = other.winderTension_.Clone(); + dispensersMotorsFrequency_ = other.dispensersMotorsFrequency_.Clone(); + dispensersAngularEncoders_ = other.dispensersAngularEncoders_.Clone(); + dispensersLinearPositions_ = other.dispensersLinearPositions_.Clone(); + dispensersPressure_ = other.dispensersPressure_.Clone(); + midTankPressure_ = other.midTankPressure_.Clone(); + filterDeltaPressure_ = other.filterDeltaPressure_.Clone(); + chillerTemperature_ = other.chillerTemperature_.Clone(); + dispenser1MotorFrequency_ = other.dispenser1MotorFrequency_.Clone(); + dispenser2MotorFrequency_ = other.dispenser2MotorFrequency_.Clone(); + dispenser3MotorFrequency_ = other.dispenser3MotorFrequency_.Clone(); + dispenser4MotorFrequency_ = other.dispenser4MotorFrequency_.Clone(); + dispenser5MotorFrequency_ = other.dispenser5MotorFrequency_.Clone(); + dispenser6MotorFrequency_ = other.dispenser6MotorFrequency_.Clone(); + dispenser7MotorFrequency_ = other.dispenser7MotorFrequency_.Clone(); + dispenser8MotorFrequency_ = other.dispenser8MotorFrequency_.Clone(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public DiagnosticsMonitors Clone() { + return new DiagnosticsMonitors(this); + } + + /// Field number for the "Dancer1Angle" field. + public const int Dancer1AngleFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_dancer1Angle_codec + = pb::FieldCodec.ForDouble(10); + private readonly pbc::RepeatedField dancer1Angle_ = new pbc::RepeatedField(); + /// + ///Dancer 1 (Min = 0, Max = 255, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dancer1Angle { + get { return dancer1Angle_; } + } + + /// Field number for the "Dancer2Angle" field. + public const int Dancer2AngleFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_dancer2Angle_codec + = pb::FieldCodec.ForDouble(18); + private readonly pbc::RepeatedField dancer2Angle_ = new pbc::RepeatedField(); + /// + ///Dancer 2 (Min = 0, Max = 1200, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dancer2Angle { + get { return dancer2Angle_; } + } + + /// Field number for the "Dancer3Angle" field. + public const int Dancer3AngleFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_dancer3Angle_codec + = pb::FieldCodec.ForDouble(26); + private readonly pbc::RepeatedField dancer3Angle_ = new pbc::RepeatedField(); + /// + ///Dancer 3 (Min = 0, Max = 1200, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dancer3Angle { + get { return dancer3Angle_; } + } + + /// Field number for the "FeederMotorFrequency" field. + public const int FeederMotorFrequencyFieldNumber = 4; + private static readonly pb::FieldCodec _repeated_feederMotorFrequency_codec + = pb::FieldCodec.ForDouble(34); + private readonly pbc::RepeatedField feederMotorFrequency_ = new pbc::RepeatedField(); + /// + ///Feeder Motor (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField FeederMotorFrequency { + get { return feederMotorFrequency_; } + } + + /// Field number for the "DryerMotor" field. + public const int DryerMotorFieldNumber = 5; + private static readonly pb::FieldCodec _repeated_dryerMotor_codec + = pb::FieldCodec.ForDouble(42); + private readonly pbc::RepeatedField dryerMotor_ = new pbc::RepeatedField(); + /// + ///Dryer Motor (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DryerMotor { + get { return dryerMotor_; } + } + + /// Field number for the "PollerMotor" field. + public const int PollerMotorFieldNumber = 6; + private static readonly pb::FieldCodec _repeated_pollerMotor_codec + = pb::FieldCodec.ForDouble(50); + private readonly pbc::RepeatedField pollerMotor_ = new pbc::RepeatedField(); + /// + ///Poller Motor (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField PollerMotor { + get { return pollerMotor_; } + } + + /// Field number for the "WinderMotor" field. + public const int WinderMotorFieldNumber = 7; + private static readonly pb::FieldCodec _repeated_winderMotor_codec + = pb::FieldCodec.ForDouble(58); + private readonly pbc::RepeatedField winderMotor_ = new pbc::RepeatedField(); + /// + ///Winder Motor (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField WinderMotor { + get { return winderMotor_; } + } + + /// Field number for the "ScrewMotor" field. + public const int ScrewMotorFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_screwMotor_codec + = pb::FieldCodec.ForDouble(66); + private readonly pbc::RepeatedField screwMotor_ = new pbc::RepeatedField(); + /// + ///Screw Motor (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ScrewMotor { + get { return screwMotor_; } + } + + /// Field number for the "ThreadSpeed" field. + public const int ThreadSpeedFieldNumber = 9; + private static readonly pb::FieldCodec _repeated_threadSpeed_codec + = pb::FieldCodec.ForDouble(74); + private readonly pbc::RepeatedField threadSpeed_ = new pbc::RepeatedField(); + /// + ///Thread Speed (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ThreadSpeed { + get { return threadSpeed_; } + } + + /// Field number for the "MixerTemperature" field. + public const int MixerTemperatureFieldNumber = 10; + private static readonly pb::FieldCodec _repeated_mixerTemperature_codec + = pb::FieldCodec.ForDouble(82); + private readonly pbc::RepeatedField mixerTemperature_ = new pbc::RepeatedField(); + /// + ///Mixer (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField MixerTemperature { + get { return mixerTemperature_; } + } + + /// Field number for the "HeadZone1Temperature" field. + public const int HeadZone1TemperatureFieldNumber = 11; + private static readonly pb::FieldCodec _repeated_headZone1Temperature_codec + = pb::FieldCodec.ForDouble(90); + private readonly pbc::RepeatedField headZone1Temperature_ = new pbc::RepeatedField(); + /// + ///Head Zone 1 (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField HeadZone1Temperature { + get { return headZone1Temperature_; } + } + + /// Field number for the "HeadZone2Temperature" field. + public const int HeadZone2TemperatureFieldNumber = 12; + private static readonly pb::FieldCodec _repeated_headZone2Temperature_codec + = pb::FieldCodec.ForDouble(98); + private readonly pbc::RepeatedField headZone2Temperature_ = new pbc::RepeatedField(); + /// + ///Head Zone 2 (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField HeadZone2Temperature { + get { return headZone2Temperature_; } + } + + /// Field number for the "HeadZone3Temperature" field. + public const int HeadZone3TemperatureFieldNumber = 13; + private static readonly pb::FieldCodec _repeated_headZone3Temperature_codec + = pb::FieldCodec.ForDouble(106); + private readonly pbc::RepeatedField headZone3Temperature_ = new pbc::RepeatedField(); + /// + ///Head Zone 3 (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField HeadZone3Temperature { + get { return headZone3Temperature_; } + } + + /// Field number for the "HeadAirFlow" field. + public const int HeadAirFlowFieldNumber = 14; + private static readonly pb::FieldCodec _repeated_headAirFlow_codec + = pb::FieldCodec.ForDouble(114); + private readonly pbc::RepeatedField headAirFlow_ = new pbc::RepeatedField(); + /// + ///Head Air Flow (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField HeadAirFlow { + get { return headAirFlow_; } + } + + /// Field number for the "FeederTension" field. + public const int FeederTensionFieldNumber = 15; + private static readonly pb::FieldCodec _repeated_feederTension_codec + = pb::FieldCodec.ForDouble(122); + private readonly pbc::RepeatedField feederTension_ = new pbc::RepeatedField(); + /// + ///Feeder Tension (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField FeederTension { + get { return feederTension_; } + } + + /// Field number for the "PullerTension" field. + public const int PullerTensionFieldNumber = 16; + private static readonly pb::FieldCodec _repeated_pullerTension_codec + = pb::FieldCodec.ForDouble(130); + private readonly pbc::RepeatedField pullerTension_ = new pbc::RepeatedField(); + /// + ///Puller Tension (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField PullerTension { + get { return pullerTension_; } + } + + /// Field number for the "DryerZone1Temperature" field. + public const int DryerZone1TemperatureFieldNumber = 17; + private static readonly pb::FieldCodec _repeated_dryerZone1Temperature_codec + = pb::FieldCodec.ForDouble(138); + private readonly pbc::RepeatedField dryerZone1Temperature_ = new pbc::RepeatedField(); + /// + ///Dryer Zone 1 (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DryerZone1Temperature { + get { return dryerZone1Temperature_; } + } + + /// Field number for the "DryerZone2Temperature" field. + public const int DryerZone2TemperatureFieldNumber = 18; + private static readonly pb::FieldCodec _repeated_dryerZone2Temperature_codec + = pb::FieldCodec.ForDouble(146); + private readonly pbc::RepeatedField dryerZone2Temperature_ = new pbc::RepeatedField(); + /// + ///Dryer Zone 2 (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DryerZone2Temperature { + get { return dryerZone2Temperature_; } + } + + /// Field number for the "DryerZone3Temperature" field. + public const int DryerZone3TemperatureFieldNumber = 19; + private static readonly pb::FieldCodec _repeated_dryerZone3Temperature_codec + = pb::FieldCodec.ForDouble(154); + private readonly pbc::RepeatedField dryerZone3Temperature_ = new pbc::RepeatedField(); + /// + ///Dryer Zone 3 (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DryerZone3Temperature { + get { return dryerZone3Temperature_; } + } + + /// Field number for the "DryerAirFlow" field. + public const int DryerAirFlowFieldNumber = 20; + private static readonly pb::FieldCodec _repeated_dryerAirFlow_codec + = pb::FieldCodec.ForDouble(162); + private readonly pbc::RepeatedField dryerAirFlow_ = new pbc::RepeatedField(); + /// + ///Dryer Air Flow (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DryerAirFlow { + get { return dryerAirFlow_; } + } + + /// Field number for the "WinderTension" field. + public const int WinderTensionFieldNumber = 21; + private static readonly pb::FieldCodec _repeated_winderTension_codec + = pb::FieldCodec.ForDouble(170); + private readonly pbc::RepeatedField winderTension_ = new pbc::RepeatedField(); + /// + ///Winder Tension (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField WinderTension { + get { return winderTension_; } + } + + /// Field number for the "DispensersMotorsFrequency" field. + public const int DispensersMotorsFrequencyFieldNumber = 22; + private static readonly pb::FieldCodec _repeated_dispensersMotorsFrequency_codec + = pb::FieldCodec.ForMessage(178, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField dispensersMotorsFrequency_ = new pbc::RepeatedField(); + /// + ///Dispensers Motors (Min = 0, Max = 1080, PPF = 10) Channel Count = 8 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DispensersMotorsFrequency { + get { return dispensersMotorsFrequency_; } + } + + /// Field number for the "DispensersAngularEncoders" field. + public const int DispensersAngularEncodersFieldNumber = 23; + private static readonly pb::FieldCodec _repeated_dispensersAngularEncoders_codec + = pb::FieldCodec.ForMessage(186, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField dispensersAngularEncoders_ = new pbc::RepeatedField(); + /// + ///Dispensers Angular Encoders (Min = 0, Max = 100, PPF = 1) Channel Count = 8 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DispensersAngularEncoders { + get { return dispensersAngularEncoders_; } + } + + /// Field number for the "DispensersLinearPositions" field. + public const int DispensersLinearPositionsFieldNumber = 24; + private static readonly pb::FieldCodec _repeated_dispensersLinearPositions_codec + = pb::FieldCodec.ForMessage(194, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField dispensersLinearPositions_ = new pbc::RepeatedField(); + /// + ///Dispensers Linear Positions (Min = 0, Max = 100, PPF = 1) Channel Count = 8 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DispensersLinearPositions { + get { return dispensersLinearPositions_; } + } + + /// Field number for the "DispensersPressure" field. + public const int DispensersPressureFieldNumber = 25; + private static readonly pb::FieldCodec _repeated_dispensersPressure_codec + = pb::FieldCodec.ForMessage(202, global::Tango.PMR.Diagnostics.DoubleArray.Parser); + private readonly pbc::RepeatedField dispensersPressure_ = new pbc::RepeatedField(); + /// + ///Dispensers Pressure (Min = 0, Max = 100, PPF = 1) Channel Count = 8 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField DispensersPressure { + get { return dispensersPressure_; } + } + + /// Field number for the "MidTankPressure" field. + public const int MidTankPressureFieldNumber = 26; + private static readonly pb::FieldCodec _repeated_midTankPressure_codec + = pb::FieldCodec.ForDouble(210); + private readonly pbc::RepeatedField midTankPressure_ = new pbc::RepeatedField(); + /// + ///Mid Tank Pressure (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField MidTankPressure { + get { return midTankPressure_; } + } + + /// Field number for the "FilterDeltaPressure" field. + public const int FilterDeltaPressureFieldNumber = 27; + private static readonly pb::FieldCodec _repeated_filterDeltaPressure_codec + = pb::FieldCodec.ForDouble(218); + private readonly pbc::RepeatedField filterDeltaPressure_ = new pbc::RepeatedField(); + /// + ///Filter Delta Pressure (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField FilterDeltaPressure { + get { return filterDeltaPressure_; } + } + + /// Field number for the "ChillerTemperature" field. + public const int ChillerTemperatureFieldNumber = 28; + private static readonly pb::FieldCodec _repeated_chillerTemperature_codec + = pb::FieldCodec.ForDouble(226); + private readonly pbc::RepeatedField chillerTemperature_ = new pbc::RepeatedField(); + /// + ///Chiller Temperature (Min = 0, Max = 100, PPF = 1) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ChillerTemperature { + get { return chillerTemperature_; } + } + + /// Field number for the "Dispenser1MotorFrequency" field. + public const int Dispenser1MotorFrequencyFieldNumber = 29; + private static readonly pb::FieldCodec _repeated_dispenser1MotorFrequency_codec + = pb::FieldCodec.ForDouble(234); + private readonly pbc::RepeatedField dispenser1MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 1 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser1MotorFrequency { + get { return dispenser1MotorFrequency_; } + } + + /// Field number for the "Dispenser2MotorFrequency" field. + public const int Dispenser2MotorFrequencyFieldNumber = 30; + private static readonly pb::FieldCodec _repeated_dispenser2MotorFrequency_codec + = pb::FieldCodec.ForDouble(242); + private readonly pbc::RepeatedField dispenser2MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 2 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser2MotorFrequency { + get { return dispenser2MotorFrequency_; } + } + + /// Field number for the "Dispenser3MotorFrequency" field. + public const int Dispenser3MotorFrequencyFieldNumber = 31; + private static readonly pb::FieldCodec _repeated_dispenser3MotorFrequency_codec + = pb::FieldCodec.ForDouble(250); + private readonly pbc::RepeatedField dispenser3MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 3 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser3MotorFrequency { + get { return dispenser3MotorFrequency_; } + } + + /// Field number for the "Dispenser4MotorFrequency" field. + public const int Dispenser4MotorFrequencyFieldNumber = 32; + private static readonly pb::FieldCodec _repeated_dispenser4MotorFrequency_codec + = pb::FieldCodec.ForDouble(258); + private readonly pbc::RepeatedField dispenser4MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 4 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser4MotorFrequency { + get { return dispenser4MotorFrequency_; } + } + + /// Field number for the "Dispenser5MotorFrequency" field. + public const int Dispenser5MotorFrequencyFieldNumber = 33; + private static readonly pb::FieldCodec _repeated_dispenser5MotorFrequency_codec + = pb::FieldCodec.ForDouble(266); + private readonly pbc::RepeatedField dispenser5MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 5 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser5MotorFrequency { + get { return dispenser5MotorFrequency_; } + } + + /// Field number for the "Dispenser6MotorFrequency" field. + public const int Dispenser6MotorFrequencyFieldNumber = 34; + private static readonly pb::FieldCodec _repeated_dispenser6MotorFrequency_codec + = pb::FieldCodec.ForDouble(274); + private readonly pbc::RepeatedField dispenser6MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 6 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser6MotorFrequency { + get { return dispenser6MotorFrequency_; } + } + + /// Field number for the "Dispenser7MotorFrequency" field. + public const int Dispenser7MotorFrequencyFieldNumber = 35; + private static readonly pb::FieldCodec _repeated_dispenser7MotorFrequency_codec + = pb::FieldCodec.ForDouble(282); + private readonly pbc::RepeatedField dispenser7MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 7 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser7MotorFrequency { + get { return dispenser7MotorFrequency_; } + } + + /// Field number for the "Dispenser8MotorFrequency" field. + public const int Dispenser8MotorFrequencyFieldNumber = 36; + private static readonly pb::FieldCodec _repeated_dispenser8MotorFrequency_codec + = pb::FieldCodec.ForDouble(290); + private readonly pbc::RepeatedField dispenser8MotorFrequency_ = new pbc::RepeatedField(); + /// + ///Dispenser 8 Motor Frequency (Min = 0, Max = 1080, PPF = 10) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Dispenser8MotorFrequency { + get { return dispenser8MotorFrequency_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as DiagnosticsMonitors); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(DiagnosticsMonitors other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if(!dancer1Angle_.Equals(other.dancer1Angle_)) return false; + if(!dancer2Angle_.Equals(other.dancer2Angle_)) return false; + if(!dancer3Angle_.Equals(other.dancer3Angle_)) return false; + if(!feederMotorFrequency_.Equals(other.feederMotorFrequency_)) return false; + if(!dryerMotor_.Equals(other.dryerMotor_)) return false; + if(!pollerMotor_.Equals(other.pollerMotor_)) return false; + if(!winderMotor_.Equals(other.winderMotor_)) return false; + if(!screwMotor_.Equals(other.screwMotor_)) return false; + if(!threadSpeed_.Equals(other.threadSpeed_)) return false; + if(!mixerTemperature_.Equals(other.mixerTemperature_)) return false; + if(!headZone1Temperature_.Equals(other.headZone1Temperature_)) return false; + if(!headZone2Temperature_.Equals(other.headZone2Temperature_)) return false; + if(!headZone3Temperature_.Equals(other.headZone3Temperature_)) return false; + if(!headAirFlow_.Equals(other.headAirFlow_)) return false; + if(!feederTension_.Equals(other.feederTension_)) return false; + if(!pullerTension_.Equals(other.pullerTension_)) return false; + if(!dryerZone1Temperature_.Equals(other.dryerZone1Temperature_)) return false; + if(!dryerZone2Temperature_.Equals(other.dryerZone2Temperature_)) return false; + if(!dryerZone3Temperature_.Equals(other.dryerZone3Temperature_)) return false; + if(!dryerAirFlow_.Equals(other.dryerAirFlow_)) return false; + if(!winderTension_.Equals(other.winderTension_)) return false; + if(!dispensersMotorsFrequency_.Equals(other.dispensersMotorsFrequency_)) return false; + if(!dispensersAngularEncoders_.Equals(other.dispensersAngularEncoders_)) return false; + if(!dispensersLinearPositions_.Equals(other.dispensersLinearPositions_)) return false; + if(!dispensersPressure_.Equals(other.dispensersPressure_)) return false; + if(!midTankPressure_.Equals(other.midTankPressure_)) return false; + if(!filterDeltaPressure_.Equals(other.filterDeltaPressure_)) return false; + if(!chillerTemperature_.Equals(other.chillerTemperature_)) return false; + if(!dispenser1MotorFrequency_.Equals(other.dispenser1MotorFrequency_)) return false; + if(!dispenser2MotorFrequency_.Equals(other.dispenser2MotorFrequency_)) return false; + if(!dispenser3MotorFrequency_.Equals(other.dispenser3MotorFrequency_)) return false; + if(!dispenser4MotorFrequency_.Equals(other.dispenser4MotorFrequency_)) return false; + if(!dispenser5MotorFrequency_.Equals(other.dispenser5MotorFrequency_)) return false; + if(!dispenser6MotorFrequency_.Equals(other.dispenser6MotorFrequency_)) return false; + if(!dispenser7MotorFrequency_.Equals(other.dispenser7MotorFrequency_)) return false; + if(!dispenser8MotorFrequency_.Equals(other.dispenser8MotorFrequency_)) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + hash ^= dancer1Angle_.GetHashCode(); + hash ^= dancer2Angle_.GetHashCode(); + hash ^= dancer3Angle_.GetHashCode(); + hash ^= feederMotorFrequency_.GetHashCode(); + hash ^= dryerMotor_.GetHashCode(); + hash ^= pollerMotor_.GetHashCode(); + hash ^= winderMotor_.GetHashCode(); + hash ^= screwMotor_.GetHashCode(); + hash ^= threadSpeed_.GetHashCode(); + hash ^= mixerTemperature_.GetHashCode(); + hash ^= headZone1Temperature_.GetHashCode(); + hash ^= headZone2Temperature_.GetHashCode(); + hash ^= headZone3Temperature_.GetHashCode(); + hash ^= headAirFlow_.GetHashCode(); + hash ^= feederTension_.GetHashCode(); + hash ^= pullerTension_.GetHashCode(); + hash ^= dryerZone1Temperature_.GetHashCode(); + hash ^= dryerZone2Temperature_.GetHashCode(); + hash ^= dryerZone3Temperature_.GetHashCode(); + hash ^= dryerAirFlow_.GetHashCode(); + hash ^= winderTension_.GetHashCode(); + hash ^= dispensersMotorsFrequency_.GetHashCode(); + hash ^= dispensersAngularEncoders_.GetHashCode(); + hash ^= dispensersLinearPositions_.GetHashCode(); + hash ^= dispensersPressure_.GetHashCode(); + hash ^= midTankPressure_.GetHashCode(); + hash ^= filterDeltaPressure_.GetHashCode(); + hash ^= chillerTemperature_.GetHashCode(); + hash ^= dispenser1MotorFrequency_.GetHashCode(); + hash ^= dispenser2MotorFrequency_.GetHashCode(); + hash ^= dispenser3MotorFrequency_.GetHashCode(); + hash ^= dispenser4MotorFrequency_.GetHashCode(); + hash ^= dispenser5MotorFrequency_.GetHashCode(); + hash ^= dispenser6MotorFrequency_.GetHashCode(); + hash ^= dispenser7MotorFrequency_.GetHashCode(); + hash ^= dispenser8MotorFrequency_.GetHashCode(); + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + dancer1Angle_.WriteTo(output, _repeated_dancer1Angle_codec); + dancer2Angle_.WriteTo(output, _repeated_dancer2Angle_codec); + dancer3Angle_.WriteTo(output, _repeated_dancer3Angle_codec); + feederMotorFrequency_.WriteTo(output, _repeated_feederMotorFrequency_codec); + dryerMotor_.WriteTo(output, _repeated_dryerMotor_codec); + pollerMotor_.WriteTo(output, _repeated_pollerMotor_codec); + winderMotor_.WriteTo(output, _repeated_winderMotor_codec); + screwMotor_.WriteTo(output, _repeated_screwMotor_codec); + threadSpeed_.WriteTo(output, _repeated_threadSpeed_codec); + mixerTemperature_.WriteTo(output, _repeated_mixerTemperature_codec); + headZone1Temperature_.WriteTo(output, _repeated_headZone1Temperature_codec); + headZone2Temperature_.WriteTo(output, _repeated_headZone2Temperature_codec); + headZone3Temperature_.WriteTo(output, _repeated_headZone3Temperature_codec); + headAirFlow_.WriteTo(output, _repeated_headAirFlow_codec); + feederTension_.WriteTo(output, _repeated_feederTension_codec); + pullerTension_.WriteTo(output, _repeated_pullerTension_codec); + dryerZone1Temperature_.WriteTo(output, _repeated_dryerZone1Temperature_codec); + dryerZone2Temperature_.WriteTo(output, _repeated_dryerZone2Temperature_codec); + dryerZone3Temperature_.WriteTo(output, _repeated_dryerZone3Temperature_codec); + dryerAirFlow_.WriteTo(output, _repeated_dryerAirFlow_codec); + winderTension_.WriteTo(output, _repeated_winderTension_codec); + dispensersMotorsFrequency_.WriteTo(output, _repeated_dispensersMotorsFrequency_codec); + dispensersAngularEncoders_.WriteTo(output, _repeated_dispensersAngularEncoders_codec); + dispensersLinearPositions_.WriteTo(output, _repeated_dispensersLinearPositions_codec); + dispensersPressure_.WriteTo(output, _repeated_dispensersPressure_codec); + midTankPressure_.WriteTo(output, _repeated_midTankPressure_codec); + filterDeltaPressure_.WriteTo(output, _repeated_filterDeltaPressure_codec); + chillerTemperature_.WriteTo(output, _repeated_chillerTemperature_codec); + dispenser1MotorFrequency_.WriteTo(output, _repeated_dispenser1MotorFrequency_codec); + dispenser2MotorFrequency_.WriteTo(output, _repeated_dispenser2MotorFrequency_codec); + dispenser3MotorFrequency_.WriteTo(output, _repeated_dispenser3MotorFrequency_codec); + dispenser4MotorFrequency_.WriteTo(output, _repeated_dispenser4MotorFrequency_codec); + dispenser5MotorFrequency_.WriteTo(output, _repeated_dispenser5MotorFrequency_codec); + dispenser6MotorFrequency_.WriteTo(output, _repeated_dispenser6MotorFrequency_codec); + dispenser7MotorFrequency_.WriteTo(output, _repeated_dispenser7MotorFrequency_codec); + dispenser8MotorFrequency_.WriteTo(output, _repeated_dispenser8MotorFrequency_codec); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + size += dancer1Angle_.CalculateSize(_repeated_dancer1Angle_codec); + size += dancer2Angle_.CalculateSize(_repeated_dancer2Angle_codec); + size += dancer3Angle_.CalculateSize(_repeated_dancer3Angle_codec); + size += feederMotorFrequency_.CalculateSize(_repeated_feederMotorFrequency_codec); + size += dryerMotor_.CalculateSize(_repeated_dryerMotor_codec); + size += pollerMotor_.CalculateSize(_repeated_pollerMotor_codec); + size += winderMotor_.CalculateSize(_repeated_winderMotor_codec); + size += screwMotor_.CalculateSize(_repeated_screwMotor_codec); + size += threadSpeed_.CalculateSize(_repeated_threadSpeed_codec); + size += mixerTemperature_.CalculateSize(_repeated_mixerTemperature_codec); + size += headZone1Temperature_.CalculateSize(_repeated_headZone1Temperature_codec); + size += headZone2Temperature_.CalculateSize(_repeated_headZone2Temperature_codec); + size += headZone3Temperature_.CalculateSize(_repeated_headZone3Temperature_codec); + size += headAirFlow_.CalculateSize(_repeated_headAirFlow_codec); + size += feederTension_.CalculateSize(_repeated_feederTension_codec); + size += pullerTension_.CalculateSize(_repeated_pullerTension_codec); + size += dryerZone1Temperature_.CalculateSize(_repeated_dryerZone1Temperature_codec); + size += dryerZone2Temperature_.CalculateSize(_repeated_dryerZone2Temperature_codec); + size += dryerZone3Temperature_.CalculateSize(_repeated_dryerZone3Temperature_codec); + size += dryerAirFlow_.CalculateSize(_repeated_dryerAirFlow_codec); + size += winderTension_.CalculateSize(_repeated_winderTension_codec); + size += dispensersMotorsFrequency_.CalculateSize(_repeated_dispensersMotorsFrequency_codec); + size += dispensersAngularEncoders_.CalculateSize(_repeated_dispensersAngularEncoders_codec); + size += dispensersLinearPositions_.CalculateSize(_repeated_dispensersLinearPositions_codec); + size += dispensersPressure_.CalculateSize(_repeated_dispensersPressure_codec); + size += midTankPressure_.CalculateSize(_repeated_midTankPressure_codec); + size += filterDeltaPressure_.CalculateSize(_repeated_filterDeltaPressure_codec); + size += chillerTemperature_.CalculateSize(_repeated_chillerTemperature_codec); + size += dispenser1MotorFrequency_.CalculateSize(_repeated_dispenser1MotorFrequency_codec); + size += dispenser2MotorFrequency_.CalculateSize(_repeated_dispenser2MotorFrequency_codec); + size += dispenser3MotorFrequency_.CalculateSize(_repeated_dispenser3MotorFrequency_codec); + size += dispenser4MotorFrequency_.CalculateSize(_repeated_dispenser4MotorFrequency_codec); + size += dispenser5MotorFrequency_.CalculateSize(_repeated_dispenser5MotorFrequency_codec); + size += dispenser6MotorFrequency_.CalculateSize(_repeated_dispenser6MotorFrequency_codec); + size += dispenser7MotorFrequency_.CalculateSize(_repeated_dispenser7MotorFrequency_codec); + size += dispenser8MotorFrequency_.CalculateSize(_repeated_dispenser8MotorFrequency_codec); + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(DiagnosticsMonitors other) { + if (other == null) { + return; + } + dancer1Angle_.Add(other.dancer1Angle_); + dancer2Angle_.Add(other.dancer2Angle_); + dancer3Angle_.Add(other.dancer3Angle_); + feederMotorFrequency_.Add(other.feederMotorFrequency_); + dryerMotor_.Add(other.dryerMotor_); + pollerMotor_.Add(other.pollerMotor_); + winderMotor_.Add(other.winderMotor_); + screwMotor_.Add(other.screwMotor_); + threadSpeed_.Add(other.threadSpeed_); + mixerTemperature_.Add(other.mixerTemperature_); + headZone1Temperature_.Add(other.headZone1Temperature_); + headZone2Temperature_.Add(other.headZone2Temperature_); + headZone3Temperature_.Add(other.headZone3Temperature_); + headAirFlow_.Add(other.headAirFlow_); + feederTension_.Add(other.feederTension_); + pullerTension_.Add(other.pullerTension_); + dryerZone1Temperature_.Add(other.dryerZone1Temperature_); + dryerZone2Temperature_.Add(other.dryerZone2Temperature_); + dryerZone3Temperature_.Add(other.dryerZone3Temperature_); + dryerAirFlow_.Add(other.dryerAirFlow_); + winderTension_.Add(other.winderTension_); + dispensersMotorsFrequency_.Add(other.dispensersMotorsFrequency_); + dispensersAngularEncoders_.Add(other.dispensersAngularEncoders_); + dispensersLinearPositions_.Add(other.dispensersLinearPositions_); + dispensersPressure_.Add(other.dispensersPressure_); + midTankPressure_.Add(other.midTankPressure_); + filterDeltaPressure_.Add(other.filterDeltaPressure_); + chillerTemperature_.Add(other.chillerTemperature_); + dispenser1MotorFrequency_.Add(other.dispenser1MotorFrequency_); + dispenser2MotorFrequency_.Add(other.dispenser2MotorFrequency_); + dispenser3MotorFrequency_.Add(other.dispenser3MotorFrequency_); + dispenser4MotorFrequency_.Add(other.dispenser4MotorFrequency_); + dispenser5MotorFrequency_.Add(other.dispenser5MotorFrequency_); + dispenser6MotorFrequency_.Add(other.dispenser6MotorFrequency_); + dispenser7MotorFrequency_.Add(other.dispenser7MotorFrequency_); + dispenser8MotorFrequency_.Add(other.dispenser8MotorFrequency_); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + case 10: + case 9: { + dancer1Angle_.AddEntriesFrom(input, _repeated_dancer1Angle_codec); + break; + } + case 18: + case 17: { + dancer2Angle_.AddEntriesFrom(input, _repeated_dancer2Angle_codec); + break; + } + case 26: + case 25: { + dancer3Angle_.AddEntriesFrom(input, _repeated_dancer3Angle_codec); + break; + } + case 34: + case 33: { + feederMotorFrequency_.AddEntriesFrom(input, _repeated_feederMotorFrequency_codec); + break; + } + case 42: + case 41: { + dryerMotor_.AddEntriesFrom(input, _repeated_dryerMotor_codec); + break; + } + case 50: + case 49: { + pollerMotor_.AddEntriesFrom(input, _repeated_pollerMotor_codec); + break; + } + case 58: + case 57: { + winderMotor_.AddEntriesFrom(input, _repeated_winderMotor_codec); + break; + } + case 66: + case 65: { + screwMotor_.AddEntriesFrom(input, _repeated_screwMotor_codec); + break; + } + case 74: + case 73: { + threadSpeed_.AddEntriesFrom(input, _repeated_threadSpeed_codec); + break; + } + case 82: + case 81: { + mixerTemperature_.AddEntriesFrom(input, _repeated_mixerTemperature_codec); + break; + } + case 90: + case 89: { + headZone1Temperature_.AddEntriesFrom(input, _repeated_headZone1Temperature_codec); + break; + } + case 98: + case 97: { + headZone2Temperature_.AddEntriesFrom(input, _repeated_headZone2Temperature_codec); + break; + } + case 106: + case 105: { + headZone3Temperature_.AddEntriesFrom(input, _repeated_headZone3Temperature_codec); + break; + } + case 114: + case 113: { + headAirFlow_.AddEntriesFrom(input, _repeated_headAirFlow_codec); + break; + } + case 122: + case 121: { + feederTension_.AddEntriesFrom(input, _repeated_feederTension_codec); + break; + } + case 130: + case 129: { + pullerTension_.AddEntriesFrom(input, _repeated_pullerTension_codec); + break; + } + case 138: + case 137: { + dryerZone1Temperature_.AddEntriesFrom(input, _repeated_dryerZone1Temperature_codec); + break; + } + case 146: + case 145: { + dryerZone2Temperature_.AddEntriesFrom(input, _repeated_dryerZone2Temperature_codec); + break; + } + case 154: + case 153: { + dryerZone3Temperature_.AddEntriesFrom(input, _repeated_dryerZone3Temperature_codec); + break; + } + case 162: + case 161: { + dryerAirFlow_.AddEntriesFrom(input, _repeated_dryerAirFlow_codec); + break; + } + case 170: + case 169: { + winderTension_.AddEntriesFrom(input, _repeated_winderTension_codec); + break; + } + case 178: { + dispensersMotorsFrequency_.AddEntriesFrom(input, _repeated_dispensersMotorsFrequency_codec); + break; + } + case 186: { + dispensersAngularEncoders_.AddEntriesFrom(input, _repeated_dispensersAngularEncoders_codec); + break; + } + case 194: { + dispensersLinearPositions_.AddEntriesFrom(input, _repeated_dispensersLinearPositions_codec); + break; + } + case 202: { + dispensersPressure_.AddEntriesFrom(input, _repeated_dispensersPressure_codec); + break; + } + case 210: + case 209: { + midTankPressure_.AddEntriesFrom(input, _repeated_midTankPressure_codec); + break; + } + case 218: + case 217: { + filterDeltaPressure_.AddEntriesFrom(input, _repeated_filterDeltaPressure_codec); + break; + } + case 226: + case 225: { + chillerTemperature_.AddEntriesFrom(input, _repeated_chillerTemperature_codec); + break; + } + case 234: + case 233: { + dispenser1MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser1MotorFrequency_codec); + break; + } + case 242: + case 241: { + dispenser2MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser2MotorFrequency_codec); + break; + } + case 250: + case 249: { + dispenser3MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser3MotorFrequency_codec); + break; + } + case 258: + case 257: { + dispenser4MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser4MotorFrequency_codec); + break; + } + case 266: + case 265: { + dispenser5MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser5MotorFrequency_codec); + break; + } + case 274: + case 273: { + dispenser6MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser6MotorFrequency_codec); + break; + } + case 282: + case 281: { + dispenser7MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser7MotorFrequency_codec); + break; + } + case 290: + case 289: { + dispenser8MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser8MotorFrequency_codec); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/PushDiagnosticsResponse.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/PushDiagnosticsResponse.cs index d08eb25dc..ed66a97c4 100644 --- a/Software/Visual_Studio/Tango.PMR/Diagnostics/PushDiagnosticsResponse.cs +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/PushDiagnosticsResponse.cs @@ -23,25 +23,19 @@ namespace Tango.PMR.Diagnostics { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "Ch1QdXNoRGlhZ25vc3RpY3NSZXNwb25zZS5wcm90bxIVVGFuZ28uUE1SLkRp", - "YWdub3N0aWNzGhFEb3VibGVBcnJheS5wcm90bxoQRGlnaXRhbFBpbi5wcm90", - "byKqBAoXUHVzaERpYWdub3N0aWNzUmVzcG9uc2USFAoMRGFuY2VyMUFuZ2xl", - "GAEgAygBEhQKDERhbmNlcjJBbmdsZRgCIAMoARIUCgxEYW5jZXIzQW5nbGUY", - "AyADKAESRQoZRGlzcGVuc2Vyc01vdG9yc0ZyZXF1ZW5jeRgEIAMoCzIiLlRh", - "bmdvLlBNUi5EaWFnbm9zdGljcy5Eb3VibGVBcnJheRIgChhEaXNwZW5zZXIx", - "TW90b3JGcmVxdWVuY3kYBSADKAESIAoYRGlzcGVuc2VyMk1vdG9yRnJlcXVl", - "bmN5GAYgAygBEiAKGERpc3BlbnNlcjNNb3RvckZyZXF1ZW5jeRgHIAMoARIg", - "ChhEaXNwZW5zZXI0TW90b3JGcmVxdWVuY3kYCCADKAESIAoYRGlzcGVuc2Vy", - "NU1vdG9yRnJlcXVlbmN5GAkgAygBEiAKGERpc3BlbnNlcjZNb3RvckZyZXF1", - "ZW5jeRgKIAMoARIgChhEaXNwZW5zZXI3TW90b3JGcmVxdWVuY3kYCyADKAES", - "IAoYRGlzcGVuc2VyOE1vdG9yRnJlcXVlbmN5GAwgAygBEjYKC0RpZ2l0YWxQ", - "aW5zGA0gAygLMiEuVGFuZ28uUE1SLkRpYWdub3N0aWNzLkRpZ2l0YWxQaW4S", - "DwoHVmVyc2lvbhgOIAEoCRITCgtWZXJzaW9uTmFtZRgPIAEoCRIYChBWZXJz", - "aW9uQnVpbGREYXRlGBAgASgJQiEKH2NvbS50d2luZS50YW5nby5wbXIuZGlh", - "Z25vc3RpY3NiBnByb3RvMw==")); + "YWdub3N0aWNzGhBEaWdpdGFsUGluLnByb3RvGhlWYWx1ZUNvbXBvbmVudFN0", + "YXRlLnByb3RvGhlEaWFnbm9zdGljc01vbml0b3JzLnByb3RvIpUCChdQdXNo", + "RGlhZ25vc3RpY3NSZXNwb25zZRI8CghNb25pdG9ycxgBIAEoCzIqLlRhbmdv", + "LlBNUi5EaWFnbm9zdGljcy5EaWFnbm9zdGljc01vbml0b3JzEjYKC0RpZ2l0", + "YWxQaW5zGAIgAygLMiEuVGFuZ28uUE1SLkRpYWdub3N0aWNzLkRpZ2l0YWxQ", + "aW4SRAoQQ29tcG9uZW50c1N0YXRlcxgDIAMoCzIqLlRhbmdvLlBNUi5EaWFn", + "bm9zdGljcy5WYWx1ZUNvbXBvbmVudFN0YXRlEg8KB1ZlcnNpb24YBCABKAkS", + "EwoLVmVyc2lvbk5hbWUYBSABKAkSGAoQVmVyc2lvbkJ1aWxkRGF0ZRgGIAEo", + "CUIhCh9jb20udHdpbmUudGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DoubleArrayReflection.Descriptor, global::Tango.PMR.Diagnostics.DigitalPinReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.DigitalPinReflection.Descriptor, global::Tango.PMR.Diagnostics.ValueComponentStateReflection.Descriptor, global::Tango.PMR.Diagnostics.DiagnosticsMonitorsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.PushDiagnosticsResponse), global::Tango.PMR.Diagnostics.PushDiagnosticsResponse.Parser, new[]{ "Dancer1Angle", "Dancer2Angle", "Dancer3Angle", "DispensersMotorsFrequency", "Dispenser1MotorFrequency", "Dispenser2MotorFrequency", "Dispenser3MotorFrequency", "Dispenser4MotorFrequency", "Dispenser5MotorFrequency", "Dispenser6MotorFrequency", "Dispenser7MotorFrequency", "Dispenser8MotorFrequency", "DigitalPins", "Version", "VersionName", "VersionBuildDate" }, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.PushDiagnosticsResponse), global::Tango.PMR.Diagnostics.PushDiagnosticsResponse.Parser, new[]{ "Monitors", "DigitalPins", "ComponentsStates", "Version", "VersionName", "VersionBuildDate" }, null, null, null) })); } #endregion @@ -72,19 +66,9 @@ namespace Tango.PMR.Diagnostics { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public PushDiagnosticsResponse(PushDiagnosticsResponse other) : this() { - dancer1Angle_ = other.dancer1Angle_.Clone(); - dancer2Angle_ = other.dancer2Angle_.Clone(); - dancer3Angle_ = other.dancer3Angle_.Clone(); - dispensersMotorsFrequency_ = other.dispensersMotorsFrequency_.Clone(); - dispenser1MotorFrequency_ = other.dispenser1MotorFrequency_.Clone(); - dispenser2MotorFrequency_ = other.dispenser2MotorFrequency_.Clone(); - dispenser3MotorFrequency_ = other.dispenser3MotorFrequency_.Clone(); - dispenser4MotorFrequency_ = other.dispenser4MotorFrequency_.Clone(); - dispenser5MotorFrequency_ = other.dispenser5MotorFrequency_.Clone(); - dispenser6MotorFrequency_ = other.dispenser6MotorFrequency_.Clone(); - dispenser7MotorFrequency_ = other.dispenser7MotorFrequency_.Clone(); - dispenser8MotorFrequency_ = other.dispenser8MotorFrequency_.Clone(); + Monitors = other.monitors_ != null ? other.Monitors.Clone() : null; digitalPins_ = other.digitalPins_.Clone(); + componentsStates_ = other.componentsStates_.Clone(); version_ = other.version_; versionName_ = other.versionName_; versionBuildDate_ = other.versionBuildDate_; @@ -95,136 +79,24 @@ namespace Tango.PMR.Diagnostics { return new PushDiagnosticsResponse(this); } - /// Field number for the "Dancer1Angle" field. - public const int Dancer1AngleFieldNumber = 1; - private static readonly pb::FieldCodec _repeated_dancer1Angle_codec - = pb::FieldCodec.ForDouble(10); - private readonly pbc::RepeatedField dancer1Angle_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dancer1Angle { - get { return dancer1Angle_; } - } - - /// Field number for the "Dancer2Angle" field. - public const int Dancer2AngleFieldNumber = 2; - private static readonly pb::FieldCodec _repeated_dancer2Angle_codec - = pb::FieldCodec.ForDouble(18); - private readonly pbc::RepeatedField dancer2Angle_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dancer2Angle { - get { return dancer2Angle_; } - } - - /// Field number for the "Dancer3Angle" field. - public const int Dancer3AngleFieldNumber = 3; - private static readonly pb::FieldCodec _repeated_dancer3Angle_codec - = pb::FieldCodec.ForDouble(26); - private readonly pbc::RepeatedField dancer3Angle_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dancer3Angle { - get { return dancer3Angle_; } - } - - /// Field number for the "DispensersMotorsFrequency" field. - public const int DispensersMotorsFrequencyFieldNumber = 4; - private static readonly pb::FieldCodec _repeated_dispensersMotorsFrequency_codec - = pb::FieldCodec.ForMessage(34, global::Tango.PMR.Diagnostics.DoubleArray.Parser); - private readonly pbc::RepeatedField dispensersMotorsFrequency_ = new pbc::RepeatedField(); + /// Field number for the "Monitors" field. + public const int MonitorsFieldNumber = 1; + private global::Tango.PMR.Diagnostics.DiagnosticsMonitors monitors_; /// - ///Dispensers Motors Frequency Multi + ///Monitors /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField DispensersMotorsFrequency { - get { return dispensersMotorsFrequency_; } - } - - /// Field number for the "Dispenser1MotorFrequency" field. - public const int Dispenser1MotorFrequencyFieldNumber = 5; - private static readonly pb::FieldCodec _repeated_dispenser1MotorFrequency_codec - = pb::FieldCodec.ForDouble(42); - private readonly pbc::RepeatedField dispenser1MotorFrequency_ = new pbc::RepeatedField(); - /// - ///Dispensers Motors Frequency Singles - /// - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser1MotorFrequency { - get { return dispenser1MotorFrequency_; } - } - - /// Field number for the "Dispenser2MotorFrequency" field. - public const int Dispenser2MotorFrequencyFieldNumber = 6; - private static readonly pb::FieldCodec _repeated_dispenser2MotorFrequency_codec - = pb::FieldCodec.ForDouble(50); - private readonly pbc::RepeatedField dispenser2MotorFrequency_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser2MotorFrequency { - get { return dispenser2MotorFrequency_; } - } - - /// Field number for the "Dispenser3MotorFrequency" field. - public const int Dispenser3MotorFrequencyFieldNumber = 7; - private static readonly pb::FieldCodec _repeated_dispenser3MotorFrequency_codec - = pb::FieldCodec.ForDouble(58); - private readonly pbc::RepeatedField dispenser3MotorFrequency_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser3MotorFrequency { - get { return dispenser3MotorFrequency_; } - } - - /// Field number for the "Dispenser4MotorFrequency" field. - public const int Dispenser4MotorFrequencyFieldNumber = 8; - private static readonly pb::FieldCodec _repeated_dispenser4MotorFrequency_codec - = pb::FieldCodec.ForDouble(66); - private readonly pbc::RepeatedField dispenser4MotorFrequency_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser4MotorFrequency { - get { return dispenser4MotorFrequency_; } - } - - /// Field number for the "Dispenser5MotorFrequency" field. - public const int Dispenser5MotorFrequencyFieldNumber = 9; - private static readonly pb::FieldCodec _repeated_dispenser5MotorFrequency_codec - = pb::FieldCodec.ForDouble(74); - private readonly pbc::RepeatedField dispenser5MotorFrequency_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser5MotorFrequency { - get { return dispenser5MotorFrequency_; } - } - - /// Field number for the "Dispenser6MotorFrequency" field. - public const int Dispenser6MotorFrequencyFieldNumber = 10; - private static readonly pb::FieldCodec _repeated_dispenser6MotorFrequency_codec - = pb::FieldCodec.ForDouble(82); - private readonly pbc::RepeatedField dispenser6MotorFrequency_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser6MotorFrequency { - get { return dispenser6MotorFrequency_; } - } - - /// Field number for the "Dispenser7MotorFrequency" field. - public const int Dispenser7MotorFrequencyFieldNumber = 11; - private static readonly pb::FieldCodec _repeated_dispenser7MotorFrequency_codec - = pb::FieldCodec.ForDouble(90); - private readonly pbc::RepeatedField dispenser7MotorFrequency_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser7MotorFrequency { - get { return dispenser7MotorFrequency_; } - } - - /// Field number for the "Dispenser8MotorFrequency" field. - public const int Dispenser8MotorFrequencyFieldNumber = 12; - private static readonly pb::FieldCodec _repeated_dispenser8MotorFrequency_codec - = pb::FieldCodec.ForDouble(98); - private readonly pbc::RepeatedField dispenser8MotorFrequency_ = new pbc::RepeatedField(); - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - public pbc::RepeatedField Dispenser8MotorFrequency { - get { return dispenser8MotorFrequency_; } + public global::Tango.PMR.Diagnostics.DiagnosticsMonitors Monitors { + get { return monitors_; } + set { + monitors_ = value; + } } /// Field number for the "DigitalPins" field. - public const int DigitalPinsFieldNumber = 13; + public const int DigitalPinsFieldNumber = 2; private static readonly pb::FieldCodec _repeated_digitalPins_codec - = pb::FieldCodec.ForMessage(106, global::Tango.PMR.Diagnostics.DigitalPin.Parser); + = pb::FieldCodec.ForMessage(18, global::Tango.PMR.Diagnostics.DigitalPin.Parser); private readonly pbc::RepeatedField digitalPins_ = new pbc::RepeatedField(); /// ///Digital Pins States @@ -234,8 +106,21 @@ namespace Tango.PMR.Diagnostics { get { return digitalPins_; } } + /// Field number for the "ComponentsStates" field. + public const int ComponentsStatesFieldNumber = 3; + private static readonly pb::FieldCodec _repeated_componentsStates_codec + = pb::FieldCodec.ForMessage(26, global::Tango.PMR.Diagnostics.ValueComponentState.Parser); + private readonly pbc::RepeatedField componentsStates_ = new pbc::RepeatedField(); + /// + ///Value Components Effective Values + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField ComponentsStates { + get { return componentsStates_; } + } + /// Field number for the "Version" field. - public const int VersionFieldNumber = 14; + public const int VersionFieldNumber = 4; private string version_ = ""; /// ///Software Information @@ -249,7 +134,7 @@ namespace Tango.PMR.Diagnostics { } /// Field number for the "VersionName" field. - public const int VersionNameFieldNumber = 15; + public const int VersionNameFieldNumber = 5; private string versionName_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string VersionName { @@ -260,7 +145,7 @@ namespace Tango.PMR.Diagnostics { } /// Field number for the "VersionBuildDate" field. - public const int VersionBuildDateFieldNumber = 16; + public const int VersionBuildDateFieldNumber = 6; private string versionBuildDate_ = ""; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string VersionBuildDate { @@ -283,19 +168,9 @@ namespace Tango.PMR.Diagnostics { if (ReferenceEquals(other, this)) { return true; } - if(!dancer1Angle_.Equals(other.dancer1Angle_)) return false; - if(!dancer2Angle_.Equals(other.dancer2Angle_)) return false; - if(!dancer3Angle_.Equals(other.dancer3Angle_)) return false; - if(!dispensersMotorsFrequency_.Equals(other.dispensersMotorsFrequency_)) return false; - if(!dispenser1MotorFrequency_.Equals(other.dispenser1MotorFrequency_)) return false; - if(!dispenser2MotorFrequency_.Equals(other.dispenser2MotorFrequency_)) return false; - if(!dispenser3MotorFrequency_.Equals(other.dispenser3MotorFrequency_)) return false; - if(!dispenser4MotorFrequency_.Equals(other.dispenser4MotorFrequency_)) return false; - if(!dispenser5MotorFrequency_.Equals(other.dispenser5MotorFrequency_)) return false; - if(!dispenser6MotorFrequency_.Equals(other.dispenser6MotorFrequency_)) return false; - if(!dispenser7MotorFrequency_.Equals(other.dispenser7MotorFrequency_)) return false; - if(!dispenser8MotorFrequency_.Equals(other.dispenser8MotorFrequency_)) return false; + if (!object.Equals(Monitors, other.Monitors)) return false; if(!digitalPins_.Equals(other.digitalPins_)) return false; + if(!componentsStates_.Equals(other.componentsStates_)) return false; if (Version != other.Version) return false; if (VersionName != other.VersionName) return false; if (VersionBuildDate != other.VersionBuildDate) return false; @@ -305,19 +180,9 @@ namespace Tango.PMR.Diagnostics { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override int GetHashCode() { int hash = 1; - hash ^= dancer1Angle_.GetHashCode(); - hash ^= dancer2Angle_.GetHashCode(); - hash ^= dancer3Angle_.GetHashCode(); - hash ^= dispensersMotorsFrequency_.GetHashCode(); - hash ^= dispenser1MotorFrequency_.GetHashCode(); - hash ^= dispenser2MotorFrequency_.GetHashCode(); - hash ^= dispenser3MotorFrequency_.GetHashCode(); - hash ^= dispenser4MotorFrequency_.GetHashCode(); - hash ^= dispenser5MotorFrequency_.GetHashCode(); - hash ^= dispenser6MotorFrequency_.GetHashCode(); - hash ^= dispenser7MotorFrequency_.GetHashCode(); - hash ^= dispenser8MotorFrequency_.GetHashCode(); + if (monitors_ != null) hash ^= Monitors.GetHashCode(); hash ^= digitalPins_.GetHashCode(); + hash ^= componentsStates_.GetHashCode(); if (Version.Length != 0) hash ^= Version.GetHashCode(); if (VersionName.Length != 0) hash ^= VersionName.GetHashCode(); if (VersionBuildDate.Length != 0) hash ^= VersionBuildDate.GetHashCode(); @@ -331,29 +196,22 @@ namespace Tango.PMR.Diagnostics { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { - dancer1Angle_.WriteTo(output, _repeated_dancer1Angle_codec); - dancer2Angle_.WriteTo(output, _repeated_dancer2Angle_codec); - dancer3Angle_.WriteTo(output, _repeated_dancer3Angle_codec); - dispensersMotorsFrequency_.WriteTo(output, _repeated_dispensersMotorsFrequency_codec); - dispenser1MotorFrequency_.WriteTo(output, _repeated_dispenser1MotorFrequency_codec); - dispenser2MotorFrequency_.WriteTo(output, _repeated_dispenser2MotorFrequency_codec); - dispenser3MotorFrequency_.WriteTo(output, _repeated_dispenser3MotorFrequency_codec); - dispenser4MotorFrequency_.WriteTo(output, _repeated_dispenser4MotorFrequency_codec); - dispenser5MotorFrequency_.WriteTo(output, _repeated_dispenser5MotorFrequency_codec); - dispenser6MotorFrequency_.WriteTo(output, _repeated_dispenser6MotorFrequency_codec); - dispenser7MotorFrequency_.WriteTo(output, _repeated_dispenser7MotorFrequency_codec); - dispenser8MotorFrequency_.WriteTo(output, _repeated_dispenser8MotorFrequency_codec); + if (monitors_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Monitors); + } digitalPins_.WriteTo(output, _repeated_digitalPins_codec); + componentsStates_.WriteTo(output, _repeated_componentsStates_codec); if (Version.Length != 0) { - output.WriteRawTag(114); + output.WriteRawTag(34); output.WriteString(Version); } if (VersionName.Length != 0) { - output.WriteRawTag(122); + output.WriteRawTag(42); output.WriteString(VersionName); } if (VersionBuildDate.Length != 0) { - output.WriteRawTag(130, 1); + output.WriteRawTag(50); output.WriteString(VersionBuildDate); } } @@ -361,19 +219,11 @@ namespace Tango.PMR.Diagnostics { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int CalculateSize() { int size = 0; - size += dancer1Angle_.CalculateSize(_repeated_dancer1Angle_codec); - size += dancer2Angle_.CalculateSize(_repeated_dancer2Angle_codec); - size += dancer3Angle_.CalculateSize(_repeated_dancer3Angle_codec); - size += dispensersMotorsFrequency_.CalculateSize(_repeated_dispensersMotorsFrequency_codec); - size += dispenser1MotorFrequency_.CalculateSize(_repeated_dispenser1MotorFrequency_codec); - size += dispenser2MotorFrequency_.CalculateSize(_repeated_dispenser2MotorFrequency_codec); - size += dispenser3MotorFrequency_.CalculateSize(_repeated_dispenser3MotorFrequency_codec); - size += dispenser4MotorFrequency_.CalculateSize(_repeated_dispenser4MotorFrequency_codec); - size += dispenser5MotorFrequency_.CalculateSize(_repeated_dispenser5MotorFrequency_codec); - size += dispenser6MotorFrequency_.CalculateSize(_repeated_dispenser6MotorFrequency_codec); - size += dispenser7MotorFrequency_.CalculateSize(_repeated_dispenser7MotorFrequency_codec); - size += dispenser8MotorFrequency_.CalculateSize(_repeated_dispenser8MotorFrequency_codec); + if (monitors_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Monitors); + } size += digitalPins_.CalculateSize(_repeated_digitalPins_codec); + size += componentsStates_.CalculateSize(_repeated_componentsStates_codec); if (Version.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Version); } @@ -381,7 +231,7 @@ namespace Tango.PMR.Diagnostics { size += 1 + pb::CodedOutputStream.ComputeStringSize(VersionName); } if (VersionBuildDate.Length != 0) { - size += 2 + pb::CodedOutputStream.ComputeStringSize(VersionBuildDate); + size += 1 + pb::CodedOutputStream.ComputeStringSize(VersionBuildDate); } return size; } @@ -391,19 +241,14 @@ namespace Tango.PMR.Diagnostics { if (other == null) { return; } - dancer1Angle_.Add(other.dancer1Angle_); - dancer2Angle_.Add(other.dancer2Angle_); - dancer3Angle_.Add(other.dancer3Angle_); - dispensersMotorsFrequency_.Add(other.dispensersMotorsFrequency_); - dispenser1MotorFrequency_.Add(other.dispenser1MotorFrequency_); - dispenser2MotorFrequency_.Add(other.dispenser2MotorFrequency_); - dispenser3MotorFrequency_.Add(other.dispenser3MotorFrequency_); - dispenser4MotorFrequency_.Add(other.dispenser4MotorFrequency_); - dispenser5MotorFrequency_.Add(other.dispenser5MotorFrequency_); - dispenser6MotorFrequency_.Add(other.dispenser6MotorFrequency_); - dispenser7MotorFrequency_.Add(other.dispenser7MotorFrequency_); - dispenser8MotorFrequency_.Add(other.dispenser8MotorFrequency_); + if (other.monitors_ != null) { + if (monitors_ == null) { + monitors_ = new global::Tango.PMR.Diagnostics.DiagnosticsMonitors(); + } + Monitors.MergeFrom(other.Monitors); + } digitalPins_.Add(other.digitalPins_); + componentsStates_.Add(other.componentsStates_); if (other.Version.Length != 0) { Version = other.Version; } @@ -423,78 +268,30 @@ namespace Tango.PMR.Diagnostics { default: input.SkipLastField(); break; - case 10: - case 9: { - dancer1Angle_.AddEntriesFrom(input, _repeated_dancer1Angle_codec); + case 10: { + if (monitors_ == null) { + monitors_ = new global::Tango.PMR.Diagnostics.DiagnosticsMonitors(); + } + input.ReadMessage(monitors_); break; } - case 18: - case 17: { - dancer2Angle_.AddEntriesFrom(input, _repeated_dancer2Angle_codec); + case 18: { + digitalPins_.AddEntriesFrom(input, _repeated_digitalPins_codec); break; } - case 26: - case 25: { - dancer3Angle_.AddEntriesFrom(input, _repeated_dancer3Angle_codec); + case 26: { + componentsStates_.AddEntriesFrom(input, _repeated_componentsStates_codec); break; } case 34: { - dispensersMotorsFrequency_.AddEntriesFrom(input, _repeated_dispensersMotorsFrequency_codec); - break; - } - case 42: - case 41: { - dispenser1MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser1MotorFrequency_codec); - break; - } - case 50: - case 49: { - dispenser2MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser2MotorFrequency_codec); - break; - } - case 58: - case 57: { - dispenser3MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser3MotorFrequency_codec); - break; - } - case 66: - case 65: { - dispenser4MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser4MotorFrequency_codec); - break; - } - case 74: - case 73: { - dispenser5MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser5MotorFrequency_codec); - break; - } - case 82: - case 81: { - dispenser6MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser6MotorFrequency_codec); - break; - } - case 90: - case 89: { - dispenser7MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser7MotorFrequency_codec); - break; - } - case 98: - case 97: { - dispenser8MotorFrequency_.AddEntriesFrom(input, _repeated_dispenser8MotorFrequency_codec); - break; - } - case 106: { - digitalPins_.AddEntriesFrom(input, _repeated_digitalPins_codec); - break; - } - case 114: { Version = input.ReadString(); break; } - case 122: { + case 42: { VersionName = input.ReadString(); break; } - case 130: { + case 50: { VersionBuildDate = input.ReadString(); break; } diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueRequest.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueRequest.cs new file mode 100644 index 000000000..a7149ed48 --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueRequest.cs @@ -0,0 +1,189 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SetComponentValueRequest.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Diagnostics { + + /// Holder for reflection information generated from SetComponentValueRequest.proto + public static partial class SetComponentValueRequestReflection { + + #region Descriptor + /// File descriptor for SetComponentValueRequest.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static SetComponentValueRequestReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Ch5TZXRDb21wb25lbnRWYWx1ZVJlcXVlc3QucHJvdG8SFVRhbmdvLlBNUi5E", + "aWFnbm9zdGljcxoUVmFsdWVDb21wb25lbnQucHJvdG8iYwoYU2V0Q29tcG9u", + "ZW50VmFsdWVSZXF1ZXN0EjgKCUNvbXBvbmVudBgBIAEoDjIlLlRhbmdvLlBN", + "Ui5EaWFnbm9zdGljcy5WYWx1ZUNvbXBvbmVudBINCgVWYWx1ZRgCIAEoAUIh", + "Ch9jb20udHdpbmUudGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.ValueComponentReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.SetComponentValueRequest), global::Tango.PMR.Diagnostics.SetComponentValueRequest.Parser, new[]{ "Component", "Value" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class SetComponentValueRequest : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SetComponentValueRequest()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Diagnostics.SetComponentValueRequestReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SetComponentValueRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SetComponentValueRequest(SetComponentValueRequest other) : this() { + component_ = other.component_; + value_ = other.value_; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SetComponentValueRequest Clone() { + return new SetComponentValueRequest(this); + } + + /// Field number for the "Component" field. + public const int ComponentFieldNumber = 1; + private global::Tango.PMR.Diagnostics.ValueComponent component_ = 0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tango.PMR.Diagnostics.ValueComponent Component { + get { return component_; } + set { + component_ = value; + } + } + + /// Field number for the "Value" field. + public const int ValueFieldNumber = 2; + private double value_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double Value { + get { return value_; } + set { + value_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as SetComponentValueRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(SetComponentValueRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Component != other.Component) return false; + if (Value != other.Value) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Component != 0) hash ^= Component.GetHashCode(); + if (Value != 0D) hash ^= Value.GetHashCode(); + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Component != 0) { + output.WriteRawTag(8); + output.WriteEnum((int) Component); + } + if (Value != 0D) { + output.WriteRawTag(17); + output.WriteDouble(Value); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Component != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Component); + } + if (Value != 0D) { + size += 1 + 8; + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(SetComponentValueRequest other) { + if (other == null) { + return; + } + if (other.Component != 0) { + Component = other.Component; + } + if (other.Value != 0D) { + Value = other.Value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + case 8: { + component_ = (global::Tango.PMR.Diagnostics.ValueComponent) input.ReadEnum(); + break; + } + case 17: { + Value = input.ReadDouble(); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueResponse.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueResponse.cs new file mode 100644 index 000000000..0c498dccf --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/SetComponentValueResponse.cs @@ -0,0 +1,131 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SetComponentValueResponse.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Diagnostics { + + /// Holder for reflection information generated from SetComponentValueResponse.proto + public static partial class SetComponentValueResponseReflection { + + #region Descriptor + /// File descriptor for SetComponentValueResponse.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static SetComponentValueResponseReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "Ch9TZXRDb21wb25lbnRWYWx1ZVJlc3BvbnNlLnByb3RvEhVUYW5nby5QTVIu", + "RGlhZ25vc3RpY3MiGwoZU2V0Q29tcG9uZW50VmFsdWVSZXNwb25zZUIhCh9j", + "b20udHdpbmUudGFuZ28ucG1yLmRpYWdub3N0aWNzYgZwcm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.SetComponentValueResponse), global::Tango.PMR.Diagnostics.SetComponentValueResponse.Parser, null, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class SetComponentValueResponse : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SetComponentValueResponse()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Diagnostics.SetComponentValueResponseReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SetComponentValueResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SetComponentValueResponse(SetComponentValueResponse other) : this() { + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SetComponentValueResponse Clone() { + return new SetComponentValueResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as SetComponentValueResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(SetComponentValueResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(SetComponentValueResponse other) { + if (other == null) { + return; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponent.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponent.cs new file mode 100644 index 000000000..88ba622ee --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponent.cs @@ -0,0 +1,52 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ValueComponent.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Diagnostics { + + /// Holder for reflection information generated from ValueComponent.proto + public static partial class ValueComponentReflection { + + #region Descriptor + /// File descriptor for ValueComponent.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ValueComponentReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChRWYWx1ZUNvbXBvbmVudC5wcm90bxIVVGFuZ28uUE1SLkRpYWdub3N0aWNz", + "KjIKDlZhbHVlQ29tcG9uZW50Eg8KC0hlYXRlcjFUZW1wEAASDwoLSGVhdGVy", + "MlRlbXAQAUIhCh9jb20udHdpbmUudGFuZ28ucG1yLmRpYWdub3N0aWNzYgZw", + "cm90bzM=")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Diagnostics.ValueComponent), }, null)); + } + #endregion + + } + #region Enums + public enum ValueComponent { + /// + ///Heater 1 Temperature (Min = 0, Max = 100) + /// + [pbr::OriginalName("Heater1Temp")] Heater1Temp = 0, + /// + ///Heater 2 Temperature (Min = 0, Max = 100) + /// + [pbr::OriginalName("Heater2Temp")] Heater2Temp = 1, + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponentState.cs b/Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponentState.cs new file mode 100644 index 000000000..a48590aec --- /dev/null +++ b/Software/Visual_Studio/Tango.PMR/Diagnostics/ValueComponentState.cs @@ -0,0 +1,189 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ValueComponentState.proto +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace Tango.PMR.Diagnostics { + + /// Holder for reflection information generated from ValueComponentState.proto + public static partial class ValueComponentStateReflection { + + #region Descriptor + /// File descriptor for ValueComponentState.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ValueComponentStateReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChlWYWx1ZUNvbXBvbmVudFN0YXRlLnByb3RvEhVUYW5nby5QTVIuRGlhZ25v", + "c3RpY3MaFFZhbHVlQ29tcG9uZW50LnByb3RvIl4KE1ZhbHVlQ29tcG9uZW50", + "U3RhdGUSOAoJQ29tcG9uZW50GAEgASgOMiUuVGFuZ28uUE1SLkRpYWdub3N0", + "aWNzLlZhbHVlQ29tcG9uZW50Eg0KBVZhbHVlGAIgASgBQiEKH2NvbS50d2lu", + "ZS50YW5nby5wbXIuZGlhZ25vc3RpY3NiBnByb3RvMw==")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::Tango.PMR.Diagnostics.ValueComponentReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::Tango.PMR.Diagnostics.ValueComponentState), global::Tango.PMR.Diagnostics.ValueComponentState.Parser, new[]{ "Component", "Value" }, null, null, null) + })); + } + #endregion + + } + #region Messages + public sealed partial class ValueComponentState : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ValueComponentState()); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tango.PMR.Diagnostics.ValueComponentStateReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ValueComponentState() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ValueComponentState(ValueComponentState other) : this() { + component_ = other.component_; + value_ = other.value_; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public ValueComponentState Clone() { + return new ValueComponentState(this); + } + + /// Field number for the "Component" field. + public const int ComponentFieldNumber = 1; + private global::Tango.PMR.Diagnostics.ValueComponent component_ = 0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tango.PMR.Diagnostics.ValueComponent Component { + get { return component_; } + set { + component_ = value; + } + } + + /// Field number for the "Value" field. + public const int ValueFieldNumber = 2; + private double value_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public double Value { + get { return value_; } + set { + value_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as ValueComponentState); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(ValueComponentState other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Component != other.Component) return false; + if (Value != other.Value) return false; + return true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Component != 0) hash ^= Component.GetHashCode(); + if (Value != 0D) hash ^= Value.GetHashCode(); + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + if (Component != 0) { + output.WriteRawTag(8); + output.WriteEnum((int) Component); + } + if (Value != 0D) { + output.WriteRawTag(17); + output.WriteDouble(Value); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Component != 0) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Component); + } + if (Value != 0D) { + size += 1 + 8; + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(ValueComponentState other) { + if (other == null) { + return; + } + if (other.Component != 0) { + Component = other.Component; + } + if (other.Value != 0D) { + Value = other.Value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + input.SkipLastField(); + break; + case 8: { + component_ = (global::Tango.PMR.Diagnostics.ValueComponent) input.ReadEnum(); + break; + } + case 17: { + Value = input.ReadDouble(); + break; + } + } + } + } + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Software/Visual_Studio/Tango.PMR/ExtensionMethods.cs b/Software/Visual_Studio/Tango.PMR/ExtensionMethods.cs index 40bd0724c..6f9e53bf5 100644 --- a/Software/Visual_Studio/Tango.PMR/ExtensionMethods.cs +++ b/Software/Visual_Studio/Tango.PMR/ExtensionMethods.cs @@ -13,7 +13,7 @@ namespace Tango.PMR /// /// Contains PMR extension methods. /// - public static class ExtensionMethods + public static class ExtensionMethods { /// /// Gets the protobuf attribute value from the message type. diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareDancerType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareDancerType.cs index a314c8996..f9273789e 100644 --- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareDancerType.cs +++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareDancerType.cs @@ -35,8 +35,17 @@ namespace Tango.PMR.Hardware { } #region Enums public enum HardwareDancerType { + /// + ///Left Dancer + /// [pbr::OriginalName("LeftDancer")] LeftDancer = 0, + /// + ///Middle Dancer + /// [pbr::OriginalName("MiddleDancer")] MiddleDancer = 1, + /// + ///Right Dancer + /// [pbr::OriginalName("RightDancer")] RightDancer = 2, } diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs index 49aa1d688..c19e8b58c 100644 --- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs +++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareMotorType.cs @@ -35,9 +35,21 @@ namespace Tango.PMR.Hardware { } #region Enums public enum HardwareMotorType { + /// + ///Winder Motor + /// [pbr::OriginalName("WinderMotor")] WinderMotor = 0, + /// + ///Feeder Motor + /// [pbr::OriginalName("FeederMotor")] FeederMotor = 1, + /// + ///Dryer Motor + /// [pbr::OriginalName("DryerMotor")] DryerMotor = 2, + /// + ///Pooler Motor + /// [pbr::OriginalName("PoolerMotor")] PoolerMotor = 3, } diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs index 1ef856a75..fe6f6ab97 100644 --- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs +++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwarePidControlType.cs @@ -40,19 +40,61 @@ namespace Tango.PMR.Hardware { } #region Enums public enum HardwarePidControlType { + /// + ///Dryer Heater 1000w + /// [pbr::OriginalName("DryerHeater1000w")] DryerHeater1000W = 0, + /// + ///Dryer Heater 200w 1 + /// [pbr::OriginalName("DryerHeater200w1")] DryerHeater200W1 = 1, + /// + ///Dryer Heater 200w 2 + /// [pbr::OriginalName("DryerHeater200w2")] DryerHeater200W2 = 2, + /// + ///Head Heater Zone 1 + /// [pbr::OriginalName("HeadHeaterZ1")] HeadHeaterZ1 = 3, + /// + ///Head Heater Zone 2 + /// [pbr::OriginalName("HeadHeaterZ2")] HeadHeaterZ2 = 4, + /// + ///Head Heater Zone 3 + /// [pbr::OriginalName("HeadHeaterZ3")] HeadHeaterZ3 = 5, + /// + ///Head Heater Zone 4 + /// [pbr::OriginalName("HeadHeaterZ4")] HeadHeaterZ4 = 6, + /// + ///Mixer Heater + /// [pbr::OriginalName("MixerHeater")] MixerHeater = 7, + /// + ///Waste Control + /// [pbr::OriginalName("WasteControl")] WasteControl = 8, + /// + ///Dryer Motor + /// [pbr::OriginalName("MotorDryer")] MotorDryer = 9, + /// + ///Feeder Motor + /// [pbr::OriginalName("MotorFeeder")] MotorFeeder = 10, + /// + ///Pooler Motor + /// [pbr::OriginalName("MotorPooler")] MotorPooler = 11, + /// + ///Winder Motor + /// [pbr::OriginalName("MotorWinder")] MotorWinder = 12, + /// + ///Dryer Heater 400 + /// [pbr::OriginalName("DryerHeater400")] DryerHeater400 = 13, } diff --git a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareWinderType.cs b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareWinderType.cs index af7e964bd..28aa18876 100644 --- a/Software/Visual_Studio/Tango.PMR/Hardware/HardwareWinderType.cs +++ b/Software/Visual_Studio/Tango.PMR/Hardware/HardwareWinderType.cs @@ -34,6 +34,9 @@ namespace Tango.PMR.Hardware { } #region Enums public enum HardwareWinderType { + /// + ///Internal Winder + /// [pbr::OriginalName("InternalWinder")] InternalWinder = 0, } diff --git a/Software/Visual_Studio/Tango.PMR/Printing/JobWindingMethod.cs b/Software/Visual_Studio/Tango.PMR/Printing/JobWindingMethod.cs index af7a23b95..5172571c1 100644 --- a/Software/Visual_Studio/Tango.PMR/Printing/JobWindingMethod.cs +++ b/Software/Visual_Studio/Tango.PMR/Printing/JobWindingMethod.cs @@ -35,7 +35,13 @@ namespace Tango.PMR.Printing { } #region Enums public enum JobWindingMethod { + /// + ///Embroidery Winding + /// [pbr::OriginalName("Embroidery")] Embroidery = 0, + /// + ///Calibration Winding + /// [pbr::OriginalName("Calibration")] Calibration = 1, } diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj index 2506e2373..4bb843619 100644 --- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj +++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj @@ -61,6 +61,7 @@ + @@ -82,12 +83,16 @@ + + + + diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index e8ae075d8..bb416646e 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -157,6 +157,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.ColorLa EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.UsersAndRoles", "MachineStudio\Modules\Tango.MachineStudio.UsersAndRoles\Tango.MachineStudio.UsersAndRoles.csproj", "{88028F14-0028-4DED-B119-19B8EE23CF32}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.CircularGauge", "Tango.CircularGauge\Tango.CircularGauge.csproj", "{6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2066,6 +2068,36 @@ Global {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|x64.Build.0 = Release|Any CPU {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|x86.ActiveCfg = Release|Any CPU {88028F14-0028-4DED-B119-19B8EE23CF32}.Release|x86.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|ARM.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|ARM64.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x64.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x64.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x86.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Debug|x86.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|Any CPU.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|ARM.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|ARM.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|ARM64.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|ARM64.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|x64.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|x64.Build.0 = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|x86.ActiveCfg = Release|Any CPU + {6EFD5895-177B-4BBB-AF52-29F4D53B3FBD}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs index 6fc87e085..b782952a9 100644 --- a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs +++ b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs @@ -36,6 +36,8 @@ namespace Tango.PMRGenerator.CLI GenerateColorLabColorSpaces(db, pmrFolder); GenerateColorLabLiquidTypes(db, pmrFolder); + GenerateDiagnosticsValueComponents(db, pmrFolder); + GenerateDiagnosticsMonitors(db, pmrFolder); } Console.WriteLine("Done"); @@ -55,6 +57,7 @@ namespace Tango.PMRGenerator.CLI { Name = field.Name.Replace(" ", ""), Value = field.Code, + Description = field.Description, }); } @@ -64,11 +67,11 @@ namespace Tango.PMRGenerator.CLI messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareMotorType.proto"); - messageFile.Properties.Add(new Property("HardwareMotorType", "HardwareMotorType")); + messageFile.Properties.Add(new ProtoProperty("HardwareMotorType", "HardwareMotorType")); foreach (var prop in typeof(HardwareMotor).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { - messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } String enumString = enumFile.GenerateCode(); @@ -92,6 +95,7 @@ namespace Tango.PMRGenerator.CLI { Name = field.Name.Replace(" ", ""), Value = field.Code, + Description = field.Description, }); } @@ -102,11 +106,11 @@ namespace Tango.PMRGenerator.CLI messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareDancerType.proto"); - messageFile.Properties.Add(new Property("HardwareDancerType", "HardwareDancerType")); + messageFile.Properties.Add(new ProtoProperty("HardwareDancerType", "HardwareDancerType")); foreach (var prop in typeof(HardwareDancer).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { - messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } String enumString = enumFile.GenerateCode(); @@ -130,6 +134,7 @@ namespace Tango.PMRGenerator.CLI { Name = field.Name.Replace(" ", ""), Value = field.Code, + Description = field.Description, }); } @@ -140,11 +145,11 @@ namespace Tango.PMRGenerator.CLI messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwarePidControlType.proto"); - messageFile.Properties.Add(new Property("HardwarePidControlType", "HardwarePidControlType")); + messageFile.Properties.Add(new ProtoProperty("HardwarePidControlType", "HardwarePidControlType")); foreach (var prop in typeof(HardwarePidControl).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { - messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } String enumString = enumFile.GenerateCode(); @@ -178,13 +183,13 @@ namespace Tango.PMRGenerator.CLI messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareDispenserType.proto"); - messageFile.Properties.Add(new Property("HardwareDispenserType", "HardwareDispenserType")); + messageFile.Properties.Add(new ProtoProperty("HardwareDispenserType", "HardwareDispenserType")); foreach (var prop in typeof(DispenserType).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { if (prop.Name != "Name" && prop.Name != "Code") { - messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } } @@ -209,6 +214,7 @@ namespace Tango.PMRGenerator.CLI { Name = field.Name.Replace(" ", ""), Value = field.Code, + Description = field.Description, }); } @@ -218,11 +224,11 @@ namespace Tango.PMRGenerator.CLI messageFile.Package = "Tango.PMR.Hardware"; messageFile.Imports.Add("HardwareWinderType.proto"); - messageFile.Properties.Add(new Property("HardwareWinderType", "HardwareWinderType")); + messageFile.Properties.Add(new ProtoProperty("HardwareWinderType", "HardwareWinderType")); foreach (var prop in typeof(HardwareWinder).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { - messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } String enumString = enumFile.GenerateCode(); @@ -268,6 +274,7 @@ namespace Tango.PMRGenerator.CLI { Name = field.Name.Replace(" ", ""), Value = field.Code, + Description = field.Description, }); } @@ -299,13 +306,13 @@ namespace Tango.PMRGenerator.CLI messageFile.Package = "Tango.PMR.Printing"; messageFile.Imports.Add("JobSpoolType.proto"); - messageFile.Properties.Add(new Property("JobSpoolType", "JobSpoolType")); + messageFile.Properties.Add(new ProtoProperty("JobSpoolType", "JobSpoolType")); foreach (var prop in typeof(SpoolType).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { if (prop.Name != "Name" && prop.Name != "Code") { - messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } } @@ -325,7 +332,7 @@ namespace Tango.PMRGenerator.CLI foreach (var prop in typeof(ProcessParametersTable).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { - messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + messageFile.Properties.Add(new ProtoProperty(prop.Name, CoercePropertyType(prop.PropertyType))); } String messageString = messageFile.GenerateCode(); @@ -377,6 +384,64 @@ namespace Tango.PMRGenerator.CLI File.WriteAllText(Path.Combine(pmrFolder, "ColorLab", enumFile.Name + ".proto"), enumString); } + private static void GenerateDiagnosticsValueComponents(ObservablesContext db, String pmrFolder) + { + Console.WriteLine("Generating Diagnostics Value Component..."); + + ProtoEnumFile enumFile = new ProtoEnumFile(); + enumFile.Name = "ValueComponent"; + enumFile.Package = "Tango.PMR.Diagnostics"; + + foreach (var field in db.TechControllers.ToList().OrderBy(x => x.Code)) + { + enumFile.Fields.Add(new EnumerationField() + { + Name = field.Name.Replace(" ", ""), + Description = field.Description + String.Format(" (Min = {0}, Max = {1})", field.Min, field.Max), + Value = field.Code, + }); + } + + String enumString = enumFile.GenerateCode(); + + File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", enumFile.Name + ".proto"), enumString); + } + + private static void GenerateDiagnosticsMonitors(ObservablesContext db, String pmrFolder) + { + Console.WriteLine("Generating Monitors..."); + + ProtoMessageFile messageFile = new ProtoMessageFile(); + messageFile.Name = "DiagnosticsMonitors"; + messageFile.Package = "Tango.PMR.Diagnostics"; + + messageFile.Imports.Add("DoubleArray.proto"); + + foreach (var monitor in db.TechMonitors.ToList().OrderBy(x => x.Code)) + { + var prop = new ProtoProperty(); + prop.Name = monitor.Name.Replace(" ", ""); + prop.Description = monitor.Description + String.Format(" (Min = {0}, Max = {1}, PPF = {2})", monitor.Min, monitor.Max, monitor.PointsPerFrame); + prop.Repeated = true; + + if (!monitor.MultiChannel) + { + prop.Type = "double"; + } + else + { + prop.Type = "DoubleArray"; + prop.Description += String.Format(" Channel Count = {0}", monitor.ChannelCount); + } + + messageFile.Properties.Add(prop); + } + + String messageString = messageFile.GenerateCode(); + + File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", messageFile.Name + ".proto"), messageString); + } + private static String CoercePropertyType(Type type) { if (type == typeof(bool)) -- cgit v1.3.1