From 05c7094a93c7d29eb8ac05247110995574a7b963 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Wed, 16 Sep 2020 01:20:23 -0700 Subject: Unsure if I will use this --- grapher/Models/AccelGUI.cs | 2 +- grapher/Models/Charts/AccelCharts.cs | 196 +++++++++------------ grapher/Models/Charts/ChartState/ChartState.cs | 86 +++++++++ .../Models/Charts/ChartState/ChartStateManager.cs | 68 +++++++ grapher/Models/Charts/ChartState/CombinedState.cs | 38 ++++ .../Models/Charts/ChartState/XYOneGraphState.cs | 20 +++ .../Models/Charts/ChartState/XYTwoGraphState.cs | 38 ++++ grapher/Models/Options/ApplyOptions.cs | 2 +- 8 files changed, 332 insertions(+), 118 deletions(-) create mode 100644 grapher/Models/Charts/ChartState/ChartState.cs create mode 100644 grapher/Models/Charts/ChartState/ChartStateManager.cs create mode 100644 grapher/Models/Charts/ChartState/CombinedState.cs create mode 100644 grapher/Models/Charts/ChartState/XYOneGraphState.cs create mode 100644 grapher/Models/Charts/ChartState/XYTwoGraphState.cs diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs index 3acb943..59aab2f 100644 --- a/grapher/Models/AccelGUI.cs +++ b/grapher/Models/AccelGUI.cs @@ -128,7 +128,7 @@ namespace grapher private void SetupWriteButton() { - WriteButton.Top = AccelCharts.SensitivityChart.Top + AccelCharts.SensitivityChart.Height - Constants.WriteButtonVerticalOffset; + WriteButton.Top = AccelCharts.Top + AccelCharts.TopChartHeight - Constants.WriteButtonVerticalOffset; SetWriteButtonDefault(); } diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index 3f228c3..f255d79 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -1,5 +1,6 @@ using grapher.Models.Calculations; using grapher.Models.Charts; +using grapher.Models.Charts.ChartState; using grapher.Models.Serialized; using System; using System.Drawing; @@ -20,31 +21,21 @@ namespace grapher ToolStripMenuItem enableLastMouseMove, Button writeButton) { - Estimated = new EstimatedPoints(); - EstimatedX = new EstimatedPoints(); - EstimatedY = new EstimatedPoints(); - AccelData = new AccelData(Estimated, EstimatedX, EstimatedY); + var estimated = new EstimatedPoints(); + var estimatedX = new EstimatedPoints(); + var estimatedY = new EstimatedPoints(); + SetupCharts(sensitivityChart, velocityChart, gainChart, estimated, estimatedX, estimatedY); + var accelData = new AccelData(estimated, estimatedX, estimatedY); + ChartStateManager = new ChartStateManager(sensitivityChart, velocityChart, gainChart, accelData); - ContaingForm = form; - SensitivityChart = sensitivityChart; - VelocityChart = velocityChart; - GainChart = gainChart; + ContainingForm = form; EnableVelocityAndGain = enableVelocityAndGain; EnableLastValue = enableLastMouseMove; WriteButton = writeButton; - SensitivityChart.SetPointBinds(Estimated.Sensitivity, EstimatedX.Sensitivity, EstimatedY.Sensitivity); - VelocityChart.SetPointBinds(Estimated.Velocity, EstimatedX.Velocity, EstimatedY.Velocity); - GainChart.SetPointBinds(Estimated.Gain, EstimatedX.Gain, EstimatedY.Gain); - SensitivityChart.SetTop(0); - VelocityChart.SetHeight(SensitivityChart.Height); - VelocityChart.SetTop(SensitivityChart.Height + Constants.ChartSeparationVertical); - GainChart.SetHeight(SensitivityChart.Height); - GainChart.SetTop(VelocityChart.Top + VelocityChart.Height + Constants.ChartSeparationVertical); - - Rectangle screenRectangle = ContaingForm.RectangleToScreen(ContaingForm.ClientRectangle); - FormBorderHeight = screenRectangle.Top - ContaingForm.Top; + Rectangle screenRectangle = ContainingForm.RectangleToScreen(ContainingForm.ClientRectangle); + FormBorderHeight = screenRectangle.Top - ContainingForm.Top; EnableVelocityAndGain.Click += new System.EventHandler(OnEnableClick); EnableVelocityAndGain.CheckedChanged += new System.EventHandler(OnEnableVelocityGainCheckStateChange); @@ -52,22 +43,15 @@ namespace grapher EnableLastValue.CheckedChanged += new System.EventHandler(OnEnableLastMouseMoveCheckStateChange); HideVelocityAndGain(); - SensitivityChart.Show(); - Combined = false; - ShowCombined(); + ChartState = ChartStateManager.InitialState(); + ChartState.Activate(); } #endregion Constructors #region Properties - public Form ContaingForm { get; } - - public ChartXY SensitivityChart { get; } - - public ChartXY VelocityChart { get; } - - public ChartXY GainChart { get; } + public Form ContainingForm { get; } public ToolStripMenuItem EnableVelocityAndGain { get; } @@ -75,90 +59,109 @@ namespace grapher private Button WriteButton { get; } - public AccelData AccelData { get; } - - private EstimatedPoints Estimated { get; } + public AccelData AccelData + { + get + { + return ChartState.AccelData; + } + } - private EstimatedPoints EstimatedX { get; } + public int Left + { + get + { + return ChartState.SensitivityChart.Left; + } + } - private EstimatedPoints EstimatedY { get; } + public int Top + { + get + { + return ChartState.SensitivityChart.Top; + } + } - private bool Combined { get; set; } + public int TopChartHeight + { + get + { + return ChartState.SensitivityChart.Height; + } + } private int FormBorderHeight { get; } + private ChartState ChartState { get; set; } + + private ChartStateManager ChartStateManager { get; } + #endregion Properties #region Methods public void MakeDots(int x, int y, double timeInMs) { - if (Combined) - { - AccelData.CalculateDots(x, y, timeInMs); - } - else - { - AccelData.CalculateDotsXY(x, y, timeInMs); - } + ChartState.MakeDots(x, y, timeInMs); } public void DrawLastMovement() { if (EnableLastValue.Checked) { - SensitivityChart.DrawLastMovementValue(); - VelocityChart.DrawLastMovementValue(); - GainChart.DrawLastMovementValue(); + ChartState.DrawLastMovement(); } } public void Bind() { - if (Combined) - { - SensitivityChart.Bind(AccelData.Combined.AccelPoints); - VelocityChart.Bind(AccelData.Combined.VelocityPoints); - GainChart.Bind(AccelData.Combined.GainPoints); - } - else - { - SensitivityChart.BindXY(AccelData.X.AccelPoints, AccelData.Y.AccelPoints); - VelocityChart.BindXY(AccelData.X.VelocityPoints, AccelData.Y.VelocityPoints); - GainChart.BindXY(AccelData.X.GainPoints, AccelData.Y.GainPoints); - } + ChartState.Bind(); } public void ShowActive(DriverSettings driverSettings) { - if (driverSettings.combineMagnitudes) - { - ShowCombined(); - } - else - { - ShowXandYSeparate(); - } + ChartState = ChartStateManager.DetermineState(driverSettings); + ChartState.Activate(); + UpdateFormWidth(); + Bind(); } public void SetWidened() { - SensitivityChart.SetWidened(); - VelocityChart.SetWidened(); - GainChart.SetWidened(); + ChartState.SetWidened(); UpdateFormWidth(); AlignWriteButton(); } public void SetNarrowed() { - SensitivityChart.SetNarrowed(); - VelocityChart.SetNarrowed(); - GainChart.SetNarrowed(); + ChartState.SetNarrowed(); UpdateFormWidth(); AlignWriteButton(); } + private static void SetupCharts( + ChartXY sensitivityChart, + ChartXY velocityChart, + ChartXY gainChart, + EstimatedPoints estimated, + EstimatedPoints estimatedX, + EstimatedPoints estimatedY) + { + sensitivityChart.SetPointBinds(estimated.Sensitivity, estimatedX.Sensitivity, estimatedY.Sensitivity); + velocityChart.SetPointBinds(estimated.Velocity, estimatedX.Velocity, estimatedY.Velocity); + gainChart.SetPointBinds(estimated.Gain, estimatedX.Gain, estimatedY.Gain); + + sensitivityChart.SetTop(0); + velocityChart.SetHeight(sensitivityChart.Height); + velocityChart.SetTop(sensitivityChart.Height + Constants.ChartSeparationVertical); + gainChart.SetHeight(sensitivityChart.Height); + gainChart.SetTop(velocityChart.Top + velocityChart.Height + Constants.ChartSeparationVertical); + + sensitivityChart.Show(); + } + private void OnEnableClick(object sender, EventArgs e) { EnableVelocityAndGain.Checked = !EnableVelocityAndGain.Checked; @@ -180,67 +183,28 @@ namespace grapher { if (!EnableLastValue.Checked) { - SensitivityChart.ClearLastValue(); - VelocityChart.ClearLastValue(); - GainChart.ClearLastValue(); + ChartState.ClearLastValue(); } } private void ShowVelocityAndGain() { - VelocityChart.Show(); - GainChart.Show(); - ContaingForm.Height = SensitivityChart.Height + - Constants.ChartSeparationVertical + - VelocityChart.Height + - Constants.ChartSeparationVertical + - GainChart.Height + - FormBorderHeight; + ChartState.ShowVelocityAndGain(ContainingForm, FormBorderHeight); } private void HideVelocityAndGain() { - VelocityChart.Hide(); - GainChart.Hide(); - ContaingForm.Height = SensitivityChart.Height + FormBorderHeight; - } - - private void ShowXandYSeparate() - { - if (Combined) - { - Combined = false; - - SensitivityChart.SetSeparate(); - VelocityChart.SetSeparate(); - GainChart.SetSeparate(); - UpdateFormWidth(); - Bind(); - } - } - - private void ShowCombined() - { - if (!Combined) - { - Combined = true; - - SensitivityChart.SetCombined(); - VelocityChart.SetCombined(); - GainChart.SetCombined(); - UpdateFormWidth(); - Bind(); - } + ChartState.HideVelocityAndGain(ContainingForm, FormBorderHeight); } private void UpdateFormWidth() { - ContaingForm.Width = SensitivityChart.Left + SensitivityChart.Width; + ContainingForm.Width = ChartState.SensitivityChart.Left + ChartState.SensitivityChart.Width; } private void AlignWriteButton() { - WriteButton.Left = SensitivityChart.Left / 2 - WriteButton.Width / 2; + WriteButton.Left = ChartState.SensitivityChart.Left / 2 - WriteButton.Width / 2; } #endregion Methods diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs new file mode 100644 index 0000000..b450357 --- /dev/null +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -0,0 +1,86 @@ +using grapher.Models.Calculations; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace grapher.Models.Charts.ChartState +{ + public abstract class ChartState + { + public ChartState( + ChartXY sensitivityChart, + ChartXY velocityChart, + ChartXY gainChart, + AccelData accelData) + { + SensitivityChart = sensitivityChart; + VelocityChart = velocityChart; + GainChart = gainChart; + AccelData = accelData; + } + + public ChartXY SensitivityChart { get; } + + public ChartXY VelocityChart { get; } + + public ChartXY GainChart { get; } + + public AccelData AccelData { get; } + + public abstract void MakeDots(int x, int y, double timeInMs); + + public abstract void Bind(); + + public abstract void Activate(); + + public void DrawLastMovement() + { + SensitivityChart.DrawLastMovementValue(); + VelocityChart.DrawLastMovementValue(); + GainChart.DrawLastMovementValue(); + } + + public void SetWidened() + { + SensitivityChart.SetWidened(); + VelocityChart.SetWidened(); + GainChart.SetWidened(); + } + + public void SetNarrowed() + { + SensitivityChart.SetNarrowed(); + VelocityChart.SetNarrowed(); + GainChart.SetNarrowed(); + } + + public void ClearLastValue() + { + SensitivityChart.ClearLastValue(); + VelocityChart.ClearLastValue(); + GainChart.ClearLastValue(); + } + + public void ShowVelocityAndGain(Form form, int borderHeight) + { + VelocityChart.Show(); + GainChart.Show(); + form.Height = SensitivityChart.Height + + Constants.ChartSeparationVertical + + VelocityChart.Height + + Constants.ChartSeparationVertical + + GainChart.Height + + borderHeight; + } + + public void HideVelocityAndGain(Form form, int borderHeight) + { + VelocityChart.Hide(); + GainChart.Hide(); + form.Height = SensitivityChart.Height + borderHeight; + } + } +} diff --git a/grapher/Models/Charts/ChartState/ChartStateManager.cs b/grapher/Models/Charts/ChartState/ChartStateManager.cs new file mode 100644 index 0000000..27d0836 --- /dev/null +++ b/grapher/Models/Charts/ChartState/ChartStateManager.cs @@ -0,0 +1,68 @@ +using grapher.Models.Calculations; +using grapher.Models.Serialized; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace grapher.Models.Charts.ChartState +{ + public class ChartStateManager + { + public ChartStateManager( + ChartXY sensitivityChart, + ChartXY velocityChart, + ChartXY gainChat, + AccelData accelData) + { + CombinedState = new CombinedState( + sensitivityChart, + velocityChart, + gainChat, + accelData); + + XYOneGraphState = new XYOneGraphState( + sensitivityChart, + velocityChart, + gainChat, + accelData); + + XYTwoGraphState = new XYTwoGraphState( + sensitivityChart, + velocityChart, + gainChat, + accelData); + } + + private CombinedState CombinedState { get; } + + private XYOneGraphState XYOneGraphState { get; } + + private XYTwoGraphState XYTwoGraphState { get; } + + public ChartState DetermineState(DriverSettings settings) + { + if (settings.combineMagnitudes) + { + if (settings.sensitivity.x != settings.sensitivity.y) + { + return XYOneGraphState; + } + else + { + return CombinedState; + } + } + else + { + return XYTwoGraphState; + } + } + + public ChartState InitialState() + { + return CombinedState; + } + } +} diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs new file mode 100644 index 0000000..bc8c720 --- /dev/null +++ b/grapher/Models/Charts/ChartState/CombinedState.cs @@ -0,0 +1,38 @@ +using grapher.Models.Calculations; + +namespace grapher.Models.Charts.ChartState +{ + public class CombinedState : ChartState + { + public CombinedState( + ChartXY sensitivityChart, + ChartXY velocityChart, + ChartXY gainChart, + AccelData accelData) + : base( + sensitivityChart, + velocityChart, + gainChart, + accelData) + { } + + public override void Activate() + { + SensitivityChart.SetCombined(); + VelocityChart.SetCombined(); + GainChart.SetCombined(); + } + + public override void MakeDots(int x, int y, double timeInMs) + { + AccelData.CalculateDots(x, y, timeInMs); + } + + public override void Bind() + { + SensitivityChart.Bind(AccelData.Combined.AccelPoints); + VelocityChart.Bind(AccelData.Combined.VelocityPoints); + GainChart.Bind(AccelData.Combined.GainPoints); + } + } +} diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs new file mode 100644 index 0000000..58276e4 --- /dev/null +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -0,0 +1,20 @@ +using grapher.Models.Calculations; + +namespace grapher.Models.Charts.ChartState +{ + public class XYOneGraphState : ChartState + { + public XYOneGraphState( + ChartXY sensitivityChart, + ChartXY velocityChart, + ChartXY gainChart, + AccelData accelData) + : base( + sensitivityChart, + velocityChart, + gainChart, + accelData) + { } + + } +} diff --git a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs new file mode 100644 index 0000000..f37af08 --- /dev/null +++ b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs @@ -0,0 +1,38 @@ +using grapher.Models.Calculations; + +namespace grapher.Models.Charts.ChartState +{ + public class XYTwoGraphState : ChartState + { + public XYTwoGraphState( + ChartXY sensitivityChart, + ChartXY velocityChart, + ChartXY gainChart, + AccelData accelData) + : base( + sensitivityChart, + velocityChart, + gainChart, + accelData) + { } + + public override void Activate() + { + SensitivityChart.SetSeparate(); + VelocityChart.SetSeparate(); + GainChart.SetSeparate(); + } + + public override void MakeDots(int x, int y, double timeInMs) + { + AccelData.CalculateDotsXY(x, y, timeInMs); + } + + public override void Bind() + { + SensitivityChart.BindXY(AccelData.X.AccelPoints, AccelData.Y.AccelPoints); + VelocityChart.BindXY(AccelData.X.VelocityPoints, AccelData.Y.VelocityPoints); + GainChart.BindXY(AccelData.X.GainPoints, AccelData.Y.GainPoints); + } + } +} diff --git a/grapher/Models/Options/ApplyOptions.cs b/grapher/Models/Options/ApplyOptions.cs index 241fe50..6ec9d31 100644 --- a/grapher/Models/Options/ApplyOptions.cs +++ b/grapher/Models/Options/ApplyOptions.cs @@ -227,7 +227,7 @@ namespace grapher.Models.Options private void SetActiveTitlesWhole() { OptionSetX.ActiveValuesTitle.Left = OptionSetX.Options.Left + OptionSetX.Options.Width; - LockXYLabel.Width = (AccelCharts.SensitivityChart.Left - OptionSetX.ActiveValuesTitle.Left) / 2; + LockXYLabel.Width = (AccelCharts.Left - OptionSetX.ActiveValuesTitle.Left) / 2; OptionSetX.ActiveValuesTitle.Width = LockXYLabel.Width; LockXYLabel.Left = OptionSetX.ActiveValuesTitle.Left + OptionSetX.ActiveValuesTitle.Width; Sensitivity.Fields.LockCheckBox.Left = LockXYLabel.Left + LockXYLabel.Width / 2 - Sensitivity.Fields.LockCheckBox.Width / 2; -- cgit v1.2.3 From e62dcd5f988ba417dcc340e0c10399d3e8fb8dfd Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 17 Sep 2020 00:23:22 -0700 Subject: Add chart states to grapher --- grapher/grapher.csproj | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/grapher/grapher.csproj b/grapher/grapher.csproj index 8f5eeda..77f566f 100644 --- a/grapher/grapher.csproj +++ b/grapher/grapher.csproj @@ -63,7 +63,12 @@ + + + + + -- cgit v1.2.3 From 5beedd6d1aca73adaae6556ded584d3f454509b0 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 17 Sep 2020 01:29:18 -0700 Subject: Much progress --- grapher/Models/Calculations/AccelCalculator.cs | 57 +++++++++++++++++++++- grapher/Models/Charts/AccelCharts.cs | 2 +- grapher/Models/Charts/ChartState/ChartState.cs | 3 ++ .../Models/Charts/ChartState/ChartStateManager.cs | 12 +++-- .../Models/Charts/ChartState/XYOneGraphState.cs | 18 +++++++ .../Models/Charts/ChartState/XYTwoGraphState.cs | 32 +++++++++++- grapher/grapher.csproj | 10 ++-- 7 files changed, 122 insertions(+), 12 deletions(-) diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index 4627732..9bbbd26 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -49,6 +49,10 @@ namespace grapher.Models.Calculations private double MeasurementTime { get; set; } + private (double, double) RotationVector { get; set; } + + private (double, double) Sensitivity { get; set; } + #endregion Fields #region Methods @@ -59,19 +63,44 @@ namespace grapher.Models.Calculations data.Clear(); - Calculate(data.Combined, accel, settings.sensitivity.x, MagnitudesCombined); + Calculate(data.Combined, accel, settings.sensitivity.x, MagnitudesCombined, true, settings); Calculate(data.X, accel, settings.sensitivity.x, MagnitudesX); Calculate(data.Y, accel, settings.sensitivity.y, MagnitudesY); } - public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection magnitudeData) + public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection magnitudeData, bool strip = false, DriverSettings settings = null) { double lastInputMagnitude = 0; double lastOutputMagnitude = 0; + bool stripSens = strip && ShouldStripSens(ref settings); + bool stripRot = strip && ShouldStripRot(ref settings); + + if(stripSens) + { + Sensitivity = GetSens(ref settings); + } + + if (stripRot) + { + RotationVector = GetRotVector(ref settings); + } + foreach (var magnitudeDatum in magnitudeData) { var output = accel.Accelerate(magnitudeDatum.x, magnitudeDatum.y, MeasurementTime); + var outputX = output.Item1; + var outputY = output.Item2; + + if (stripSens) + { + (outputX, outputY) = StripThisSens(outputX, outputY); + } + + if (stripRot) + { + (outputX, outputY) = StripThisRot(outputX, outputY); + } var outMagnitude = Magnitude(output.Item1, output.Item2); var ratio = magnitudeDatum.magnitude > 0 ? outMagnitude / magnitudeDatum.magnitude : starter; @@ -174,6 +203,30 @@ namespace grapher.Models.Calculations return Magnitude(x, y) / time; } + public static bool ShouldStripSens(ref DriverSettings settings) => + settings.sensitivity.x != settings.sensitivity.y; + + public static bool ShouldStripRot(ref DriverSettings settings) => + settings.rotation > 0; + + public static (double, double) GetSens(ref DriverSettings settings) => + (settings.sensitivity.x, settings.sensitivity.y); + + public static (double, double) GetRotVector(ref DriverSettings settings) => + (Math.Cos(settings.rotation), Math.Sin(settings.rotation)); + + public static (double, double) StripSens(double outputX, double outputY, double sensitivityX, double sensitivityY) => + (outputX / sensitivityX, outputY / sensitivityY); + + public (double, double) StripRot(double outputX, double outputY, double rotX, double rotY) => + (outputX * rotX + outputY * rotY, outputX * rotY - outputY * rotX); + + public (double, double) StripThisSens(double outputX, double outputY) => + StripSens(outputX, outputY, Sensitivity.Item1, Sensitivity.Item2); + + public (double, double) StripThisRot(double outputX, double outputY) => + StripRot(outputX, outputY, RotationVector.Item1, RotationVector.Item2); + public void ScaleByMouseSettings() { var dpiPollFactor = DPI.Data / PollRate.Data; diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index f255d79..844afe1 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -42,9 +42,9 @@ namespace grapher EnableLastValue.CheckedChanged += new System.EventHandler(OnEnableLastMouseMoveCheckStateChange); - HideVelocityAndGain(); ChartState = ChartStateManager.InitialState(); ChartState.Activate(); + HideVelocityAndGain(); } #endregion Constructors diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs index b450357..cc334ac 100644 --- a/grapher/Models/Charts/ChartState/ChartState.cs +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Serialized; using System; using System.Collections.Generic; using System.Linq; @@ -30,6 +31,8 @@ namespace grapher.Models.Charts.ChartState public AccelData AccelData { get; } + public virtual DriverSettings Settings { get; set; } + public abstract void MakeDots(int x, int y, double timeInMs); public abstract void Bind(); diff --git a/grapher/Models/Charts/ChartState/ChartStateManager.cs b/grapher/Models/Charts/ChartState/ChartStateManager.cs index 27d0836..b64b1a2 100644 --- a/grapher/Models/Charts/ChartState/ChartStateManager.cs +++ b/grapher/Models/Charts/ChartState/ChartStateManager.cs @@ -41,23 +41,29 @@ namespace grapher.Models.Charts.ChartState private XYTwoGraphState XYTwoGraphState { get; } + public ChartState DetermineState(DriverSettings settings) { + ChartState chartState; + if (settings.combineMagnitudes) { if (settings.sensitivity.x != settings.sensitivity.y) { - return XYOneGraphState; + chartState = XYOneGraphState; } else { - return CombinedState; + chartState = CombinedState; } } else { - return XYTwoGraphState; + chartState = XYTwoGraphState; } + + chartState.Settings = settings; + return chartState; } public ChartState InitialState() diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs index 58276e4..3ed5c5b 100644 --- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -16,5 +16,23 @@ namespace grapher.Models.Charts.ChartState accelData) { } + public override void Activate() + { + SensitivityChart.SetSeparate(); + VelocityChart.SetSeparate(); + GainChart.SetSeparate(); + } + + public override void MakeDots(int x, int y, double timeInMs) + { + AccelData.CalculateDotsXY(x, y, timeInMs); + } + + public override void Bind() + { + SensitivityChart.BindXY(AccelData.X.AccelPoints, AccelData.Y.AccelPoints); + VelocityChart.BindXY(AccelData.X.VelocityPoints, AccelData.Y.VelocityPoints); + GainChart.BindXY(AccelData.X.GainPoints, AccelData.Y.GainPoints); + } } } diff --git a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs index f37af08..b54832c 100644 --- a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs @@ -1,9 +1,13 @@ using grapher.Models.Calculations; +using grapher.Models.Serialized; +using System; namespace grapher.Models.Charts.ChartState { public class XYTwoGraphState : ChartState { + private DriverSettings _settings; + public XYTwoGraphState( ChartXY sensitivityChart, ChartXY velocityChart, @@ -16,6 +20,24 @@ namespace grapher.Models.Charts.ChartState accelData) { } + public override DriverSettings Settings + { + get { return _settings; } + set + { + _settings = value; + ShouldStripSens = AccelCalculator.ShouldStripSens(ref value); + if (ShouldStripSens) + { + Sensitivity = AccelCalculator.GetSens(ref value); + } + } + } + + private bool ShouldStripSens { get; set; } + + private (double, double) Sensitivity { get; set; } + public override void Activate() { SensitivityChart.SetSeparate(); @@ -25,7 +47,15 @@ namespace grapher.Models.Charts.ChartState public override void MakeDots(int x, int y, double timeInMs) { - AccelData.CalculateDotsXY(x, y, timeInMs); + double xCalc = x; + double yCalc = y; + + if (ShouldStripSens) + { + (xCalc, yCalc) = AccelCalculator.StripSens(xCalc, yCalc, Sensitivity.Item1, Sensitivity.Item2); + } + + AccelData.CalculateDotsXY((int)Math.Round(xCalc), (int)Math.Round(yCalc), timeInMs); } public override void Bind() diff --git a/grapher/grapher.csproj b/grapher/grapher.csproj index 77f566f..72522dd 100644 --- a/grapher/grapher.csproj +++ b/grapher/grapher.csproj @@ -63,12 +63,12 @@ - - - + + + - - + + -- cgit v1.2.3 From df173decac3ac5e1043b53961f1512bb88b85136 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 17 Sep 2020 20:26:15 -0700 Subject: Further work --- grapher/Models/Calculations/AccelCalculator.cs | 5 ----- grapher/Models/Charts/AccelCharts.cs | 7 ++++--- grapher/Models/Charts/ChartState/ChartState.cs | 12 +++++++++--- grapher/Models/Charts/ChartState/ChartStateManager.cs | 12 ++++++++---- grapher/Models/Charts/ChartState/CombinedState.cs | 14 ++++++++------ grapher/Models/Charts/ChartState/XYOneGraphState.cs | 14 ++++++++------ grapher/Models/Charts/ChartState/XYTwoGraphState.cs | 14 ++++++++------ 7 files changed, 45 insertions(+), 33 deletions(-) diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index 9bbbd26..9807ddf 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -97,11 +97,6 @@ namespace grapher.Models.Calculations (outputX, outputY) = StripThisSens(outputX, outputY); } - if (stripRot) - { - (outputX, outputY) = StripThisRot(outputX, outputY); - } - var outMagnitude = Magnitude(output.Item1, output.Item2); var ratio = magnitudeDatum.magnitude > 0 ? outMagnitude / magnitudeDatum.magnitude : starter; diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index 844afe1..a5f004d 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -19,14 +19,15 @@ namespace grapher ChartXY gainChart, ToolStripMenuItem enableVelocityAndGain, ToolStripMenuItem enableLastMouseMove, - Button writeButton) + Button writeButton, + AccelCalculator accelCalculator) { var estimated = new EstimatedPoints(); var estimatedX = new EstimatedPoints(); var estimatedY = new EstimatedPoints(); SetupCharts(sensitivityChart, velocityChart, gainChart, estimated, estimatedX, estimatedY); var accelData = new AccelData(estimated, estimatedX, estimatedY); - ChartStateManager = new ChartStateManager(sensitivityChart, velocityChart, gainChart, accelData); + ChartStateManager = new ChartStateManager(sensitivityChart, velocityChart, gainChart, accelData, accelCalculator); ContainingForm = form; EnableVelocityAndGain = enableVelocityAndGain; @@ -63,7 +64,7 @@ namespace grapher { get { - return ChartState.AccelData; + return ChartState.Data; } } diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs index cc334ac..99f44ff 100644 --- a/grapher/Models/Charts/ChartState/ChartState.cs +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -15,12 +15,14 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData) + AccelData accelData, + AccelCalculator calculator) { SensitivityChart = sensitivityChart; VelocityChart = velocityChart; GainChart = gainChart; - AccelData = accelData; + Data = accelData; + Calculator = calculator; } public ChartXY SensitivityChart { get; } @@ -29,7 +31,9 @@ namespace grapher.Models.Charts.ChartState public ChartXY GainChart { get; } - public AccelData AccelData { get; } + public AccelData Data { get; } + + public AccelCalculator Calculator { get; } public virtual DriverSettings Settings { get; set; } @@ -39,6 +43,8 @@ namespace grapher.Models.Charts.ChartState public abstract void Activate(); + public abstract void Calculate(); + public void DrawLastMovement() { SensitivityChart.DrawLastMovementValue(); diff --git a/grapher/Models/Charts/ChartState/ChartStateManager.cs b/grapher/Models/Charts/ChartState/ChartStateManager.cs index b64b1a2..54d2e81 100644 --- a/grapher/Models/Charts/ChartState/ChartStateManager.cs +++ b/grapher/Models/Charts/ChartState/ChartStateManager.cs @@ -14,25 +14,29 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChat, - AccelData accelData) + AccelData accelData, + AccelCalculator accelCalculator) { CombinedState = new CombinedState( sensitivityChart, velocityChart, gainChat, - accelData); + accelData, + accelCalculator); XYOneGraphState = new XYOneGraphState( sensitivityChart, velocityChart, gainChat, - accelData); + accelData, + accelCalculator); XYTwoGraphState = new XYTwoGraphState( sensitivityChart, velocityChart, gainChat, - accelData); + accelData, + accelCalculator); } private CombinedState CombinedState { get; } diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs index bc8c720..d229a43 100644 --- a/grapher/Models/Charts/ChartState/CombinedState.cs +++ b/grapher/Models/Charts/ChartState/CombinedState.cs @@ -8,12 +8,14 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData) + AccelData accelData, + AccelCalculator accelCalculator) : base( sensitivityChart, velocityChart, gainChart, - accelData) + accelData, + accelCalculator) { } public override void Activate() @@ -25,14 +27,14 @@ namespace grapher.Models.Charts.ChartState public override void MakeDots(int x, int y, double timeInMs) { - AccelData.CalculateDots(x, y, timeInMs); + Data.CalculateDots(x, y, timeInMs); } public override void Bind() { - SensitivityChart.Bind(AccelData.Combined.AccelPoints); - VelocityChart.Bind(AccelData.Combined.VelocityPoints); - GainChart.Bind(AccelData.Combined.GainPoints); + SensitivityChart.Bind(Data.Combined.AccelPoints); + VelocityChart.Bind(Data.Combined.VelocityPoints); + GainChart.Bind(Data.Combined.GainPoints); } } } diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs index 3ed5c5b..bc9a88d 100644 --- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -8,12 +8,14 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData) + AccelData accelData, + AccelCalculator accelCalculator) : base( sensitivityChart, velocityChart, gainChart, - accelData) + accelData, + accelCalculator) { } public override void Activate() @@ -25,14 +27,14 @@ namespace grapher.Models.Charts.ChartState public override void MakeDots(int x, int y, double timeInMs) { - AccelData.CalculateDotsXY(x, y, timeInMs); + Data.CalculateDotsXY(x, y, timeInMs); } public override void Bind() { - SensitivityChart.BindXY(AccelData.X.AccelPoints, AccelData.Y.AccelPoints); - VelocityChart.BindXY(AccelData.X.VelocityPoints, AccelData.Y.VelocityPoints); - GainChart.BindXY(AccelData.X.GainPoints, AccelData.Y.GainPoints); + SensitivityChart.BindXY(Data.X.AccelPoints, Data.Y.AccelPoints); + VelocityChart.BindXY(Data.X.VelocityPoints, Data.Y.VelocityPoints); + GainChart.BindXY(Data.X.GainPoints, Data.Y.GainPoints); } } } diff --git a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs index b54832c..8be88f0 100644 --- a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs @@ -12,12 +12,14 @@ namespace grapher.Models.Charts.ChartState ChartXY sensitivityChart, ChartXY velocityChart, ChartXY gainChart, - AccelData accelData) + AccelData accelData, + AccelCalculator accelCalculator) : base( sensitivityChart, velocityChart, gainChart, - accelData) + accelData, + accelCalculator) { } public override DriverSettings Settings @@ -55,14 +57,14 @@ namespace grapher.Models.Charts.ChartState (xCalc, yCalc) = AccelCalculator.StripSens(xCalc, yCalc, Sensitivity.Item1, Sensitivity.Item2); } - AccelData.CalculateDotsXY((int)Math.Round(xCalc), (int)Math.Round(yCalc), timeInMs); + Data.CalculateDotsXY((int)Math.Round(xCalc), (int)Math.Round(yCalc), timeInMs); } public override void Bind() { - SensitivityChart.BindXY(AccelData.X.AccelPoints, AccelData.Y.AccelPoints); - VelocityChart.BindXY(AccelData.X.VelocityPoints, AccelData.Y.VelocityPoints); - GainChart.BindXY(AccelData.X.GainPoints, AccelData.Y.GainPoints); + SensitivityChart.BindXY(Data.X.AccelPoints, Data.Y.AccelPoints); + VelocityChart.BindXY(Data.X.VelocityPoints, Data.Y.VelocityPoints); + GainChart.BindXY(Data.X.GainPoints, Data.Y.GainPoints); } } } -- cgit v1.2.3 From 1dd0c108b8948c50fd8f2b9c9055dbb8e7d47270 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 17 Sep 2020 23:51:47 -0700 Subject: Add y lines to graphes + further work --- grapher/Models/AccelGUI.cs | 3 +-- grapher/Models/Calculations/AccelCalculator.cs | 11 ----------- grapher/Models/Charts/AccelCharts.cs | 6 ++++++ grapher/Models/Charts/ChartState/ChartState.cs | 7 ++++++- grapher/Models/Charts/ChartState/CombinedState.cs | 6 ++++++ grapher/Models/Charts/ChartState/XYTwoGraphState.cs | 6 ++++++ 6 files changed, 25 insertions(+), 14 deletions(-) diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs index 59aab2f..5567be3 100644 --- a/grapher/Models/AccelGUI.cs +++ b/grapher/Models/AccelGUI.cs @@ -102,8 +102,7 @@ namespace grapher public void UpdateGraph() { - AccelCalculator.Calculate( - AccelCharts.AccelData, + AccelCharts.Calculate( Settings.ActiveAccel, Settings.RawAccelSettings.AccelerationSettings); AccelCharts.Bind(); diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index 9807ddf..ab1f346 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -57,17 +57,6 @@ namespace grapher.Models.Calculations #region Methods - public void Calculate(AccelData data, ManagedAccel accel, DriverSettings settings) - { - ScaleByMouseSettings(); - - data.Clear(); - - Calculate(data.Combined, accel, settings.sensitivity.x, MagnitudesCombined, true, settings); - Calculate(data.X, accel, settings.sensitivity.x, MagnitudesX); - Calculate(data.Y, accel, settings.sensitivity.y, MagnitudesY); - } - public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection magnitudeData, bool strip = false, DriverSettings settings = null) { double lastInputMagnitude = 0; diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index a5f004d..657ae89 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -142,6 +142,12 @@ namespace grapher AlignWriteButton(); } + public void Calculate(ManagedAccel accel, DriverSettings settings) + { + ChartState.SetUpCalculate(settings); + ChartState.Calculate(accel, settings); + } + private static void SetupCharts( ChartXY sensitivityChart, ChartXY velocityChart, diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs index 99f44ff..a219cc4 100644 --- a/grapher/Models/Charts/ChartState/ChartState.cs +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -43,7 +43,12 @@ namespace grapher.Models.Charts.ChartState public abstract void Activate(); - public abstract void Calculate(); + public abstract void Calculate(ManagedAccel accel, DriverSettings settings); + public virtual void SetUpCalculate(DriverSettings settings) + { + Data.Clear(); + Calculator.ScaleByMouseSettings(); + } public void DrawLastMovement() { diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs index d229a43..c788775 100644 --- a/grapher/Models/Charts/ChartState/CombinedState.cs +++ b/grapher/Models/Charts/ChartState/CombinedState.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Serialized; namespace grapher.Models.Charts.ChartState { @@ -36,5 +37,10 @@ namespace grapher.Models.Charts.ChartState VelocityChart.Bind(Data.Combined.VelocityPoints); GainChart.Bind(Data.Combined.GainPoints); } + + public override void Calculate(ManagedAccel accel, DriverSettings settings) + { + Calculator.Calculate(Data.Combined, accel, settings.sensitivity.x, Calculator.MagnitudesCombined, true, settings); + } } } diff --git a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs index 8be88f0..69dc335 100644 --- a/grapher/Models/Charts/ChartState/XYTwoGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYTwoGraphState.cs @@ -66,5 +66,11 @@ namespace grapher.Models.Charts.ChartState VelocityChart.BindXY(Data.X.VelocityPoints, Data.Y.VelocityPoints); GainChart.BindXY(Data.X.GainPoints, Data.Y.GainPoints); } + + public override void Calculate(ManagedAccel accel, DriverSettings settings) + { + Calculator.Calculate(Data.X, accel, settings.sensitivity.x, Calculator.MagnitudesX); + Calculator.Calculate(Data.Y, accel, settings.sensitivity.y, Calculator.MagnitudesY); + } } } -- cgit v1.2.3 From 2e155ab0e648c51857905fbb7f0a24107eb16008 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 17 Sep 2020 23:52:18 -0700 Subject: Furhter designer changes --- grapher/Form1.Designer.cs | 161 ++++++++++++++++++++++++++++------------------ 1 file changed, 100 insertions(+), 61 deletions(-) diff --git a/grapher/Form1.Designer.cs b/grapher/Form1.Designer.cs index fd54051..18eb215 100644 --- a/grapher/Form1.Designer.cs +++ b/grapher/Form1.Designer.cs @@ -34,31 +34,37 @@ namespace grapher System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title2 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series9 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title3 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series10 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series11 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series12 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title4 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea5 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend5 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series9 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series10 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series13 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series14 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series15 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title5 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea6 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend6 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series11 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series12 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series16 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series17 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series18 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title6 = new System.Windows.Forms.DataVisualization.Charting.Title(); this.AccelerationChart = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.accelTypeDropX = new System.Windows.Forms.ComboBox(); @@ -173,8 +179,13 @@ namespace grapher series2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); series2.Legend = "Legend1"; series2.Name = "Last Mouse Move"; + series3.ChartArea = "ChartArea1"; + series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series3.Legend = "Legend1"; + series3.Name = "Y: Accelerated Sensitivity"; this.AccelerationChart.Series.Add(series1); this.AccelerationChart.Series.Add(series2); + this.AccelerationChart.Series.Add(series3); this.AccelerationChart.Size = new System.Drawing.Size(698, 328); this.AccelerationChart.TabIndex = 0; this.AccelerationChart.Text = "Sensitivity"; @@ -387,17 +398,22 @@ namespace grapher this.VelocityChart.Legends.Add(legend2); this.VelocityChart.Location = new System.Drawing.Point(482, 334); this.VelocityChart.Name = "VelocityChart"; - series3.ChartArea = "ChartArea1"; - series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series3.Legend = "Legend1"; - series3.Name = "Output Velocity"; series4.ChartArea = "ChartArea1"; - series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series4.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series4.Legend = "Legend1"; - series4.Name = "Last Mouse Move"; - this.VelocityChart.Series.Add(series3); + series4.Name = "Output Velocity"; + series5.ChartArea = "ChartArea1"; + series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series5.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series5.Legend = "Legend1"; + series5.Name = "Last Mouse Move"; + series6.ChartArea = "ChartArea1"; + series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series6.Legend = "Legend1"; + series6.Name = "Y: Output Velocity"; this.VelocityChart.Series.Add(series4); + this.VelocityChart.Series.Add(series5); + this.VelocityChart.Series.Add(series6); this.VelocityChart.Size = new System.Drawing.Size(698, 307); this.VelocityChart.TabIndex = 28; this.VelocityChart.Text = "chart1"; @@ -417,17 +433,22 @@ namespace grapher this.GainChart.Legends.Add(legend3); this.GainChart.Location = new System.Drawing.Point(482, 647); this.GainChart.Name = "GainChart"; - series5.ChartArea = "ChartArea1"; - series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series5.Legend = "Legend1"; - series5.Name = "Velocity Gain"; - series6.ChartArea = "ChartArea1"; - series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series6.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series6.Legend = "Legend1"; - series6.Name = "Last Mouse Move"; - this.GainChart.Series.Add(series5); - this.GainChart.Series.Add(series6); + series7.ChartArea = "ChartArea1"; + series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series7.Legend = "Legend1"; + series7.Name = "Velocity Gain"; + series8.ChartArea = "ChartArea1"; + series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series8.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series8.Legend = "Legend1"; + series8.Name = "Last Mouse Move"; + series9.ChartArea = "ChartArea1"; + series9.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series9.Legend = "Legend1"; + series9.Name = "Y: Velocity Gain"; + this.GainChart.Series.Add(series7); + this.GainChart.Series.Add(series8); + this.GainChart.Series.Add(series9); this.GainChart.Size = new System.Drawing.Size(698, 309); this.GainChart.TabIndex = 29; this.GainChart.Text = "chart1"; @@ -626,17 +647,23 @@ namespace grapher this.AccelerationChartY.Legends.Add(legend4); this.AccelerationChartY.Location = new System.Drawing.Point(1186, 0); this.AccelerationChartY.Name = "AccelerationChartY"; - series7.ChartArea = "ChartArea1"; - series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series7.Legend = "Legend1"; - series7.Name = "Accelerated Sensitivity"; - series8.ChartArea = "ChartArea1"; - series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series8.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series8.Legend = "Legend1"; - series8.Name = "Last Mouse Move"; - this.AccelerationChartY.Series.Add(series7); - this.AccelerationChartY.Series.Add(series8); + series10.ChartArea = "ChartArea1"; + series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series10.Legend = "Legend1"; + series10.Name = "Accelerated Sensitivity"; + series11.ChartArea = "ChartArea1"; + series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series11.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series11.Legend = "Legend1"; + series11.Name = "Last Mouse Move"; + series12.ChartArea = "ChartArea1"; + series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series12.IsVisibleInLegend = false; + series12.Legend = "Legend1"; + series12.Name = "Placeholder"; + this.AccelerationChartY.Series.Add(series10); + this.AccelerationChartY.Series.Add(series11); + this.AccelerationChartY.Series.Add(series12); this.AccelerationChartY.Size = new System.Drawing.Size(698, 328); this.AccelerationChartY.TabIndex = 31; this.AccelerationChartY.Text = "chart1"; @@ -656,17 +683,23 @@ namespace grapher this.VelocityChartY.Legends.Add(legend5); this.VelocityChartY.Location = new System.Drawing.Point(1186, 334); this.VelocityChartY.Name = "VelocityChartY"; - series9.ChartArea = "ChartArea1"; - series9.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series9.Legend = "Legend1"; - series9.Name = "Output Velocity"; - series10.ChartArea = "ChartArea1"; - series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series10.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series10.Legend = "Legend1"; - series10.Name = "Last Mouse Move"; - this.VelocityChartY.Series.Add(series9); - this.VelocityChartY.Series.Add(series10); + series13.ChartArea = "ChartArea1"; + series13.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series13.Legend = "Legend1"; + series13.Name = "Output Velocity"; + series14.ChartArea = "ChartArea1"; + series14.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series14.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series14.Legend = "Legend1"; + series14.Name = "Last Mouse Move"; + series15.ChartArea = "ChartArea1"; + series15.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series15.IsVisibleInLegend = false; + series15.Legend = "Legend1"; + series15.Name = "Placeholder"; + this.VelocityChartY.Series.Add(series13); + this.VelocityChartY.Series.Add(series14); + this.VelocityChartY.Series.Add(series15); this.VelocityChartY.Size = new System.Drawing.Size(698, 307); this.VelocityChartY.TabIndex = 32; this.VelocityChartY.Text = "chart1"; @@ -686,17 +719,23 @@ namespace grapher this.GainChartY.Legends.Add(legend6); this.GainChartY.Location = new System.Drawing.Point(1186, 647); this.GainChartY.Name = "GainChartY"; - series11.ChartArea = "ChartArea1"; - series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series11.Legend = "Legend1"; - series11.Name = "Velocity Gain"; - series12.ChartArea = "ChartArea1"; - series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series12.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series12.Legend = "Legend1"; - series12.Name = "Last Mouse Move"; - this.GainChartY.Series.Add(series11); - this.GainChartY.Series.Add(series12); + series16.ChartArea = "ChartArea1"; + series16.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series16.Legend = "Legend1"; + series16.Name = "Velocity Gain"; + series17.ChartArea = "ChartArea1"; + series17.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series17.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series17.Legend = "Legend1"; + series17.Name = "Last Mouse Move"; + series18.ChartArea = "ChartArea1"; + series18.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series18.IsVisibleInLegend = false; + series18.Legend = "Legend1"; + series18.Name = "Placeholder"; + this.GainChartY.Series.Add(series16); + this.GainChartY.Series.Add(series17); + this.GainChartY.Series.Add(series18); this.GainChartY.Size = new System.Drawing.Size(698, 309); this.GainChartY.TabIndex = 33; this.GainChartY.Text = "chart1"; -- cgit v1.2.3 From 8f5c6c2a733812b19641789e34552afe9e601686 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Sat, 19 Sep 2020 19:27:37 -0700 Subject: further work --- grapher/Models/Calculations/AccelCalculator.cs | 54 ++++++++++++++--------- grapher/Models/Calculations/AccelData.cs | 4 +- grapher/Models/Charts/ChartState/CombinedState.cs | 2 +- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index ab1f346..ff1088b 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -57,35 +57,14 @@ namespace grapher.Models.Calculations #region Methods - public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection magnitudeData, bool strip = false, DriverSettings settings = null) + public void Calculate(AccelChartData data, ManagedAccel accel, double starter, ICollection magnitudeData) { double lastInputMagnitude = 0; double lastOutputMagnitude = 0; - bool stripSens = strip && ShouldStripSens(ref settings); - bool stripRot = strip && ShouldStripRot(ref settings); - - if(stripSens) - { - Sensitivity = GetSens(ref settings); - } - - if (stripRot) - { - RotationVector = GetRotVector(ref settings); - } - foreach (var magnitudeDatum in magnitudeData) { var output = accel.Accelerate(magnitudeDatum.x, magnitudeDatum.y, MeasurementTime); - var outputX = output.Item1; - var outputY = output.Item2; - - if (stripSens) - { - (outputX, outputY) = StripThisSens(outputX, outputY); - } - var outMagnitude = Magnitude(output.Item1, output.Item2); var ratio = magnitudeDatum.magnitude > 0 ? outMagnitude / magnitudeDatum.magnitude : starter; @@ -115,6 +94,37 @@ namespace grapher.Models.Calculations data.OrderedVelocityPointsList.AddRange(data.VelocityPoints.Values.ToList()); } + public void CalculateCombinedDiffSens(AccelData data, ManagedAccel accel, DriverSettings settings, ICollection magnitudeData) + { + double lastInputMagnitudeX = 0; + double lastOutputMagnitudeX = 0; + double lastInputMagnitudeY = 0; + double lastOutputMagnitudeY = 0; + + Sensitivity = GetSens(ref settings); + + foreach (var magnitudeDatum in magnitudeData) + { + var output = accel.Accelerate(magnitudeDatum.x, magnitudeDatum.y, MeasurementTime); + var outputWithoutSens = StripThisSens(output.Item1, output.Item2); + var magnitudeWithoutSens = Magnitude(outputWithoutSens.Item1, outputWithoutSens.Item2); + + var ratio = magnitudeDatum.magnitude > 0 ? magnitudeWithoutSens / magnitudeDatum.magnitude : 1; + + if (!data.Combined.AccelPoints.ContainsKey(magnitudeDatum.magnitude)) + { + data.Combined.AccelPoints.Add(magnitudeDatum.magnitude, ratio); + } + + var xRatio = magnitudeDatum.x > 0 ? output.Item1 / magnitudeDatum.x : settings.sensitivity.x * ratio; + + if (!data.X.AccelPoints.ContainsKey(magnitudeDatum.magnitude)) + { + + } + } + } + public ReadOnlyCollection GetMagnitudes() { var magnitudes = new List(); diff --git a/grapher/Models/Calculations/AccelData.cs b/grapher/Models/Calculations/AccelData.cs index eef4d01..057a53b 100644 --- a/grapher/Models/Calculations/AccelData.cs +++ b/grapher/Models/Calculations/AccelData.cs @@ -60,8 +60,8 @@ namespace grapher.Models.Calculations public void CalculateDotsXY(int x, int y, double timeInMs) { - var outX = Math.Abs(x); - var outY = Math.Abs(y); + var outX = Math.Abs(x) / timeInMs; + var outY = Math.Abs(y) / timeInMs; (var inXVelocity, var xSensitivity, var xGain) = X.FindPointValuesFromOut(outX); EstimatedX.Velocity.Set(inXVelocity, outX); diff --git a/grapher/Models/Charts/ChartState/CombinedState.cs b/grapher/Models/Charts/ChartState/CombinedState.cs index c788775..17cd68a 100644 --- a/grapher/Models/Charts/ChartState/CombinedState.cs +++ b/grapher/Models/Charts/ChartState/CombinedState.cs @@ -40,7 +40,7 @@ namespace grapher.Models.Charts.ChartState public override void Calculate(ManagedAccel accel, DriverSettings settings) { - Calculator.Calculate(Data.Combined, accel, settings.sensitivity.x, Calculator.MagnitudesCombined, true, settings); + Calculator.Calculate(Data.Combined, accel, settings.sensitivity.x, Calculator.MagnitudesCombined); } } } -- cgit v1.2.3 From fb900c88f72db6e4680654ce505f839ad6200668 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Sun, 20 Sep 2020 22:12:11 -0700 Subject: Add icon to project --- grapher/Form1.Designer.cs | 2 + grapher/Form1.resx | 1883 +++++++++++++++++++++++++++++++++++++++++++++ grapher/Icon/mouse.ico | Bin 0 -> 112630 bytes grapher/grapher.csproj | 1 + 4 files changed, 1886 insertions(+) create mode 100644 grapher/Icon/mouse.ico diff --git a/grapher/Form1.Designer.cs b/grapher/Form1.Designer.cs index fd54051..a659c4e 100644 --- a/grapher/Form1.Designer.cs +++ b/grapher/Form1.Designer.cs @@ -60,6 +60,7 @@ namespace grapher System.Windows.Forms.DataVisualization.Charting.Series series11 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series12 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title6 = new System.Windows.Forms.DataVisualization.Charting.Title(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RawAcceleration)); this.AccelerationChart = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.accelTypeDropX = new System.Windows.Forms.ComboBox(); this.sensitivityBoxX = new System.Windows.Forms.TextBox(); @@ -1075,6 +1076,7 @@ namespace grapher this.Controls.Add(this.accelTypeDropX); this.Controls.Add(this.AccelerationChart); this.Controls.Add(this.menuStrip1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "RawAcceleration"; this.Text = "Raw Acceleration Graph"; this.Load += new System.EventHandler(this.Form1_Load); diff --git a/grapher/Form1.resx b/grapher/Form1.resx index 32fcbfb..f036fed 100644 --- a/grapher/Form1.resx +++ b/grapher/Form1.resx @@ -123,4 +123,1887 @@ 25 + + + + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wD///8L////Mf///1D///9r////f////47///+d////ov///6P///+j////o////6L///+g////kP// + /4f///94////Zv///1H///86////IP///wX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8C////Lf///23///+n////2/////z///////////////////////////// + ////////////////////////////////////////////////////////////////////////////+v// + /97///+4////kP///2L///8v////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wP///9E////mv///+b///////////// + /////////f39/+Xl5f/Jycn/sbGx/56env+Pj4//hYWF/319ff95eXn/d3d3/3l5ef97e3v/gYGB/4qK + iv+VlZX/oqKi/7Ozs//ExMT/2dnZ//Hx8f/+/v7////////////////////////////////y////u/// + /3r///8z////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xv///99////4v///////////////+7u7v+2trb/gYGB/1FRUf8pKSn/HBwc/xoaGv8YGBj/FxcX/xYW + Fv8WFhb/FRUV/xUVFf8VFRX/FRUV/xUVFf8VFRX/FRUV/xYWFv8WFhb/FhYW/xUVFf8WFhb/FxcX/yUl + Jf9FRUX/aGho/46Ojv+4uLj/5ubm//7+/v/////////////////////k////jv///y7///8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Av///0r///+3/////P//////////6urq/5ycnP9PT0//Gxsb/xQU + FP8RERH/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ERER/xMTE/8VFRX/MjIy/21t + bf+tra3/7e3t/////////////////v///7n///8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///0r////S//////// + ///8/Pz/vLy8/19fX/8XFxf/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xMTE/8cHBz/W1tb/7Kysv/6+vr///////// + //z///+W////HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xX///+q///////////v7+//jY2N/ywsLP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/FRUV/zc3N/+srKz//f39///////////y////nP///3z///9F////CwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9D////5f/////4+Pj/jo6O/x8f + H/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xER + Ef9FRUX/xcXF///////////////////////////3////tf///13///8LAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8G////jf////7/////0dHR/zg4OP8RERH/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8VFRX/v7+//9vb2/+ZmZn/1dXV//7+ + /v////////////////H///+V////KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bf///6///////Pz8/5SUlP8YGBj/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP/a2tr/kJCQ/xAQEP8QEBD/Ly8v/35+fv/W1tb////////////////+////t/// + /0H///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wn///+9//////7+/v9VVVX/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/LS0t//z8/P9SUlL/EBAQ/xAQ + EP8QEBD/EBAQ/xEREf9ISEj/rKys//r6+v///////////////8X///9G////AQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////r//////7+/v/+vr6/x4eHv8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP9ubm7/9PT0/xoaGv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/LCws/5SU + lP/z8/P////////////////F////Rv///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /4b/////9fX1/25ubv/6+vr/Ly8v/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/7Kysv+7u7v/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/yMjI/+MjIz/8vLy////////////////wv// + /z3///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9M/////v39/f9eXl7/Jycn//r6+v9DQ0P/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8YGBj/8fHx/3V1df8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8iIiL/j4+P//T09P///////////////7b///8zAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP// + /+v/////jo6O/xAQEP8UFBT/9fX1/1xcXP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/1dXV//7+/v/LCws/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/JiYm/5iY + mP/4+Pj///////////7///+p////KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///+v/////8nJyf8UFBT/EBAQ/xAQEP/d3d3/enp6/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/paWl/8vLy/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/y0tLf+jo6P/+/v7///////////7////n/// + /x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Uv// + ///29vb/MzMz/xAQEP8QEBD/EBAQ/7y8vP+cnJz/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xkZGf/u7u7/enp6/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP82Njb/rq6u//39/f//////////+P///5D///8WAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb////d/////4ODg/8QEBD/EBAQ/xAQEP8QEBD/l5eX/8PD + w/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/YGBg//r6+v8pKSn/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/Pz8//7u7 + u/////////////////D///97////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////aP// + ///h4eH/GBgY/xAQEP8QEBD/EBAQ/xAQEP9tbW3/7Ozs/xISEv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+6urr/u7u7/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/0tLS//Jycn////////////////h////Vf// + /wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wT////e/////2xsbP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/z8/ + P//7+/v/MzMz/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/Li4u//n5+f9fX1//EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xEREf9eXl7/3d3d////////////////tP///xsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Tv// + ///l5eX/FhYW/xAQEP8QEBD/EBAQ/xAQEP8QEBD/FhYW//Dw8P9oaGj/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+MjIz/5eXl/xYW + Fv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8XFxf/goKC//b2 + 9v//////////7f///1IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+s/////4eHh/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/v7+//6Kiov8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/Ghoa/+np6f+Ghob/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/MjIy/8bGxv///////////v///4v///8DAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP// + //L+/v7/MzMz/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+BgYH/4ODg/xEREf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9ycnL/8/Pz/yUl + Jf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/ExMT/4uLi//9/f3//////////67///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9B/////9jY2P8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/0BAQP/7+/v/OTk5/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/FRUV/93d3f+bm5v/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/1xcXP/19fX///////// + /8D///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /3z/////mZmZ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EhIS/+Hh4f+CgoL/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9ra2v/9vb2/y4u + Lv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/0ZGRv/v7+///////////7n///8HAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////sP////9mZmb/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/l5eX/9HR0f8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/GBgY/97e3v+bm5v/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/0JC + Qv/x8fH//////////6H///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD////b/////z09Pf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9FRUX/+vr6/zs7 + O/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP97e3v/8fHx/ygo + KP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/05OTv/5+fn//////////3UAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A/////f/////ICAg/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xEREf/X19f/lZWV/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/JSUl/+vr6/+Hh4f/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/21tbf//////////+////zsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8M//////r6+v8TExP/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/3h4 + eP/r6+v/Gxsb/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+ioqL/3t7e/xoa + Gv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/6Kiov//////////3f// + /wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w//////+Pj4/xEREf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ICAg/+3t7f90dHT/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/S0tL//j4+P9bW1v/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/Gxsb/9zc3P//////////jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Cv/////8/Pz/ExMT/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/kpKS/93d3f8WFhb/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xsbG//Y2Nj/r6+v/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/TExM//7+ + /v/////7////LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8V//////b29v8RERH/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8pKSn/8fHx/3BwcP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/m5ub/+bm5v8mJib/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/rKys//////////+0////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///yv/////6+vr/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP+QkJD/5eXl/xsbG/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/15eXv/39/f/WFhY/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8vLy//+fn5//////7///82AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////IP/////t7e3/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/yAgIP/r6+v/ioqK/xcX + F/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP81NTX/6urq/5OTk/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+fn5///////////6sAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8d/////+3t7f8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/4yMjP/7+/v/8/Pz/9zc3P+FhYX/Gxsb/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/Hx8f/9PT0//BwcH/FRUV/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/zMzM//9/f3/////+////xsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xL/////9/f3/xMT + E/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/nZ2d/7S0 + tP9QUFD/cXFx/8HBwf/Dw8P/Kysr/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xYWFv+7u7v/2tra/yUlJf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/729vf//////////eAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Af///+7/////LCws/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP/BwcH/bGxs/xAQEP8RERH/EhIS/3V1df/U1NT/LCws/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8TExP/p6en/+bm5v82Njb/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/ZGRk///////////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////vf// + //9cXFz/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/5+f + n/9tbW3/EBAQ/xEREf8QEBD/EBAQ/6Kiov/Hx8f/ExMT/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/ExMT/52dnf/o6Oj/RERE/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8dHR3/+Pj4//// + //3///8XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Av///zL///++/////5eXl/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/YWFh/3d3d/8QEBD/ERER/xAQEP8QEBD/Kioq/+rq + 6v9kZGT/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xQUFP+hoaH/6Ojo/0lJSf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP/AwMD//////////1UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xj///8/////OP///zP///84////RP///1b///9x////kv///73////v//////// + ////////3t7e/xISEv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8eHh7/sLCw/xAQEP8QEBD/ERER/xAQEP8QEBD/hISE/9ra2v8dHR3/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8bGxv/sLCw/+bm5v9GRkb/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/4aG + hv//////////kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///96/////f////////////////// + //////////////////////////////7+/v/j4+P/qqqq/4qKiv//////RERE/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+srKz/Ozs7/xAQEP8QEBD/EBAQ/xAQ + EP8aGhr/1dXV/5SUlP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/LS0t/8nJyf/c3Nz/Ojo6/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/WFhY//////////++AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Bf////T/////+Pj4/+7u7v/n5+f/4ODg/9bW1v/FxcX/rq6u/5GRkf9sbGz/QEBA/ykp + Kf87Ozv/d3d3//b29v+goKD/EhIS/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/1RUVP+dnZ3/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9NTU3/8PDw/1VVVf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/1NT + U//j4+P/xcXF/ykpKf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP81NTX//////////+L///8AAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J/////P/////k5OT/tra2/42N + jf9wcHD/YGBg/1xcXP9jY2P/dXV1/4+Pj/+xsbH/3t7e//7+/v////////////Pz8/8pKSn/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/FhYW/+Dg4P8rKyv/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP+RkZH/5OTk/z4+Pv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xoaGv+Tk5P/8/Pz/5aWlv8XFxf/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/x4eHv//////////+P///wMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD////K//////////////////////////////////////////////////////// + ////////////8v///7b////Y/////4mJif8VFRX/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/dnZ2/6ampv8RERH/EBAQ/xAQEP8QEBD/EhIS/xsbG//ExMT/4eHh/0dH + R/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9RUVH/1tbW/+Dg + 4P9XV1f/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/FBQU//r6+v//////////CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yf///+r////zP// + /93////k////8v///+3////j////0P///7b///+T////Z////zP///8FAAAAAP///1P/////7e3t/yoq + Kv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8TExP/zMzM/1BQ + UP8QEBD/EBAQ/xAQEP8RERH/EhIS/yIiIv/AwMD/7Ozs/1xcXP8RERH/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP81NTX/r6+v//Pz8/+enp7/ISEh/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8SEhL/+Pj4//////////8PAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Av///87/////lJSU/xgYGP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP86Ojr/29vb/yQkJP8QEBD/EBAQ/xAQEP8QEBD/ERER/xUV + Ff+UlJT//Pz8/7a2tv9AQED/EhIS/xAQEP8QEBD/EBAQ/xAQEP8yMjL/oaGh//Ly8v/CwsL/Q0ND/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xUVFf/8/Pz//////////wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Rf// + ///4+Pj/Q0ND/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP9ycnL/v7+//xYWFv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9ISEj/ycnJ//v7+/+7u7v/eXl5/0tL + S/9AQED/hYWF//T09P/S0tL/U1NT/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ISEh///////////2////AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////sf/////T09P/IyMj/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+ioqL/n5+f/xEREf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8RERH/Tk5O/4+Pj//MzMz/+Pj4/9/f3//Q0ND/5OTk/yEhIf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP82Njb//////////+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8h////9P////+rq6v/FBQU/xAQEP8QEBD/EBAQ/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xcXF//Kysr/iYmJ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8VFRX/EhIS/xUVFf+zs7P/ZWVl/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/1BQUP//////////xgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9t//////z8/P+NjY3/ERER/xAQ + EP8QEBD/ERER/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/yYmJv/d3d3/cnJy/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/2BgYP+JiYn/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/bm5u//////////+lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wH///+2//////j4+P99fX3/ERER/xISEv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8oKCj/Z2dn/76+vv/8/Pz/ampq/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/ZGRk/4KCgv8SEhL/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+SkpL///////// + /4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xX////i//////X1 + 9f92dnb/ERER/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EhIS/z8/P/+Dg4P/x8fH//Ly8v/i4uL/paWl/29v + b//d3d3/eHh4/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xEREf+1tbX/NTU1/xER + Ef8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/7m5uf//////////VwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zL////z//////X19f99fX3/NjY2/z8/P/9FRUX/ZWVl/56e + nv/g4OD/8/Pz/8TExP+CgoL/QEBA/xMTE/8QEBD/EBAQ/ygoKP/Ozs7/o6Oj/xsbG/8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8TExP/kZGR/1VVVf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8RERH/5+fn//// + //////8nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /0P////3///////////+/v7////////////4+Pj/x8fH/3V1df8mJib/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xkZGf+kpKT/39/f/2NjY/8VFRX/EBAQ/xAQEP8ZGRn/YmJi/7a2tv9RUVH/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/y8vL///////////7P///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0P////z//////v7+/+rq6v/KSkp/xQU + FP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9TU1P/vb29/97e + 3v/Q0ND/4uLi/+bm5v+SkpL/IiIi/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/bW1t//// + //////+zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///zT////n/v7+//f39/+kpKT/GBgY/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ERER/yoqKv8rKyv/ExMT/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+1tbX//////////24AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8c////fP///+L//////v7+//j4 + +P+6urr/JCQk/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ICAg//f3 + 9//////+////IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wn///9W////t/////z//////////+3t7f/X19f///////r6+v/S0tL/OTk5/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP92dnb//////////8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Af///zr///+X////7v//////////+/v7/8fHx/+CgoL/UFBQ/3x8 + fP/09PT///////z8/P/l5eX/XV1d/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/FBQU/93d + 3f//////////YgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Jv///4H////b//////// + ////////4ODg/52dnf9bW1v/XV1d/5+fn//k5OT///////////////////////7+/v/y8vL/jo6O/xYW + Fv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9ubm7//////////+f///8IAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wD///8g////dP///8z////////////////w8PD/s7Oz/3Fxcf9SUlL/h4eH/8nJyf/8/Pz///////// + ///////o////iv///0f////c///////////29vb/v7+//y4uLv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/JCQk/+vr + 6///////////awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////AP///yT///90////yf////7///////////f39//Dw8P/hISE/1VV + Vf93d3f/tra2//Ly8v////////////////v///+1////Uv///wYAAAAAAAAAAP///xH///+q//////// + ///6+vr/4+Pj/2FhYf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xISEv+4uLj//////////8z///8EAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////NP///4L////S/////v// + ////////+fn5/8vLy/+SkpL/X19f/3Jycv+rq6v/5+fn/////////////////////9X///93////GwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///9e////6v/////9/f3/9PT0/6Ojo/8hISH/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/kJCQ//// + ///////0////KwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xD///9T////m////+T////////////////39/f/zMzM/5mZmf9paWn/eHh4/6urq//h4eH///////// + ////////////6P///5H///80////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8Y////u///////////+fn5/9ra2v9VVVX/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/4GBgf///////////f///1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8K////QP///4H////F////+/////////////////Pz8//Nzc3/np6e/3Nz + c/+Hh4f/tLS0/+Tk5P/////////////////////x////n////0j///8EAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////fP////v//////f39//X1 + 9f+ioqL/JCQk/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xEREf+Kior///////// + //7///9xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xj///+I////xv////j///////////// + ///+/v7/7u7u/9TU1P+xsbH/mJiY/6qqqv/IyMj/7u7u//////////////////////H///+l////UP// + /wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Of///9j///////////39/f/k5OT/ZWVl/xEREf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8TExP/nZ2d///////////+////c////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////yv////////////////r6+v/x8fH/4eHh/8vLy//IyMj/09PT/+bm5v/8/Pz///////// + ////////////5v///5r///9K////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP// + /3b////m///////////7+/v/vr6+/z4+Pv8SEhL/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/GBgY/7Gxsf//////////+/// + /2P///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////v7+//09PT/7+/v/+7u + 7v/y8vL/+/v7//////////////////////z////K////gf///zb///8CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wz///+d////////////////+fn5/6Sk + pP80NDT/ERER/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/x8fH//Dw8P///////////X///9OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///+L//////v7+////////////////////////////////3////57///9Y////FQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8S////gv///+///////////+zs7P////////////Ly8v+fn5//Ozs7/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8rKyv/1NTU///////////u////PAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////a/////3//////////P// + /9f///+d////YP///yD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8S////gv////D//////////8zMzP9TU1P/Hh4e/6Ki + ov/////////////////4+Pj/qqqq/zw8PP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/RERE/+bm5v//////////4////ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////HP///zf///8O////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Y////i/// + //D//////////9HR0f9cXFz/GBgY/x4eHv99fX3/7e3t///////////r////tf////7//////f39/8jI + yP9tbW3/ICAg/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ERER/3R0dP/4+Pj//////////87///8dAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8l////mP////j//////////87Ozv9dXV3/GBgY/xwcHP9zc3P/5OTk//// + ////////////yf///yf///8A////R////9z///////////7+/v/x8fH/q6ur/1tbW/8aGhr/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/y0t + Lf+5ubn///////////////+m////CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///86////r/////3//////v7+/8PD + w/9WVlb/GBgY/x4eHv90dHT/4eHh////////////////3////1z///8CAAAAAAAAAAAAAAAA////Cf// + /3v////v///////////9/f3/+Pj4/+np6f+oqKj/X19f/x8fH/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/yQkJP+NjY3/9fX1///////////1////aP///wEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wX///9W////yP///////////Pz8/7Kysv9ISEj/FxcX/yIiIv9+fn7/5ubm////////////////3/// + /2b///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wv///9u////4////////////v7+//r6 + +v/29vb/7u7u/7m5uf93d3f/ODg4/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ExMT/0tLS/+kpKT/9fX1//// + ////////////uf///yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xL///90////4P//////////9PT0/5ycnP82Njb/FxcX/y0t + Lf+Pj4//7u7u////////////////3////2b///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8G////Vv///7r////8/////////////////Pz8//r6+v/39/f/3t7e/6Oj + o/9paWn/MTEx/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8gICD/YWFh/6Ojo//o6Oj/////////////////////xf///0r///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///y7///+Z////9P// + ////////4+Pj/4KCgv8mJib/FxcX/0FBQf+mpqb/+Pj4////////////////0v///1z///8FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Af// + /zD///+j////////////////+/v7/////////////v7+//39/f/7+/v/5OTk/7CwsP98fHz/S0tL/yAg + IP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/x8fH/9gYGD/sbGx//f39//////////////////////l////kf// + /zP///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////B////1n////C/////v/////+/v7/x8fH/2NjY/8bGxv/Ghoa/2BgYP/Dw8P//v7+//// + ///////+////vv///0v///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////Wf///+P//////v7+/6ysrP8vLy//VVVV/+zs + 7P/////////////////////////////////+/v7/+/v7/9/f3/+zs7P/jY2N/3R0dP9jY2P/WFhY/05O + Tv9GRkb/Pj4+/zw8PP83Nzf/MzMz/zIyMv80NDT/OTk5/0BAQP9QUFD/dXV1/6Ghof/Q0ND/+vr6//// + /////////////v///8f///97////NP///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////JP///4j////p///////////19fX/pKSk/0JC + Qv8XFxf/LCws/4aGhv/j4+P////////////////4////ov///zL///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////PP// + /8f//////////9fX1/9SUlL/GRkZ/1JSUv/a2tr///////////v///9f////WP///4z///++////5v// + /////////////////////////////////////////////////////////v7+//39/f/8/Pz//Pz8//z8 + /P/8/Pz//v7+///////////////////////////9////zP///4H///8p////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I////WP// + /7z////+///////////b29v/fn5+/ykpKf8aGhr/VFRU/7CwsP/5+fn////////////////i////ff// + /xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////K////7D//////////+3t7f96enr/HBwc/y8vL/+rq6v//v7+//// + ///////d////QQAAAAAAAAAAAAAAAAAAAAD///8A////Ev///zP///9O////bP///4f///+j////vv// + /+v/////////////////////+/v7/9LS0v/V1dX/5OTk//39/f////////////////7///+X////R/// + /xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD///8w////kv///+z///////////n5+f+zs7P/WVlZ/yAgIP8zMzP/hoaG/97e + 3v////////////////3///+4////Uf///wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////KP///6X////8//////f3 + 9/+Wlpb/Jycn/x8fH/+Dg4P/8vLy///////////5////h////woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8q////Zv///4T////G/////f//////////7Ozs/6CgoP9NTU3/PT09/4mJ + if/k5OT////////////////Q////RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xz///9y////z////////////////9zc + 3P+Kior/OTk5/ywsLP9ra2v/vb29//v7+////////////////+b///+G////IgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Kv///6X////8//////v7+/+mpqb/NDQ0/xoaGv9qamr/4eHh////////////////uv// + /ykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Sf////r///////////// + ///7+/v/zs7O/4WFhf9ISEj/ZmZm/66urv/09PT////////////////d////Xv///wIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////Gv// + /2n///++/////f//////////9PT0/7W1tf9mZmb/Nzc3/19fX/+oqKj/8PDw////////////////+/// + /7P///9Q////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////NP///6z////9//////z8/P+tra3/PDw8/xoa + Gv9dXV3/09PT////////////////2f///0////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+x//////v7+//o6Oj/xMTE/42Njf+CgoL/p6en/+Hh4f////////////// + ///////G////WP///wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wL///8z////fP///8j////9///////////7+/v/09PT/5aWlv9aWlr/aGho/6Oj + o//l5eX/////////////////////1P///3X///8ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////Rv// + /7v///////////r6+v+qqqr/Pj4+/xwcHP9dXV3/zs7O////////////////6P///2v///8FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///9f/////+fn5/+jo + 6P/i4uL/8fHx/////////////////////+z///+T////MQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////KP///2b///+o////6P////////////////z8 + /P/i4uL/ubm5/4iIiP+Hh4f/r6+v/+Hh4f/////////////////////m////jv///zL///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8F////W////87///////////b29v+hoaH/PDw8/yEhIf9nZ2f/0tLS//// + ////////////7P///3n///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////j///////////////////////////////6v///6L///9N////BwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ff// + /9L/////////////////////+/v7/+zs7P/V1dX/tra2/7e3t//Ly8v/6+vr//////////////////// + //D///+f////Rf///wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8O////cv///+H//////////+/v + 7/+UlJT/Nzc3/yoqKv97e3v/3t7e////////////////6////3v///8OAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////X/// + /5X///+O////aP///y7///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9y///////////9/f3/9/f3/+3t7f/j4+P/4+Pj/+rq + 6v/5+fn/////////////////////8P///6P///9O////CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8Z////iv////D//////////+Pj4/+Ghob/MjIy/zw8PP+VlZX/7e3t////////////////5P// + /3P///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /27//////v7+//z8/P/6+vr//Pz8///////////////////////////g////lP///0f///8GAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8n////nP////j//////////9XV1f96enr/NjY2/1tb + W/+zs7P/+vr6////////////////0f///1////8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////K/////z/////////////////////////8P// + /7T///9x////K////wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///81////rP// + //3//////v7+/9DQ0P94eHj/RkZG/39/f//T09P////////////////9////tP///0T///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////VP///7b///+i////bP///zL///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8W////uf////7//////f39/9ra2v+UlJT/d3d3/6qqqv/t7e3///////// + ///////x////kv///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///4///////v7+//Dw + 8P/IyMj/ubm5/9bW1v/8/Pz////////////////Z////bv///w4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////o//////7+/v/7+/v//T09P////////////////z///+z////Rv// + /wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9i//////// + //////////////////D///+P////IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb///+l////8P///8X///9q////DQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////AAAB////////////////8AAAAA///////////////4A + AAAAA//////////////4AAAAAAB/////////////wAAAAAAAP////////////wAAAAAAAA////////// + //4AAAAAAAAA///////////8AAAAAAAAAB//////////8AAAAAAAAAAH/////////+AAAAAAAAAAAP// + ///////AAAAAAAAAAAA/////////gAAAAAAAAAAAD////////4AAAAAAAAAAAAP///////8AAAAAAAAA + AAAA///////+AAAAAAAAAAAAAH///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAB//////4AAAA + AAAAAAAAAAH/////+AAAAAAAAAAAAAAAf/////AAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAf//// + 8AAAAAAAAAAAAAAAB////+AAAAAAAAAAAAAAAAP////gAAAAAAAAAAAAAAAB////4AAAAAAAAAAAAAAA + AP///+AAAAAAAAAAAAAAAAB////gAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAA + AAAAAAAf///AAAAAAAAAAAAAAAAAH///wAAAAAAAAAAAAAAAAA///8AAAAAAAAAAAAAAAAAH///AAAAA + AAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAA/// + wAAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf4AAAAAAAAAAAAAAAAA + AAH8AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAA + AAAAAAAA/AAIAAAAAAAAAAAAAAAAAP/H+AAAAAAAAAAAAAAAAAD///wAAAAAAAAAAAAAAAAA///8AAAA + AAAAAAAAAAAAAf///gAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf// + /4AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////4AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAA + AAP////4AAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAAf///wAAAAAAAAA + AAAAAAAH///wAAAAAAAAAAAAAAAAB///AAAAAAAAAAAAAAAAAA//+AAAYAAAAAAAAAAAAAAP/8AAA/AA + AAAAAAAAAAAAH/4AAA/8AAAAAAAAAAAAAD/gAAB//gAAAAAAAAAAAAB/AAAD//+AAAAAAAAAAAAAfwAA + H///wAAAAAAAAAAAAP8AAP////AAAAAAAAAAAAP/AA/////gAAAAAAAAAAAH/wB/////gAAAAAAAAAAA + D/+H/////gAAAAAAAAAAAB////////gAAAAAAAAAAAA////////AABwAAAAAAAAAf///////AAB/AAAA + AAAAAf///////AAB/8AAAAAAAAP//////+AAB//wAAAAAAAP//////+AAB//8AAAAAAAf//////8AAB/ + /8AAAAAAA///////8AAD//+AA8AAAD///////4AAD//+AAf8AAH///////4AAH//+AAf+AAD///////g + AAH//8AAP/gAD///////AAAP//8AAP/4AH//////8AAAP//8AAP/+AH//////+AAAf//8AAP//gP//// + ///gAA///8AAP///////////4AB///8AAP///////////+AD///8AAP////////////wP///8AAf//// + //////////////AAf//////////////////wAf//////////////////8A////////////////////A/ + ///////////////////9//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////KAAAAEAAAACAAAAAAQAgAAAA + AAAAQAAAww4AAMMOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wz///9F////ef///6D///+6////yv///9H////R////0P///8X///+3////ov// + /4j///9m////Pf///w0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8H////Wf///7f7+/v5zc3N/52dnf95eXn/YGBg/1BQUP9ISEj/RkZG/0lJ + Sf9SUlL/YGBg/3Jycv+Li4v/q6ur/9HR0f/5+fn8////zf///4b///8v////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xL///+H/v7+7MbGxv9ra2v/IiIi/xEREf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8RERH/Ghoa/09PT/+ZmZn/6urq//// + /7n///8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0/9/f3qp6en/zY2Nv8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xsbG/+AgID/8PDw/P///8X///+S////RP///wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Af///5Dk5OT/TExM/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/29vb/+FhYX/hISE/9XV1f/////h////eP// + /xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Af// + /539/f3/JSUl/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+jo6P/IyMj/xAQ + EP8QEBD/RUVF/66urv/8/Pzx////g////xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///3TU1NT/oqKi/yUlJf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8SEhL/tbW1/xAQEP8QEBD/EBAQ/xAQEP8QEBD/NDQ0/6mpqf/8/Pzw////fP///w0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zLx8fH6MTEx/35+fv8+Pj7/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/R0dH/4GBgf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ODg4/7Ky + sv/+/v7p////cf///wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wL////Lb29v/xAQEP9dXV3/YGBg/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/5iYmP8xMTH/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/QUFB/729vf/////h////YP///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9S09PT/xIS + Ev8QEBD/MzMz/4uLi/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xcXF/+zs7P/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/TU1N/87Ozv/////N////NAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////vmVlZf8QEBD/EBAQ/xEREf+urq7/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP9oaGj/ZGRk/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8SEhL/bm5u//Hx8fr///93////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////EvX19fwZGRn/EBAQ/xAQEP8QEBD/p6en/xoaGv8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8RERH/t7e3/xUVFf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8wMDD/09PT/////53///8DAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0u/v7//EBAQ/xAQEP8QEBD/EBAQ/2dn + Z/9dXV3/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/XFxc/3R0dP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/x4eHv/IyMj/////mP// + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///91l5eX/xAQ + EP8QEBD/EBAQ/xAQEP8eHh7/qKio/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/FRUV/7e3t/8WFhb/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/Hx8f/9nZ2f////9rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////hoaGhv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/5ycnP8sLCz/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/319 + ff9ZWVn/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP83Nzf/9vb29v///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///4eGhob/EBAQ/xAQEP8QEBD/EBAQ/xAQEP83Nzf/lZWV/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/zY2Nv+lpaX/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/4KCgv////+2////AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+Sfn5+/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/6CgoP8zMzP/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xkZGf+0tLT/IiIi/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8YGBj/5eXl/////zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////i4KC + gv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9SUlL/vb29/6Wlpf9GRkb/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xISEv+ioqL/Q0ND/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/39/f/////+jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///2uhoaH/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/YGBg/z4+Pv8RERH/f39//0ZG + Rv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xEREf+QkJD/XFxc/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8oKCj//f398v///wYAAAAAAAAAAAAA + AAD///8G////Hv///xv///8m////Qf///2z///+73d3d/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/ygo + KP9SUlL/EBAQ/xYWFv+rq6v/ExMT/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xMT + E/+Tk5P/YmJi/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/9HR + 0f////85AAAAAAAAAAD///8B////2/n5+f/x8fH/5ubm/8/Pz/+qqqr/fHx8/729vf9CQkL/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/dnZ2/xAQEP8QEBD/U1NT/3p6ev8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/yEhIf+np6f/VFRU/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP+jo6P/////aAAAAAAAAAAA////Av////Hm5ub/v7+//6+vr/+1tbX/0NDQ//b2 + 9vz////jqamp/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/19fX/88PDz/EBAQ/xAQEP+VlZX/Xl5e/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/1RUVP+vr6//MzMz/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/i4uL/////4EAAAAAAAAAAAAAAAD///81////av// + /3b///90////Yf///z7///8O////Ffr6+vM6Ojr/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8RERH/jIyM/xUV + Ff8QEBD/FRUV/5WVlf+IiIj/HR0d/xAQEP8QEBD/PT09/6ampv95eXn/FBQU/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/4eHh/////+FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///99w8PD/xUVFf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/ykpKf+FhYX/EBAQ/xAQEP8QEBD/TExM/6Wlpf+ioqL/nZ2d/7Ozs/8hISH/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP+VlZX/////dgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP// + /9iSkpL/EBAQ/xEREf8QEBD/EBAQ/xAQEP8QEBD/RkZG/3p6ev8QEBD/EBAQ/xAQEP8QEBD/ERER/xIS + Ev+AgID/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/r6+v/////1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8z/f39+H5+fv8RERH/EBAQ/xAQEP8cHBz/W1tb/5mZmf+zs7P/dHR0/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/dHR0/xEREf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/9LS0v////82AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///1r8/Pz9rKys/6Ghof+wsLD/nJyc/1lZ + Wf8dHR3/EBAQ/0hISP+QkJD/JiYm/xAQEP8nJyf/a2tr/yEhIf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xgYGP/5+fn6////CgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Wv7+ + /vmcnJz/ExMT/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ISEh/29vb/+CgoL/Z2dn/xUVFf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP9QUFD/////yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8C////Q////6X6+vr48/Pz/6qqqv8aGhr/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/o6Oj/////3kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///yr///+F////4d/f3/+fn5//lZWV/9vb2//+/v7/zc3N/zExMf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/KSkp//b29vn///8bAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD///8m////ev///9Du7u7/srKy/5SUlP+ysrL/8fHx/v///8H///9e////Tf// + /+rs7Oz/YWFh/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ERER/7Gxsf////+OAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8E////PP///4b////V8PDw/76+vv+goKD/rKys/+Tk5P/////e////gv// + /yQAAAAAAAAAAAAAAAD///8Y////r/z8/P+mpqb/ISEh/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/4iI + iP/////S////CwAAAAAAAAAA////KP///3L///+w////7/Dw8P/Pz8//t7e3/7q6uv/l5eX/////5f// + /5L///86////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///9s////9eXl5f9fX1//EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/ERER/46Ojv/////c////HAAAAAAAAAAAAAAAAP////L7+/v/8vLy/+bm5v/m5ub/+Pj4/v// + /9L///+H////Of///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /yD///+k/v7+/729vf8/Pz//EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/FBQU/6Ojo//////P////GQAAAAAAAAAAAAAAAAAAAAD////S/////v// + /9z///+f////X////xsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wT///9h////3MfHx/+rq6v//Pz8/7S0tP9BQUH/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/HR0d/7m5uf////+/////DwAAAAAAAAAAAAAAAAAA + AAAAAAAA////B////xH///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Cf///2r////eysrK/1hYWP9jY2P/2tra/////7f///9+/v7+9szM + zP9zc3P/JSUl/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/QkJC/9ra2v////+f////BwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8X////gP7+/uq+vr7/VVVV/2ZmZv/V1dX/////0f// + /1D///8AAAAAAP///yH///+a////+Pj4+P++vr7/dnZ2/zQ0NP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xEREf9ERET/qamp//z8 + /O7///9h////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///zL///+e+Pj496enp/9LS0v/eHh4/9/f + 3//////L////Uv///wEAAAAAAAAAAAAAAAAAAAAAAAAAAP///xf///96////6P7+/v/7+/v/4ODg/6Wl + pf9tbW3/Ojo6/xQUFP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8UFBT/TExM/56e + nv/i4uL/////3f///37///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////Xv///8bm5ub/iIiI/0xM + TP+Xl5f/8PDw/f///7T///9C////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8P////iPX1 + 9fiFhYX/bGxs//r6+v7///+t////0v////n29vb/0NDQ/7W1tf+pqan/oKCg/5ycnP+Xl5f/mZmZ/6Oj + o//FxcX/8vLy/v///9P///98////LP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///zH///+T/f397sPD + w/9ra2v/ampq/8DAwP/+/v7t////jv///yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wr///9z/f3966qqqv9OTk7/s7Oz/////9////9KAAAAAAAAAAD///8E////IP///2H///+r////+fr6 + +v+6urr/m5ub//Hx8f/////z////d////xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8h////dv// + /9Dq6ur/np6e/3Nzc/+hoaH/7u7u/v///8D///9c////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Df///3X+/v7oubm5/1RUVP+Wlpb/9/f39f///4L///8KAAAAAAAAAAAAAAAAAAAAAP// + /z7+/v7+6+vr/7a2tv+VlZX/xcXF//z8/PH///+O////GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////Q/// + /4f////Q9/f3/8/Pz/+oqKj/qamp/+Li4v/////d////gf///yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8Y////hf39/e62trb/XFxc/5OTk//z8/P6////m////xwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9Z/f39//Ly8v/7+/v6////u////2H///8MAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8i////9Pz8/P/y8vL/5OTk/9nZ2f/t7e3/////5P///5H///85////AQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yn///+c+Pj496qqqv9nZ2f/pKSk//f39/j///+a////IgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Af///z3///8+////DAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Jv////79/f3//v7++////8n///+D////N////wIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////OP///7Dz8/P9pKSk/4CAgP/Dw8P//v7+7P// + /4X///8ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9C////RP///w4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////l/v7+//W1tb/t7e3/+Xl + 5f/////R////ZP///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /8H6+vr//Pz8+////6v///8+////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8r////bf///x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////// + //////////////////////////////////////////////////////gAB///////wAAAf/////8AAAA/ + /////gAAAAP////4AAAAAP////AAAAAAP///8AAAAAAP///gAAAAAAP//8AAAAAAAP//wAAAAAAAf//A + AAAAAAAf/4AAAAAAAA//gAAAAAAAB/+AAAAAAAAH/4AAAAAAAAP/gAAAAAAAAf+AAAAAAAAB/4AAAAAA + AAH/gAAAAAAAAOAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAOAAAAAAAAAA/+AAAAAAAAD/4AAAAAAAAP/w + AAAAAAAA//gAAAAAAAD//AAAAAAAAf/wAAAAAAAB/8AAAAAAAAH8AAAAAAAAA+ABwAAAAAADAAfgAAAA + AAcAP/gAAAAADwP/8AAAAAAfH//AAAAAAD///wAgAAAAf//4APgAAAH//+AD+AAAB///AB/gGAB///gA + f4A8Af//wAP+APwH//+AD/gD/D///4B/4A//////x//AP////////8D/////////x/////////////// + /////////////////////////////////////////////////////////////////////////////ygA + AAAwAAAAYAAAAAEAIAAAAAAAACQAAMMOAADDDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wH///8J////E////x3///8d////Gf///w////8I////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wv///9U////nOvr69POzs7yvLy8/rKysv+wsLD/tbW1/8DAwPzQ0NDu5ubm2Pv7+7L///9/////QP// + /wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8d////j9zc3OqGhob/Pj4+/xkZGf8SEhL/ERER/xEREf8RERH/ERER/xEREf8RERH/FhYW/ycn + J/9WVlb/lpaW/+Li4ub///94////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Av///2TR0dHzVVVV/xISEv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xYWFv91dXX/7Ozs6vj4+LX///9n////EgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8D////k5+fn/4YGBj/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8TExP/ioqK/ygoKP90dHT/0NDQ8P// + /5D///8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///99s7Oz/1hYWP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP81NTX/aGho/xAQ + EP8QEBD/ExMT/1ZWVv/Ly8v0////j////xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zq5ubn8KSkp/25ubv8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP94eHj/JiYm/xAQEP8QEBD/EBAQ/xAQEP8RERH/W1tb/9HR0fP///+D////EgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A/Pz88osLCz/ExMT/4OD + g/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP+Pj4//EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xQUFP9nZ2f/2tra6f// + /2////8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////QpmZ + mf4QEBD/EBAQ/4iIiP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/0VFRf9cXFz/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/GRkZ/4CAgP/19fXH////IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////k0JCQv8QEBD/EBAQ/3p6ev8gICD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/4+Pj/8TExP/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP89PT3/3t7e6P///zEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8A7u7uyRkZGf8QEBD/EBAQ/zQ0NP9oaGj/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/QUFB/2RkZP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/Ly8v/+Dg4Ob///8dAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B3d3d4REREf8QEBD/EBAQ/xAQEP+NjY3/ERER/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8TExP/kZGR/xQU + FP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/0ND + Q//4+Pi9////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D2tra5RAQEP8QEBD/EBAQ/xAQ + EP9VVVX/TExM/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP9ubm7/Pj4+/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP+Pj4//////WgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E19fX5xAQ + EP8QEBD/EBAQ/xAQEP8SEhL/oKCg/2pqav8YGBj/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/0NDQ/9vb2//EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8iIiL/7e3t0P///wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8B5ubm1BUVFf8QEBD/EBAQ/xAQEP8QEBD/c3Nz/yYmJv98fHz/FxcX/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/NDQ0/4SEhP8RERH/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/o6Oj/v///zAAAAAAAAAAAP// + /yT///9V////V////2z+/v6Y8fHx7T09Pf8QEBD/EBAQ/xAQEP8QEBD/VFRU/xEREf8vLy//bW1t/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP89PT3/hISE/xMTE/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/Xl5e//// + /3EAAAAAAAAAAP///7rh4eH/ubm5/6ampv+cnJz/srKy/5aWlv8QEBD/EBAQ/xAQEP8QEBD/Nzc3/z09 + Pf8QEBD/b29v/z4+Pv8QEBD/EBAQ/xAQEP8QEBD/EhIS/2RkZP9ycnL/EhIS/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/ODg4/////5kAAAAAAAAAAP///0f///+R////mf///4z///9o////M/Dw8NIoKCj/EBAQ/xAQ + EP8QEBD/EBAQ/25ubv8TExP/FBQU/4WFhf9ZWVn/ERER/xAQEP9AQED/jIyM/0JCQv8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/Li4u//7+/qQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /0uvr6//EhIS/xAQEP8QEBD/EBAQ/x4eHv9ubm7/ERER/xAQEP9NTU3/gICA/3t7e/+MjIz/EhIS/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/Ozs7/////5UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD+/v6mhoaG/xEREf8QEBD/EBAQ/xcXF/9tbW3/e3t7/xEREf8QEBD/EBAQ/xAQ + EP9dXV3/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/WFhY/////3cAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8P/Pz8zpqamv9/f3//h4eH/3h4eP9HR0f/Ojo6/3R0 + dP8cHBz/FBQU/0xMTP8sLCz/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/goKC//// + /0sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP7+/tuXl5f/FBQU/xAQ + EP8QEBD/EBAQ/xkZGf9ZWVn/YmJi/x0dHf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/wMDA+P///xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///x7///937+/v1Ly8 + vP/k5OT/r6+v/x8fH/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8yMjL/+Pj4tv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xX///9m+/v7vczM + zPmvr6//urq6/+zs7Nz///97////udbW1v89PT3/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+wsLD9////QAAAAAAAAAAA////Bf///y////92+fn5wtfX + 1/y7u7v/ubm5/+Hh4ez///+b////Pv///wIAAAAA////Av///2729vb2gICA/xYWFv8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ERER/4iIiP////+J////AAAAAAD///+g+/v75+/v + 7//f39//1NTU/+fn5+j+/v6g////Tv///woAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8x/v7+wc/P + z/5ISEj/ERER/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8TExP/k5OT//7+/pT///8CAAAAAAAA + AAD////m/Pz89f39/b////9+////Of///wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8N////e9/f3/nNzc3/tra2/0RERP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xcXF/+pqan+////fv// + /wIAAAAAAAAAAAAAAAD///8J////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8A////GP///4Db29vtfHx8/4CAgP/n5+ff////Yf///7zNzc3+dnZ2/ywsLP8RERH/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/Pz8//83N + zfT///9e////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AP///yz+/v6ZzMzM83h4eP+IiIj/4+Pj4v///27///8KAAAAAP///wH///9E////s/j4 + +PvJycn/iIiI/0xMTP8dHR3/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/Jycn/2pq + av+5ubn6+vr6sf///ykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wX///9U+fn5vLGxsfxzc3P/np6e/+7u7tT///9i////CQAAAAAAAAAAAAAAAAAA + AAAAAAAA////M/j4+NKWlpb/zs7O/////9D09PTj0dHR/qWlpf+Kior/f39//3l5ef91dXX/enp6/5OT + k//Dw8P79vb2vv///2r///8f////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wH///8q////ieHh4eeZmZn/hISE/8LCwvf+/v6r////Q////wEAAAAAAAAAAAAA + AAAAAAAA////AP///yr7+/untbW1/XV1df/R0dHx////dP///wT///8A////Df///3L////N7u7u/66u + rv+/v7///f396v///23///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wT///8w////evb29svKysr9p6en/7Kysv7s7OzS////df///xoAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD///81+/v7qbu7u/p9fX3/urq6+v39/Z////8dAAAAAAAAAAAAAAAA////D/39 + /fbg4OD/ycnJ/u/v79L///9w////EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////bv39/eb09PT+5OTk/9fX1//t7e3g////jP///zP///8CAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8B////Sfr6+ryysrL9ioqK/8HBwfv8/Pyk////K////wAAAAAAAAAAAAAA + AAAAAAAA////Af///13///9n////K////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////h/7+/vD+/v6+////ff///zP///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////BP///1r29vbRvb29/6Ghof/a2trt////jv///yEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Av///wcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Uvr6+v/g4OD/8/Pz0////2v///8PAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////F////4////9F////AwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD//4A///8AAP/8AAP//wAA//AAAP//AAD/wAAAH/8AAP+AAAAH/wAA/4AAAAH/AAD/AAAAAH8AAP4A + AAAAHwAA/gAAAAAPAAD+AAAAAAcAAPwAAAAAAwAA/AAAAAABAAD8AAAAAAEAAPwAAAAAAAAA/AAAAAAA + AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD/AAAAAAAAAP8AAAAAAAAA/4AAAAAAAAD/wAAAAAAAAP4A + AAAAAAAA+AAAAAABAACACAAAAAEAAAB8AAAAAwAAA/4AAAAHAAA/8AAAAA8AAP/AEAAAPwAA/wB4AAB/ + AAD4AeAAB/8AAMAPgHAf/wAAgD4A8H//AACB+Af///8AAJ/4H////wAA//h/////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQ + AADDDgAAww4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////A////y////9W////Z////2j///9f////Sv// + /yn///8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Jubm5pOamprrY2Nj/z4+Pv8uLi7/LCws/zU1 + Nf9HR0f/Z2dn/5KSkvLS0tKt////OQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////APDw8Hd9fX36Ghoa/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xMTE/97e3v+tra21evr64r///8iAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADq6uqEenp6/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/15eXv8VFRX/HR0d/3p6evvc3Nyh////IgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////QGhoaP5eXl7/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ZGRk/xAQEP8QEBD/EBAQ/xoa + Gv99fX364+Pjlv///xkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+vr7EEBAQ/19f + X/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/ygoKP9OTk7/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8fHx//jo6O8/b29mn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////F3d3 + d/4QEBD/S0tL/yYmJv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ZmZm/xER + Ef8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/TExM/+bm5o7///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8/T09P/xAQEP8TExP/YGBg/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/y0t + Lf9OTk7/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/UFBQ//n5+WIAAAAAAAAAAAAA + AAAAAAAAAAAAAP///0ZJSUn/EBAQ/xAQEP9fX1//GRkZ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8SEhL/bGxs/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/mJiY7f// + /w4AAAAAAAAAAAAAAAAAAAAA////PlFRUf8QEBD/EBAQ/zU1Nf9sbGz/R0dH/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/2hoaP8dHR3/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8yMjL//v7+ZwAAAAD///849vb2juHh4Zm7u7vJe3t7/xAQEP8QEBD/FhYW/zo6Ov9JSUn/Kysr/xAQ + EP8QEBD/EBAQ/xQUFP9oaGj/JCQk/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP/Ly8uoAAAAAP///0rg4OC3ycnJtebm5pLg4OC7Gxsb/xAQEP8QEBD/Tk5O/xER + Ef9nZ2f/MTEx/xAQEP9BQUH/ZGRk/xkZGf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/7GxscEAAAAAAAAAAAAAAAAAAAAAAAAAAP///yGWlpb1EBAQ/xAQ + EP8WFhb/VVVV/xAQEP9ERET/WFhY/1lZWf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/vb29tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /mGOjo7/XFxc/1tbW/9eXl7/V1dX/xUVFf8sLCz/LS0t/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xISEv/o6OiOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Ef39/byTk5P/ExMT/xAQEP8UFBT/RERE/ycnJ/8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/RUVF/////1AAAAAAAAAAAAAA + AAD///8K////Utzc3KvHx8f3xcXF7/Hx8aq5ubn6JCQk/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP+qqqrh////B/// + /yb///9p6OjosNbW1vTPz8/42NjYsv///1j///8JAAAAAP///zLk5OTYXV1d/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/hYWF9v// + /z4AAAAA/v7+8PT09N7y8vKe////Vv///w8AAAAAAAAAAAAAAAAAAAAAAAAAAP///yHv7+/fqamp/0VF + Rf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/ExMT/5WV + le////8+AAAAAAAAAAD///8G////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///ybj4+OXnp6e96Cg + oPPt7e2C////ZcrKyuR7e3v/MjIy/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/0ND + Q/+6urrT////KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Av///0nMzMyzoKCg/aam + puzv7++D////FQAAAAAAAAAA////Cvz8/Li6urr/3d3d6qWlpfJ6enr/YGBg/1dXV/9UVFT/YmJi/4+P + j/TQ0NCp////V////wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////JvT09IC7u7vgr6+v/7u7 + u8f+/v5h////CQAAAAAAAAAA////A/7+/lq3t7fXoKCg/d/f35v///8T////Af7+/m/l5eXpw8PD/97e + 3t////9h////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I/v7+kPPz89Xj4+P/zc3N3fHx + 8YX///8pAAAAAAAAAAAAAAAA////Cvv7+2u6urrcq6ur/dPT067///8uAAAAAAAAAAAAAAAA/v7+Zvj4 + +JH///9H////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr+/v6h////dP// + /y7///8AAAAAAAAAAAAAAAAAAAAAAP39/XTd3d3rv7+/9OXl5Zb///8oAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39lv39/XH///8QAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////wB///wAH//wA + AP/8AAA/+AAAD/gAAAPwAAAB8AAAAfAAAADwAAAAgAAAAIAAAAD4AAAA/AAAAPwAAADgAAAAAIAAAQfA + AAM/AAAH+AwAD8AwAH8BwOH/B4P///+P////////////////////////KAAAABgAAAAwAAAAAQAgAAAA + AAAACQAAww4AAMMOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Y8/PzXMjIyIO5ubmOv7+/idvb + 23T9/f1M////EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Ga6urqheXl76Hh4e/xEREf8QEBD/EBAQ/xISEv8nJyf/ZWVl+b+/v5r6+vpH////BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8goKCg5BISEv8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/05OTv8vLy//f39/4ODg4Gj///8GAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wGenp7AS0tL/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/09P + T/8QEBD/EBAQ/yMjI/+Dg4Pd5+fnW////wEAAAAAAAAAAAAAAAAAAAAAAAAAAP///zU/Pz//SEhI/xQU + FP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/PT09/yQkJP8QEBD/EBAQ/xAQEP8QEBD/Li4u/62t + rbT///8MAAAAAAAAAAAAAAAAAAAAAOXl5WsSEhL/GRkZ/0VFRf8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8RERH/U1NT/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xgYGP+vr6+w////AQAAAAAAAAAAAAAAANnZ + 2XUQEBD/EBAQ/1VVVf8pKSn/EBAQ/xAQEP8QEBD/EBAQ/xAQEP9MTEz/Gxsb/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP80NDT/8/PzSwAAAAD///8e////MfHx8ZYcHBz/EBAQ/zo6Ov85OTn/KSkp/xAQ + EP8QEBD/EBAQ/0FBQf8uLi7/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/n5+fqAAA + AADz8/Okzc3Nybu7u6Zqamr0EBAQ/xoaGv8zMzP/UlJS/yMjI/8cHBz/UVFR/ykpKf8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/gYGBzwAAAAAAAAAAAAAAAAAAAADV1dV8Li4u/xAQ + EP9ERET/Kysr/zs7O/9dXV3/ERER/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/iIiIwgAAAAAAAAAAAAAAAAAAAAD///8E2dnZsGxsbP84ODj/NjY2/zs7O/8pKSn/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/sLCwlQAAAAAAAAAA////Bfz8 + /EnMzMyj0tLS693d3cxRUVH/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQ + EP8QEBD/EBAQ/xAQEP9AQED++vr6Pf39/WPt7e2p4eHh6dDQ0Lvt7e1k////EP///wH5+fllkpKS7x4e + Hv8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/xAQEP8QEBD/EBAQ/zIyMv/Hx8eI////AP39 + /Xr+/v5P////EAAAAAAAAAAAAAAAAP///wbo6Oheq6ur3NPT09CAgIDuMDAw/xAQEP8QEBD/EBAQ/xAQ + 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 + AAD//wAA//8AAA== + + \ No newline at end of file diff --git a/grapher/Icon/mouse.ico b/grapher/Icon/mouse.ico new file mode 100644 index 0000000..493036a Binary files /dev/null and b/grapher/Icon/mouse.ico differ diff --git a/grapher/grapher.csproj b/grapher/grapher.csproj index 8f5eeda..6447c3a 100644 --- a/grapher/grapher.csproj +++ b/grapher/grapher.csproj @@ -133,6 +133,7 @@ + -- cgit v1.2.3 From 2a756dfb08b4f8c0870173ad4e0393cdeef33c94 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Sun, 20 Sep 2020 23:16:15 -0700 Subject: Attempt to get separate x/y working --- grapher/Models/AccelGUIFactory.cs | 11 +++--- grapher/Models/Calculations/AccelCalculator.cs | 46 ++++++++++++++++++++-- grapher/Models/Calculations/AccelChartData.cs | 24 ++++++++--- grapher/Models/Calculations/AccelData.cs | 38 ++++++++++++++++-- .../Models/Charts/ChartState/XYOneGraphState.cs | 8 +++- 5 files changed, 109 insertions(+), 18 deletions(-) diff --git a/grapher/Models/AccelGUIFactory.cs b/grapher/Models/AccelGUIFactory.cs index 526e399..eb30864 100644 --- a/grapher/Models/AccelGUIFactory.cs +++ b/grapher/Models/AccelGUIFactory.cs @@ -89,6 +89,10 @@ namespace grapher.Models Label optionSetYTitle, Label mouseLabel) { + var accelCalculator = new AccelCalculator( + new Field(dpiTextBox.TextBox, form, Constants.DefaultDPI), + new Field(pollRateTextBox.TextBox, form, Constants.DefaultPollRate)); + var accelCharts = new AccelCharts( form, new ChartXY(accelerationChart, accelerationChartY, Constants.SensitivityChartTitle), @@ -96,7 +100,8 @@ namespace grapher.Models new ChartXY(gainChart, gainChartY, Constants.GainChartTitle), showVelocityGainToolStripMenuItem, showLastMouseMoveMenuItem, - writeButton); + writeButton, + accelCalculator); var sensitivity = new OptionXY( sensitivityBoxX, @@ -276,10 +281,6 @@ namespace grapher.Models lockXYLabel, accelCharts); - var accelCalculator = new AccelCalculator( - new Field(dpiTextBox.TextBox, form, Constants.DefaultDPI), - new Field(pollRateTextBox.TextBox, form, Constants.DefaultPollRate)); - var settings = new SettingsManager( activeAccel, accelCalculator.DPI, diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index ff1088b..35fee2d 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -96,9 +96,8 @@ namespace grapher.Models.Calculations public void CalculateCombinedDiffSens(AccelData data, ManagedAccel accel, DriverSettings settings, ICollection magnitudeData) { - double lastInputMagnitudeX = 0; + double lastInputMagnitude = 0; double lastOutputMagnitudeX = 0; - double lastInputMagnitudeY = 0; double lastOutputMagnitudeY = 0; Sensitivity = GetSens(ref settings); @@ -116,13 +115,54 @@ namespace grapher.Models.Calculations data.Combined.AccelPoints.Add(magnitudeDatum.magnitude, ratio); } - var xRatio = magnitudeDatum.x > 0 ? output.Item1 / magnitudeDatum.x : settings.sensitivity.x * ratio; + var xRatio = settings.sensitivity.x * ratio; + var yRatio = settings.sensitivity.y * ratio; if (!data.X.AccelPoints.ContainsKey(magnitudeDatum.magnitude)) { + data.X.AccelPoints.Add(magnitudeDatum.magnitude, xRatio); + } + if (!data.Y.AccelPoints.ContainsKey(magnitudeDatum.magnitude)) + { + data.Y.AccelPoints.Add(magnitudeDatum.magnitude, yRatio); } + + var xOut = xRatio * magnitudeDatum.magnitude; + var yOut = yRatio * magnitudeDatum.magnitude; + + var inDiff = magnitudeDatum.magnitude - lastInputMagnitude; + var xOutDiff = xOut - lastOutputMagnitudeX; + var yOutDiff = yOut - lastOutputMagnitudeY; + var xSlope = inDiff > 0 ? xOutDiff / inDiff : settings.sensitivity.x; + var ySlope = inDiff > 0 ? yOutDiff / inDiff : settings.sensitivity.y; + + if (!data.X.VelocityPoints.ContainsKey(magnitudeDatum.magnitude)) + { + data.X.VelocityPoints.Add(magnitudeDatum.magnitude, xOut); + } + + if (!data.Y.VelocityPoints.ContainsKey(magnitudeDatum.magnitude)) + { + data.Y.VelocityPoints.Add(magnitudeDatum.magnitude, yOut); + } + + if (!data.X.GainPoints.ContainsKey(magnitudeDatum.magnitude)) + { + data.X.GainPoints.Add(magnitudeDatum.magnitude, xSlope); + } + + if (!data.Y.GainPoints.ContainsKey(magnitudeDatum.magnitude)) + { + data.Y.GainPoints.Add(magnitudeDatum.magnitude, ySlope); + } + + lastInputMagnitude = magnitudeDatum.magnitude; + lastOutputMagnitudeX = xOutDiff; + lastOutputMagnitudeY = yOutDiff; } + + data.Combined.OrderedVelocityPointsList.AddRange(data.Combined.VelocityPoints.Values.ToList()); } public ReadOnlyCollection GetMagnitudes() diff --git a/grapher/Models/Calculations/AccelChartData.cs b/grapher/Models/Calculations/AccelChartData.cs index 8c0c8ea..c943643 100644 --- a/grapher/Models/Calculations/AccelChartData.cs +++ b/grapher/Models/Calculations/AccelChartData.cs @@ -52,12 +52,7 @@ namespace grapher.Models.Calculations } else { - var velIdx = OrderedVelocityPointsList.BinarySearch(outVelocityValue); - - if (velIdx < 0) - { - velIdx = ~velIdx; - } + var velIdx = GetVelocityIndex(outVelocityValue); velIdx = Math.Min(velIdx, VelocityPoints.Count - 1); values = (VelocityPoints.ElementAt(velIdx).Key, AccelPoints.ElementAt(velIdx).Value, GainPoints.ElementAt(velIdx).Value); @@ -66,6 +61,23 @@ namespace grapher.Models.Calculations } } + public (double, double, double) ValuesAtIndex(int index) + { + return (VelocityPoints.ElementAt(index).Value, AccelPoints.ElementAt(index).Value, GainPoints.ElementAt(index).Value); + } + + public int GetVelocityIndex(double outVelocityValue) + { + var velIdx = OrderedVelocityPointsList.BinarySearch(outVelocityValue); + + if (velIdx < 0) + { + velIdx = ~velIdx; + } + + return velIdx; + } + #endregion Methods } } diff --git a/grapher/Models/Calculations/AccelData.cs b/grapher/Models/Calculations/AccelData.cs index 057a53b..894774b 100644 --- a/grapher/Models/Calculations/AccelData.cs +++ b/grapher/Models/Calculations/AccelData.cs @@ -1,5 +1,6 @@ using grapher.Models.Charts; using System; +using System.Collections.Generic; namespace grapher.Models.Calculations { @@ -37,6 +38,8 @@ namespace grapher.Models.Calculations private EstimatedPoints EstimatedY { get; } + private Dictionary OutVelocityToPoints { get; } + #endregion Properties #region Methods @@ -50,10 +53,10 @@ namespace grapher.Models.Calculations public void CalculateDots(int x, int y, double timeInMs) { - var magnitude = AccelCalculator.Velocity(x, y, timeInMs); + var outVelocity = AccelCalculator.Velocity(x, y, timeInMs); - (var inCombVel, var combSens, var combGain) = Combined.FindPointValuesFromOut(magnitude); - Estimated.Velocity.Set(inCombVel, magnitude); + (var inCombVel, var combSens, var combGain) = Combined.FindPointValuesFromOut(outVelocity); + Estimated.Velocity.Set(inCombVel, outVelocity); Estimated.Sensitivity.Set(inCombVel, combSens); Estimated.Gain.Set(inCombVel, combGain); } @@ -74,6 +77,35 @@ namespace grapher.Models.Calculations EstimatedY.Gain.Set(inYVelocity, yGain); } + public void CalculateDotsCombinedDiffSens(int x, int y, double timeInMs) + { + var outVelocity = AccelCalculator.Velocity(x, y, timeInMs); + + if (OutVelocityToPoints.TryGetValue(outVelocity, out var points)) + { + EstimatedX.Sensitivity.Set(points.Item1, points.Item2); + EstimatedX.Velocity.Set(points.Item1, points.Item3); + EstimatedX.Gain.Set(points.Item1, points.Item4); + EstimatedY.Sensitivity.Set(points.Item1, points.Item5); + EstimatedY.Velocity.Set(points.Item1, points.Item6); + EstimatedY.Gain.Set(points.Item1, points.Item7); + } + else + { + var index = Combined.GetVelocityIndex(outVelocity); + var inVelocity = Combined.VelocityPoints[index]; + var xPoints = X.FindPointValuesFromOut(outVelocity); + var yPoints = Y.FindPointValuesFromOut(outVelocity); + OutVelocityToPoints.Add(outVelocity, (inVelocity, xPoints.Item1, xPoints.Item2, xPoints.Item3, yPoints.Item1, yPoints.Item2, yPoints.Item3)); + EstimatedX.Sensitivity.Set(inVelocity, xPoints.Item1); + EstimatedX.Velocity.Set(inVelocity, xPoints.Item2); + EstimatedX.Gain.Set(inVelocity, xPoints.Item3); + EstimatedY.Sensitivity.Set(inVelocity, yPoints.Item1); + EstimatedY.Velocity.Set(inVelocity, yPoints.Item2); + EstimatedY.Gain.Set(inVelocity, yPoints.Item3); + } + } + #endregion Methods } } diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs index bc9a88d..c1153c1 100644 --- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -1,4 +1,5 @@ using grapher.Models.Calculations; +using grapher.Models.Serialized; namespace grapher.Models.Charts.ChartState { @@ -27,7 +28,7 @@ namespace grapher.Models.Charts.ChartState public override void MakeDots(int x, int y, double timeInMs) { - Data.CalculateDotsXY(x, y, timeInMs); + Data.CalculateDotsCombinedDiffSens(x, y, timeInMs); } public override void Bind() @@ -36,5 +37,10 @@ namespace grapher.Models.Charts.ChartState VelocityChart.BindXY(Data.X.VelocityPoints, Data.Y.VelocityPoints); GainChart.BindXY(Data.X.GainPoints, Data.Y.GainPoints); } + + public override void Calculate(ManagedAccel accel, DriverSettings settings) + { + Calculator.CalculateCombinedDiffSens(Data, accel, settings, Calculator.MagnitudesCombined); + } } } -- cgit v1.2.3 From ba642cd8c8e63ec3778fa17ecbcd7964074aaba1 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 21 Sep 2020 00:08:19 -0700 Subject: separate x/y mostly works --- grapher/Form1.Designer.cs | 191 ++++++++++++--------- grapher/Models/AccelGUI.cs | 2 +- grapher/Models/Calculations/AccelCalculator.cs | 8 +- grapher/Models/Calculations/AccelChartData.cs | 4 +- grapher/Models/Calculations/AccelData.cs | 16 +- grapher/Models/Charts/AccelCharts.cs | 1 + grapher/Models/Charts/ChartState/ChartState.cs | 10 +- .../Models/Charts/ChartState/XYOneGraphState.cs | 18 +- grapher/Models/Charts/ChartXY.cs | 26 ++- 9 files changed, 165 insertions(+), 111 deletions(-) diff --git a/grapher/Form1.Designer.cs b/grapher/Form1.Designer.cs index d8133e5..535ee15 100644 --- a/grapher/Form1.Designer.cs +++ b/grapher/Form1.Designer.cs @@ -35,36 +35,39 @@ namespace grapher System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title2 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend(); - System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series9 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Title title3 = new System.Windows.Forms.DataVisualization.Charting.Title(); - System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); - System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series10 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series11 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series12 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Title title4 = new System.Windows.Forms.DataVisualization.Charting.Title(); - System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea5 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); - System.Windows.Forms.DataVisualization.Charting.Legend legend5 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Title title3 = new System.Windows.Forms.DataVisualization.Charting.Title(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series13 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series14 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series15 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Title title5 = new System.Windows.Forms.DataVisualization.Charting.Title(); - System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea6 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); - System.Windows.Forms.DataVisualization.Charting.Legend legend6 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Title title4 = new System.Windows.Forms.DataVisualization.Charting.Title(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea5 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend5 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series16 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series17 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series18 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title5 = new System.Windows.Forms.DataVisualization.Charting.Title(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea6 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend6 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Series series19 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series20 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series21 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Title title6 = new System.Windows.Forms.DataVisualization.Charting.Title(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RawAcceleration)); this.AccelerationChart = new System.Windows.Forms.DataVisualization.Charting.Chart(); @@ -184,9 +187,15 @@ namespace grapher series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series3.Legend = "Legend1"; series3.Name = "Y: Accelerated Sensitivity"; + series4.ChartArea = "ChartArea1"; + series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series4.IsVisibleInLegend = false; + series4.Legend = "Legend1"; + series4.Name = "Y - Last Mouse Move"; this.AccelerationChart.Series.Add(series1); this.AccelerationChart.Series.Add(series2); this.AccelerationChart.Series.Add(series3); + this.AccelerationChart.Series.Add(series4); this.AccelerationChart.Size = new System.Drawing.Size(698, 328); this.AccelerationChart.TabIndex = 0; this.AccelerationChart.Text = "Sensitivity"; @@ -399,22 +408,28 @@ namespace grapher this.VelocityChart.Legends.Add(legend2); this.VelocityChart.Location = new System.Drawing.Point(482, 334); this.VelocityChart.Name = "VelocityChart"; - series4.ChartArea = "ChartArea1"; - series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series4.Legend = "Legend1"; - series4.Name = "Output Velocity"; series5.ChartArea = "ChartArea1"; - series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series5.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series5.Legend = "Legend1"; - series5.Name = "Last Mouse Move"; + series5.Name = "Output Velocity"; series6.ChartArea = "ChartArea1"; - series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series6.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); series6.Legend = "Legend1"; - series6.Name = "Y: Output Velocity"; - this.VelocityChart.Series.Add(series4); + series6.Name = "Last Mouse Move"; + series7.ChartArea = "ChartArea1"; + series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series7.Legend = "Legend1"; + series7.Name = "Y: Output Velocity"; + series8.ChartArea = "ChartArea1"; + series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series8.IsVisibleInLegend = false; + series8.Legend = "Legend1"; + series8.Name = "Y: Last Mouse Move"; this.VelocityChart.Series.Add(series5); this.VelocityChart.Series.Add(series6); + this.VelocityChart.Series.Add(series7); + this.VelocityChart.Series.Add(series8); this.VelocityChart.Size = new System.Drawing.Size(698, 307); this.VelocityChart.TabIndex = 28; this.VelocityChart.Text = "chart1"; @@ -434,22 +449,28 @@ namespace grapher this.GainChart.Legends.Add(legend3); this.GainChart.Location = new System.Drawing.Point(482, 647); this.GainChart.Name = "GainChart"; - series7.ChartArea = "ChartArea1"; - series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series7.Legend = "Legend1"; - series7.Name = "Velocity Gain"; - series8.ChartArea = "ChartArea1"; - series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series8.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series8.Legend = "Legend1"; - series8.Name = "Last Mouse Move"; series9.ChartArea = "ChartArea1"; series9.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series9.Legend = "Legend1"; - series9.Name = "Y: Velocity Gain"; - this.GainChart.Series.Add(series7); - this.GainChart.Series.Add(series8); + series9.Name = "Velocity Gain"; + series10.ChartArea = "ChartArea1"; + series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series10.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series10.Legend = "Legend1"; + series10.Name = "Last Mouse Move"; + series11.ChartArea = "ChartArea1"; + series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series11.Legend = "Legend1"; + series11.Name = "Y: Velocity Gain"; + series12.ChartArea = "ChartArea1"; + series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series12.IsVisibleInLegend = false; + series12.Legend = "Legend1"; + series12.Name = "Y: Last Mouse Move"; this.GainChart.Series.Add(series9); + this.GainChart.Series.Add(series10); + this.GainChart.Series.Add(series11); + this.GainChart.Series.Add(series12); this.GainChart.Size = new System.Drawing.Size(698, 309); this.GainChart.TabIndex = 29; this.GainChart.Text = "chart1"; @@ -648,23 +669,23 @@ namespace grapher this.AccelerationChartY.Legends.Add(legend4); this.AccelerationChartY.Location = new System.Drawing.Point(1186, 0); this.AccelerationChartY.Name = "AccelerationChartY"; - series10.ChartArea = "ChartArea1"; - series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series10.Legend = "Legend1"; - series10.Name = "Accelerated Sensitivity"; - series11.ChartArea = "ChartArea1"; - series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series11.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series11.Legend = "Legend1"; - series11.Name = "Last Mouse Move"; - series12.ChartArea = "ChartArea1"; - series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series12.IsVisibleInLegend = false; - series12.Legend = "Legend1"; - series12.Name = "Placeholder"; - this.AccelerationChartY.Series.Add(series10); - this.AccelerationChartY.Series.Add(series11); - this.AccelerationChartY.Series.Add(series12); + series13.ChartArea = "ChartArea1"; + series13.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series13.Legend = "Legend1"; + series13.Name = "Accelerated Sensitivity"; + series14.ChartArea = "ChartArea1"; + series14.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series14.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series14.Legend = "Legend1"; + series14.Name = "Last Mouse Move"; + series15.ChartArea = "ChartArea1"; + series15.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series15.IsVisibleInLegend = false; + series15.Legend = "Legend1"; + series15.Name = "Placeholder"; + this.AccelerationChartY.Series.Add(series13); + this.AccelerationChartY.Series.Add(series14); + this.AccelerationChartY.Series.Add(series15); this.AccelerationChartY.Size = new System.Drawing.Size(698, 328); this.AccelerationChartY.TabIndex = 31; this.AccelerationChartY.Text = "chart1"; @@ -684,23 +705,23 @@ namespace grapher this.VelocityChartY.Legends.Add(legend5); this.VelocityChartY.Location = new System.Drawing.Point(1186, 334); this.VelocityChartY.Name = "VelocityChartY"; - series13.ChartArea = "ChartArea1"; - series13.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series13.Legend = "Legend1"; - series13.Name = "Output Velocity"; - series14.ChartArea = "ChartArea1"; - series14.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series14.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series14.Legend = "Legend1"; - series14.Name = "Last Mouse Move"; - series15.ChartArea = "ChartArea1"; - series15.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series15.IsVisibleInLegend = false; - series15.Legend = "Legend1"; - series15.Name = "Placeholder"; - this.VelocityChartY.Series.Add(series13); - this.VelocityChartY.Series.Add(series14); - this.VelocityChartY.Series.Add(series15); + series16.ChartArea = "ChartArea1"; + series16.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series16.Legend = "Legend1"; + series16.Name = "Output Velocity"; + series17.ChartArea = "ChartArea1"; + series17.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series17.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series17.Legend = "Legend1"; + series17.Name = "Last Mouse Move"; + series18.ChartArea = "ChartArea1"; + series18.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series18.IsVisibleInLegend = false; + series18.Legend = "Legend1"; + series18.Name = "Placeholder"; + this.VelocityChartY.Series.Add(series16); + this.VelocityChartY.Series.Add(series17); + this.VelocityChartY.Series.Add(series18); this.VelocityChartY.Size = new System.Drawing.Size(698, 307); this.VelocityChartY.TabIndex = 32; this.VelocityChartY.Text = "chart1"; @@ -720,23 +741,23 @@ namespace grapher this.GainChartY.Legends.Add(legend6); this.GainChartY.Location = new System.Drawing.Point(1186, 647); this.GainChartY.Name = "GainChartY"; - series16.ChartArea = "ChartArea1"; - series16.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series16.Legend = "Legend1"; - series16.Name = "Velocity Gain"; - series17.ChartArea = "ChartArea1"; - series17.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; - series17.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - series17.Legend = "Legend1"; - series17.Name = "Last Mouse Move"; - series18.ChartArea = "ChartArea1"; - series18.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; - series18.IsVisibleInLegend = false; - series18.Legend = "Legend1"; - series18.Name = "Placeholder"; - this.GainChartY.Series.Add(series16); - this.GainChartY.Series.Add(series17); - this.GainChartY.Series.Add(series18); + series19.ChartArea = "ChartArea1"; + series19.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series19.Legend = "Legend1"; + series19.Name = "Velocity Gain"; + series20.ChartArea = "ChartArea1"; + series20.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point; + series20.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + series20.Legend = "Legend1"; + series20.Name = "Last Mouse Move"; + series21.ChartArea = "ChartArea1"; + series21.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series21.IsVisibleInLegend = false; + series21.Legend = "Legend1"; + series21.Name = "Placeholder"; + this.GainChartY.Series.Add(series19); + this.GainChartY.Series.Add(series20); + this.GainChartY.Series.Add(series21); this.GainChartY.Size = new System.Drawing.Size(698, 309); this.GainChartY.TabIndex = 33; this.GainChartY.Text = "chart1"; diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs index 5567be3..95d0c25 100644 --- a/grapher/Models/AccelGUI.cs +++ b/grapher/Models/AccelGUI.cs @@ -96,8 +96,8 @@ namespace grapher public void RefreshOnRead() { - UpdateGraph(); UpdateShownActiveValues(); + UpdateGraph(); } public void UpdateGraph() diff --git a/grapher/Models/Calculations/AccelCalculator.cs b/grapher/Models/Calculations/AccelCalculator.cs index 35fee2d..a140c90 100644 --- a/grapher/Models/Calculations/AccelCalculator.cs +++ b/grapher/Models/Calculations/AccelCalculator.cs @@ -110,9 +110,9 @@ namespace grapher.Models.Calculations var ratio = magnitudeDatum.magnitude > 0 ? magnitudeWithoutSens / magnitudeDatum.magnitude : 1; - if (!data.Combined.AccelPoints.ContainsKey(magnitudeDatum.magnitude)) + if (!data.Combined.VelocityPoints.ContainsKey(magnitudeDatum.magnitude)) { - data.Combined.AccelPoints.Add(magnitudeDatum.magnitude, ratio); + data.Combined.VelocityPoints.Add(magnitudeDatum.magnitude, magnitudeWithoutSens); } var xRatio = settings.sensitivity.x * ratio; @@ -158,8 +158,8 @@ namespace grapher.Models.Calculations } lastInputMagnitude = magnitudeDatum.magnitude; - lastOutputMagnitudeX = xOutDiff; - lastOutputMagnitudeY = yOutDiff; + lastOutputMagnitudeX = xOut; + lastOutputMagnitudeY = yOut; } data.Combined.OrderedVelocityPointsList.AddRange(data.Combined.VelocityPoints.Values.ToList()); diff --git a/grapher/Models/Calculations/AccelChartData.cs b/grapher/Models/Calculations/AccelChartData.cs index c943643..907eb0e 100644 --- a/grapher/Models/Calculations/AccelChartData.cs +++ b/grapher/Models/Calculations/AccelChartData.cs @@ -63,7 +63,7 @@ namespace grapher.Models.Calculations public (double, double, double) ValuesAtIndex(int index) { - return (VelocityPoints.ElementAt(index).Value, AccelPoints.ElementAt(index).Value, GainPoints.ElementAt(index).Value); + return (AccelPoints.ElementAt(index).Value, VelocityPoints.ElementAt(index).Value, GainPoints.ElementAt(index).Value); } public int GetVelocityIndex(double outVelocityValue) @@ -75,6 +75,8 @@ namespace grapher.Models.Calculations velIdx = ~velIdx; } + velIdx = Math.Min(velIdx, VelocityPoints.Count - 1); + return velIdx; } diff --git a/grapher/Models/Calculations/AccelData.cs b/grapher/Models/Calculations/AccelData.cs index 894774b..0fe7a3c 100644 --- a/grapher/Models/Calculations/AccelData.cs +++ b/grapher/Models/Calculations/AccelData.cs @@ -1,6 +1,8 @@ using grapher.Models.Charts; +using grapher.Models.Serialized; using System; using System.Collections.Generic; +using System.Linq; namespace grapher.Models.Calculations { @@ -20,6 +22,8 @@ namespace grapher.Models.Calculations Estimated = combined; EstimatedX = x; EstimatedY = y; + + OutVelocityToPoints = new Dictionary(); } #endregion Constructors @@ -49,6 +53,7 @@ namespace grapher.Models.Calculations Combined.Clear(); X.Clear(); Y.Clear(); + OutVelocityToPoints.Clear(); } public void CalculateDots(int x, int y, double timeInMs) @@ -77,9 +82,10 @@ namespace grapher.Models.Calculations EstimatedY.Gain.Set(inYVelocity, yGain); } - public void CalculateDotsCombinedDiffSens(int x, int y, double timeInMs) + public void CalculateDotsCombinedDiffSens(int x, int y, double timeInMs, DriverSettings settings) { - var outVelocity = AccelCalculator.Velocity(x, y, timeInMs); + (var xStripped, var yStripped) = AccelCalculator.StripSens(x, y, settings.sensitivity.x, settings.sensitivity.y); + var outVelocity = AccelCalculator.Velocity(xStripped, yStripped, timeInMs); if (OutVelocityToPoints.TryGetValue(outVelocity, out var points)) { @@ -93,9 +99,9 @@ namespace grapher.Models.Calculations else { var index = Combined.GetVelocityIndex(outVelocity); - var inVelocity = Combined.VelocityPoints[index]; - var xPoints = X.FindPointValuesFromOut(outVelocity); - var yPoints = Y.FindPointValuesFromOut(outVelocity); + var inVelocity = Combined.VelocityPoints.ElementAt(index).Value; + var xPoints = X.ValuesAtIndex(index); + var yPoints = Y.ValuesAtIndex(index); OutVelocityToPoints.Add(outVelocity, (inVelocity, xPoints.Item1, xPoints.Item2, xPoints.Item3, yPoints.Item1, yPoints.Item2, yPoints.Item3)); EstimatedX.Sensitivity.Set(inVelocity, xPoints.Item1); EstimatedX.Velocity.Set(inVelocity, xPoints.Item2); diff --git a/grapher/Models/Charts/AccelCharts.cs b/grapher/Models/Charts/AccelCharts.cs index 657ae89..d22ab78 100644 --- a/grapher/Models/Charts/AccelCharts.cs +++ b/grapher/Models/Charts/AccelCharts.cs @@ -98,6 +98,7 @@ namespace grapher private ChartStateManager ChartStateManager { get; } + #endregion Properties #region Methods diff --git a/grapher/Models/Charts/ChartState/ChartState.cs b/grapher/Models/Charts/ChartState/ChartState.cs index a219cc4..ea67e83 100644 --- a/grapher/Models/Charts/ChartState/ChartState.cs +++ b/grapher/Models/Charts/ChartState/ChartState.cs @@ -23,6 +23,7 @@ namespace grapher.Models.Charts.ChartState GainChart = gainChart; Data = accelData; Calculator = calculator; + TwoDotsPerGraph = false; } public ChartXY SensitivityChart { get; } @@ -37,6 +38,8 @@ namespace grapher.Models.Charts.ChartState public virtual DriverSettings Settings { get; set; } + internal bool TwoDotsPerGraph { get; set; } + public abstract void MakeDots(int x, int y, double timeInMs); public abstract void Bind(); @@ -44,6 +47,7 @@ namespace grapher.Models.Charts.ChartState public abstract void Activate(); public abstract void Calculate(ManagedAccel accel, DriverSettings settings); + public virtual void SetUpCalculate(DriverSettings settings) { Data.Clear(); @@ -52,9 +56,9 @@ namespace grapher.Models.Charts.ChartState public void DrawLastMovement() { - SensitivityChart.DrawLastMovementValue(); - VelocityChart.DrawLastMovementValue(); - GainChart.DrawLastMovementValue(); + SensitivityChart.DrawLastMovementValue(TwoDotsPerGraph); + VelocityChart.DrawLastMovementValue(TwoDotsPerGraph); + GainChart.DrawLastMovementValue(TwoDotsPerGraph); } public void SetWidened() diff --git a/grapher/Models/Charts/ChartState/XYOneGraphState.cs b/grapher/Models/Charts/ChartState/XYOneGraphState.cs index c1153c1..bbc0c28 100644 --- a/grapher/Models/Charts/ChartState/XYOneGraphState.cs +++ b/grapher/Models/Charts/ChartState/XYOneGraphState.cs @@ -17,25 +17,27 @@ namespace grapher.Models.Charts.ChartState gainChart, accelData, accelCalculator) - { } + { + TwoDotsPerGraph = true; + } public override void Activate() { - SensitivityChart.SetSeparate(); - VelocityChart.SetSeparate(); - GainChart.SetSeparate(); + SensitivityChart.SetCombined(); + VelocityChart.SetCombined(); + GainChart.SetCombined(); } public override void MakeDots(int x, int y, double timeInMs) { - Data.CalculateDotsCombinedDiffSens(x, y, timeInMs); + Data.CalculateDotsCombinedDiffSens(x, y, timeInMs, Settings); } public override void Bind() { - SensitivityChart.BindXY(Data.X.AccelPoints, Data.Y.AccelPoints); - VelocityChart.BindXY(Data.X.VelocityPoints, Data.Y.VelocityPoints); - GainChart.BindXY(Data.X.GainPoints, Data.Y.GainPoints); + SensitivityChart.BindXYCombined(Data.X.AccelPoints, Data.Y.AccelPoints); + VelocityChart.BindXYCombined(Data.X.VelocityPoints, Data.Y.VelocityPoints); + GainChart.BindXYCombined(Data.X.GainPoints, Data.Y.GainPoints); } public override void Calculate(ManagedAccel accel, DriverSettings settings) diff --git a/grapher/Models/Charts/ChartXY.cs b/grapher/Models/Charts/ChartXY.cs index 1360409..fdd0258 100644 --- a/grapher/Models/Charts/ChartXY.cs +++ b/grapher/Models/Charts/ChartXY.cs @@ -117,12 +117,17 @@ namespace grapher chart.Titles[0].Font = new System.Drawing.Font(chart.Titles[0].Font.Name, 9.0f, System.Drawing.FontStyle.Italic); } - public static void DrawPoint(Chart chart, PointData point) + public static void DrawPoint(Chart chart, PointData pointOne, PointData pointTwo = null) { if (chart.Visible) { - point.Get(out var x, out var y); + pointOne.Get(out var x, out var y); chart.Series[1].Points.DataBindXY(x, y); + if (pointTwo != null) + { + pointTwo.Get(out x, out y); + chart.Series[3].Points.DataBindXY(x, y); + } chart.Update(); } } @@ -134,11 +139,18 @@ namespace grapher YPointData = y; } - public void DrawLastMovementValue() + public void DrawLastMovementValue(bool twoDotsPerGraph = false) { if(Combined) { - DrawPoint(ChartX, CombinedPointData); + if (twoDotsPerGraph) + { + DrawPoint(ChartX, XPointData, YPointData); + } + else + { + DrawPoint(ChartX, CombinedPointData); + } } else { @@ -164,6 +176,12 @@ namespace grapher ChartY.Series[0].Points.DataBindXY(dataY.Keys, dataY.Values); } + public void BindXYCombined(IDictionary dataX, IDictionary dataY) + { + ChartX.Series[0].Points.DataBindXY(dataX.Keys, dataX.Values); + ChartX.Series[2].Points.DataBindXY(dataY.Keys, dataY.Values); + } + public void SetCombined() { if (!Combined) -- cgit v1.2.3 From 99ad8686bb039dcf82115550dbf347d8695ee1f8 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Mon, 21 Sep 2020 12:41:16 -0700 Subject: x/y diff sens works --- grapher/Models/Calculations/AccelChartData.cs | 5 +++++ grapher/Models/Calculations/AccelData.cs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/grapher/Models/Calculations/AccelChartData.cs b/grapher/Models/Calculations/AccelChartData.cs index 907eb0e..fbf1944 100644 --- a/grapher/Models/Calculations/AccelChartData.cs +++ b/grapher/Models/Calculations/AccelChartData.cs @@ -66,6 +66,11 @@ namespace grapher.Models.Calculations return (AccelPoints.ElementAt(index).Value, VelocityPoints.ElementAt(index).Value, GainPoints.ElementAt(index).Value); } + public (double, double, double) ValuesAtInVelocity(double inVelocity) + { + return (AccelPoints[inVelocity], VelocityPoints[inVelocity], GainPoints[inVelocity]); + } + public int GetVelocityIndex(double outVelocityValue) { var velIdx = OrderedVelocityPointsList.BinarySearch(outVelocityValue); diff --git a/grapher/Models/Calculations/AccelData.cs b/grapher/Models/Calculations/AccelData.cs index 0fe7a3c..67d4f3f 100644 --- a/grapher/Models/Calculations/AccelData.cs +++ b/grapher/Models/Calculations/AccelData.cs @@ -99,7 +99,7 @@ namespace grapher.Models.Calculations else { var index = Combined.GetVelocityIndex(outVelocity); - var inVelocity = Combined.VelocityPoints.ElementAt(index).Value; + var inVelocity = Combined.VelocityPoints.ElementAt(index).Key; var xPoints = X.ValuesAtIndex(index); var yPoints = Y.ValuesAtIndex(index); OutVelocityToPoints.Add(outVelocity, (inVelocity, xPoints.Item1, xPoints.Item2, xPoints.Item3, yPoints.Item1, yPoints.Item2, yPoints.Item3)); -- cgit v1.2.3